ok-script 0.0.36__tar.gz → 0.0.37__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. {ok-script-0.0.36 → ok-script-0.0.37}/PKG-INFO +1 -1
  2. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/adb/ADBCaptureMethod.py +14 -19
  3. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/adb/DeviceManager.py +9 -3
  4. {ok-script-0.0.36 → ok-script-0.0.37}/ok/interaction/ADBInteraction.py +1 -1
  5. {ok-script-0.0.36 → ok-script-0.0.37}/ok_script.egg-info/PKG-INFO +1 -1
  6. {ok-script-0.0.36 → ok-script-0.0.37}/ok_script.egg-info/SOURCES.txt +0 -2
  7. {ok-script-0.0.36 → ok-script-0.0.37}/setup.py +1 -1
  8. ok-script-0.0.36/ok/predict/predict.py +0 -45
  9. ok-script-0.0.36/ok/util/__init__.py +0 -0
  10. {ok-script-0.0.36 → ok-script-0.0.37}/README.md +0 -0
  11. {ok-script-0.0.36 → ok-script-0.0.37}/ok/OK.py +0 -0
  12. {ok-script-0.0.36 → ok-script-0.0.37}/ok/__init__.py +0 -0
  13. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/BaseCaptureMethod.py +0 -0
  14. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/HwndWindow.py +0 -0
  15. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/__init__.py +0 -0
  16. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/adb/__init__.py +0 -0
  17. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/adb/bin/__init__.py +0 -0
  18. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/adb/targets.py +0 -0
  19. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/adb/vbox.py +0 -0
  20. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/windows/WindowsGraphicsCaptureMethod.py +0 -0
  21. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/windows/__init__.py +0 -0
  22. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/windows/d3d11.py +0 -0
  23. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/windows/dump.py +0 -0
  24. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/windows/utils.py +0 -0
  25. {ok-script-0.0.36 → ok-script-0.0.37}/ok/capture/windows/window.py +0 -0
  26. {ok-script-0.0.36 → ok-script-0.0.37}/ok/color/Color.py +0 -0
  27. {ok-script-0.0.36 → ok-script-0.0.37}/ok/color/__init__.py +0 -0
  28. {ok-script-0.0.36 → ok-script-0.0.37}/ok/config/Config.py +0 -0
  29. {ok-script-0.0.36 → ok-script-0.0.37}/ok/config/InfoDict.py +0 -0
  30. {ok-script-0.0.36 → ok-script-0.0.37}/ok/config/__init__.py +0 -0
  31. {ok-script-0.0.36 → ok-script-0.0.37}/ok/feature/Box.py +0 -0
  32. {ok-script-0.0.36 → ok-script-0.0.37}/ok/feature/Feature.py +0 -0
  33. {ok-script-0.0.36 → ok-script-0.0.37}/ok/feature/FeatureSet.py +0 -0
  34. {ok-script-0.0.36 → ok-script-0.0.37}/ok/feature/FindFeature.py +0 -0
  35. {ok-script-0.0.36 → ok-script-0.0.37}/ok/feature/__init__.py +0 -0
  36. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/App.py +0 -0
  37. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/Communicate.py +0 -0
  38. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/MainWindow.py +0 -0
  39. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/TabTitles.py +0 -0
  40. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/__init__.py +0 -0
  41. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/about/AboutTab.py +0 -0
  42. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/about/__init__.py +0 -0
  43. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/common/OKIcon.py +0 -0
  44. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/common/__init__.py +0 -0
  45. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/common/config.py +0 -0
  46. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/common/style_sheet.py +0 -0
  47. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/debug/AspectRatioWidget.py +0 -0
  48. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/debug/DebugTab.py +0 -0
  49. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/debug/FrameWidget.py +0 -0
  50. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/debug/InfoWidget.py +0 -0
  51. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/debug/LoggerWidget.py +0 -0
  52. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/debug/Screenshot.py +0 -0
  53. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/debug/__init__.py +0 -0
  54. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/i18n/__init__.py +0 -0
  55. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/i18n/path.py +0 -0
  56. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/i18n/update.py +0 -0
  57. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/icon/__init__.py +0 -0
  58. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/icon/icon.py +0 -0
  59. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/overlay/OverlayWindow.py +0 -0
  60. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/overlay/__init__.py +0 -0
  61. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/qss/__init__.py +0 -0
  62. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/resources.py +0 -0
  63. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/settings/SettingTab.py +0 -0
  64. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/settings/__init__.py +0 -0
  65. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/start/SelectCaptureListView.py +0 -0
  66. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/start/SelectHwndWindow.py +0 -0
  67. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/start/StartCard.py +0 -0
  68. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/start/StartTab.py +0 -0
  69. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/start/__init__.py +0 -0
  70. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/ConfigItemFactory.py +0 -0
  71. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/ConfigLabelAndWidget.py +0 -0
  72. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/LabelAndDoubleSpinBox.py +0 -0
  73. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/LabelAndDropDown.py +0 -0
  74. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/LabelAndLineEdit.py +0 -0
  75. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/LabelAndList.py +0 -0
  76. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/LabelAndSpinBox.py +0 -0
  77. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/LabelAndSwitchButton.py +0 -0
  78. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/LabelAndWidget.py +0 -0
  79. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/ModifyListDialog.py +0 -0
  80. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/ModifyListItem.py +0 -0
  81. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/OneTimeTaskTab.py +0 -0
  82. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/StartButton.py +0 -0
  83. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/TaskCard.py +0 -0
  84. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/TaskOpButton.py +0 -0
  85. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/TooltipTableWidget.py +0 -0
  86. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/TriggerTaskTab.py +0 -0
  87. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/tasks/__init__.py +0 -0
  88. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/util/Alert.py +0 -0
  89. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/util/InitWorker.py +0 -0
  90. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/util/__init__.py +0 -0
  91. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/Card.py +0 -0
  92. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/FramelessDialog.py +0 -0
  93. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/ListTableWidgetItem.py +0 -0
  94. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/NumericTableWidgetItem.py +0 -0
  95. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/StatusBar.py +0 -0
  96. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/Tab.py +0 -0
  97. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/TabWidget.py +0 -0
  98. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/UpdateConfigWidgetItem.py +0 -0
  99. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/YesNonWidgetItem.py +0 -0
  100. {ok-script-0.0.36 → ok-script-0.0.37}/ok/gui/widget/__init__.py +0 -0
  101. {ok-script-0.0.36 → ok-script-0.0.37}/ok/interaction/BaseInteraction.py +0 -0
  102. {ok-script-0.0.36 → ok-script-0.0.37}/ok/interaction/Win32Interaction.py +0 -0
  103. {ok-script-0.0.36 → ok-script-0.0.37}/ok/interaction/__init__.py +0 -0
  104. {ok-script-0.0.36 → ok-script-0.0.37}/ok/logging/Logger.py +0 -0
  105. {ok-script-0.0.36 → ok-script-0.0.37}/ok/logging/__init__.py +0 -0
  106. {ok-script-0.0.36 → ok-script-0.0.37}/ok/ocr/OCR.py +0 -0
  107. {ok-script-0.0.36 → ok-script-0.0.37}/ok/ocr/__init__.py +0 -0
  108. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Foundation/Collections.py +0 -0
  109. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Foundation/__init__.py +0 -0
  110. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Globalization/__init__.py +0 -0
  111. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Graphics/Capture/__init__.py +0 -0
  112. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Graphics/DirectX/Direct3D11/__init__.py +0 -0
  113. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Graphics/DirectX/__init__.py +0 -0
  114. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Graphics/Imaging/__init__.py +0 -0
  115. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Graphics/__init__.py +0 -0
  116. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Media/Ocr/__init__.py +0 -0
  117. {ok-script-0.0.36/ok/predict → ok-script-0.0.37/ok/rotypes/Windows/Media}/__init__.py +0 -0
  118. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Security/Cryptography/__init__.py +0 -0
  119. {ok-script-0.0.36/ok/rotypes/Windows/Media → ok-script-0.0.37/ok/rotypes/Windows/Security}/__init__.py +0 -0
  120. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/Windows/Storage/Streams/__init__.py +0 -0
  121. {ok-script-0.0.36/ok/rotypes/Windows/Security → ok-script-0.0.37/ok/rotypes/Windows/Storage}/__init__.py +0 -0
  122. {ok-script-0.0.36/ok/rotypes/Windows/Storage → ok-script-0.0.37/ok/rotypes/Windows}/__init__.py +0 -0
  123. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/__init__.py +0 -0
  124. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/delegate.py +0 -0
  125. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/export.py +0 -0
  126. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/idldsl.py +0 -0
  127. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/inspectable.py +0 -0
  128. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/roapi.py +0 -0
  129. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/types.py +0 -0
  130. {ok-script-0.0.36 → ok-script-0.0.37}/ok/rotypes/winstring.py +0 -0
  131. {ok-script-0.0.36 → ok-script-0.0.37}/ok/save/BlackBarProcessor.py +0 -0
  132. {ok-script-0.0.36 → ok-script-0.0.37}/ok/save/PostProcessor.py +0 -0
  133. {ok-script-0.0.36 → ok-script-0.0.37}/ok/save/SaveByInterval.py +0 -0
  134. {ok-script-0.0.36 → ok-script-0.0.37}/ok/save/SaveByKeyPress.py +0 -0
  135. {ok-script-0.0.36 → ok-script-0.0.37}/ok/save/SaveMethodBase.py +0 -0
  136. {ok-script-0.0.36/ok/rotypes/Windows → ok-script-0.0.37/ok/save}/__init__.py +0 -0
  137. {ok-script-0.0.36 → ok-script-0.0.37}/ok/scene/FeatureScene.py +0 -0
  138. {ok-script-0.0.36 → ok-script-0.0.37}/ok/scene/Scene.py +0 -0
  139. {ok-script-0.0.36/ok/save → ok-script-0.0.37/ok/scene}/__init__.py +0 -0
  140. {ok-script-0.0.36 → ok-script-0.0.37}/ok/stats/StreamStats.py +0 -0
  141. {ok-script-0.0.36/ok/scene → ok-script-0.0.37/ok/stats}/__init__.py +0 -0
  142. {ok-script-0.0.36 → ok-script-0.0.37}/ok/task/BaseTask.py +0 -0
  143. {ok-script-0.0.36 → ok-script-0.0.37}/ok/task/ExecutorOperation.py +0 -0
  144. {ok-script-0.0.36 → ok-script-0.0.37}/ok/task/OneTimeTask.py +0 -0
  145. {ok-script-0.0.36 → ok-script-0.0.37}/ok/task/TaskExecutor.py +0 -0
  146. {ok-script-0.0.36 → ok-script-0.0.37}/ok/task/TriggerTask.py +0 -0
  147. {ok-script-0.0.36/ok/stats → ok-script-0.0.37/ok/task}/__init__.py +0 -0
  148. {ok-script-0.0.36/ok/task → ok-script-0.0.37/ok/util}/__init__.py +0 -0
  149. {ok-script-0.0.36 → ok-script-0.0.37}/ok/util/exit_event.py +0 -0
  150. {ok-script-0.0.36 → ok-script-0.0.37}/ok/util/json.py +0 -0
  151. {ok-script-0.0.36 → ok-script-0.0.37}/ok/util/list.py +0 -0
  152. {ok-script-0.0.36 → ok-script-0.0.37}/ok/util/path.py +0 -0
  153. {ok-script-0.0.36 → ok-script-0.0.37}/ok/util/thread.py +0 -0
  154. {ok-script-0.0.36 → ok-script-0.0.37}/ok/util/win32_process.py +0 -0
  155. {ok-script-0.0.36 → ok-script-0.0.37}/ok/util/yaml.py +0 -0
  156. {ok-script-0.0.36 → ok-script-0.0.37}/ok_script.egg-info/dependency_links.txt +0 -0
  157. {ok-script-0.0.36 → ok-script-0.0.37}/ok_script.egg-info/requires.txt +0 -0
  158. {ok-script-0.0.36 → ok-script-0.0.37}/ok_script.egg-info/top_level.txt +0 -0
  159. {ok-script-0.0.36 → ok-script-0.0.37}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ok-script
3
- Version: 0.0.36
3
+ Version: 0.0.37
4
4
  Summary: Automation with Computer Vision for Python
5
5
  Home-page: https://github.com/ok-oldking/ok-script
6
6
  Author: ok-oldking
@@ -1,7 +1,6 @@
1
1
  # original https://github.com/Toufool/AutoSplit/blob/master/src/capture_method/WindowsGraphicsCaptureMethod.py
2
2
  import cv2
3
3
  import numpy as np
4
- from adbutils import AdbError
5
4
  from typing_extensions import override
6
5
 
7
6
  from ok.capture.BaseCaptureMethod import BaseCaptureMethod
@@ -14,12 +13,12 @@ class ADBCaptureMethod(BaseCaptureMethod):
14
13
  name = "ADB command line Capture"
15
14
  description = "use the adb screencap command, slow but works when in background/minimized, takes 300ms per frame"
16
15
 
17
- def __init__(self, device, exit_event, width=0, height=0):
16
+ def __init__(self, device_manager, exit_event, width=0, height=0):
18
17
  super().__init__()
19
18
  self.exit_event = exit_event
20
19
  self._size = (width, height)
21
20
  self._connected = (width != 0 and height != 0)
22
- self.device = device
21
+ self.device_manager = device_manager
23
22
 
24
23
  @property
25
24
  def width(self):
@@ -40,7 +39,7 @@ class ADBCaptureMethod(BaseCaptureMethod):
40
39
  def screencap(self):
41
40
  if self.exit_event.is_set():
42
41
  return None
43
- frame = do_screencap(self.device)
42
+ frame = do_screencap(self.device_manager)
44
43
  if frame is not None:
45
44
  height, width, _ = frame.shape
46
45
  self._connected = True
@@ -50,21 +49,17 @@ class ADBCaptureMethod(BaseCaptureMethod):
50
49
  return frame
51
50
 
52
51
  def connected(self):
53
- if not self._connected and self.device is not None:
52
+ if not self._connected and self.device_manager.device is not None:
54
53
  self.screencap()
55
- return self._connected and self.device is not None
54
+ return self._connected and self.device_manager.device is not None
56
55
 
57
56
 
58
- def do_screencap(device) -> np.ndarray | None:
59
- if device is not None:
60
- try:
61
- png_bytes = device.shell("screencap -p", encoding=None)
62
- if png_bytes is not None and len(png_bytes) > 0:
63
- image_data = np.frombuffer(png_bytes, dtype=np.uint8)
64
- image = cv2.imdecode(image_data, cv2.IMREAD_COLOR)
65
- if image is not None:
66
- return image
67
- else:
68
- logger.error(f"Screencap image decode error, probably disconnected")
69
- except AdbError as e:
70
- logger.error(f"Device {device} error", e)
57
+ def do_screencap(device_manager) -> np.ndarray | None:
58
+ png_bytes = device_manager.shell("screencap -p", encoding=None)
59
+ if png_bytes is not None and len(png_bytes) > 0:
60
+ image_data = np.frombuffer(png_bytes, dtype=np.uint8)
61
+ image = cv2.imdecode(image_data, cv2.IMREAD_COLOR)
62
+ if image is not None:
63
+ return image
64
+ else:
65
+ logger.error(f"Screencap image decode error, probably disconnected")
@@ -2,6 +2,7 @@ import threading
2
2
 
3
3
  import adbutils
4
4
  import win32gui
5
+ from adbutils import AdbError
5
6
 
6
7
  from ok.capture.HwndWindow import HwndWindow, find_hwnd_by_title_and_exe
7
8
  from ok.capture.adb.ADBCaptureMethod import ADBCaptureMethod, do_screencap
@@ -217,7 +218,7 @@ class DeviceManager:
217
218
  elif not isinstance(self.capture_method, ADBCaptureMethod):
218
219
  if self.capture_method is not None:
219
220
  self.capture_method.close()
220
- self.capture_method = ADBCaptureMethod(self._device, self.exit_event, width=width,
221
+ self.capture_method = ADBCaptureMethod(self, self.exit_event, width=width,
221
222
  height=height)
222
223
  self.interaction = ADBBaseInteraction(self, self.capture_method, width, height)
223
224
  if self.debug and hwnd_name:
@@ -255,5 +256,10 @@ class DeviceManager:
255
256
  if device is not None:
256
257
  try:
257
258
  return device.shell(*args, **kwargs)
258
- except Exception as e:
259
- logger.error(f"shell_wrapper error occurred: {e}")
259
+ except AdbError as e:
260
+ addr = self.get_preferred_device()['address']
261
+ self.adb.connect(addr)
262
+ logger.error(f"shell_wrapper error occurred: {e} ,try reconnect {addr}")
263
+ return device.shell(*args, **kwargs)
264
+ else:
265
+ raise Exception('Device is none')
@@ -27,4 +27,4 @@ class ADBBaseInteraction(BaseInteraction):
27
27
  super().click(x, y)
28
28
  x = int(x * self.width / self.capture.width)
29
29
  y = int(y * self.height / self.capture.height)
30
- self.device_manager.device.shell(f"input tap {x} {y}")
30
+ self.device_manager.shell(f"input tap {x} {y}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ok-script
3
- Version: 0.0.36
3
+ Version: 0.0.37
4
4
  Summary: Automation with Computer Vision for Python
5
5
  Home-page: https://github.com/ok-oldking/ok-script
6
6
  Author: ok-oldking
@@ -100,8 +100,6 @@ ok/logging/Logger.py
100
100
  ok/logging/__init__.py
101
101
  ok/ocr/OCR.py
102
102
  ok/ocr/__init__.py
103
- ok/predict/__init__.py
104
- ok/predict/predict.py
105
103
  ok/rotypes/__init__.py
106
104
  ok/rotypes/delegate.py
107
105
  ok/rotypes/export.py
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="ok-script",
8
- version="0.0.36",
8
+ version="0.0.37",
9
9
  author="ok-oldking",
10
10
  author_email="firedcto@gmail.com",
11
11
  description="Automation with Computer Vision for Python",
@@ -1,45 +0,0 @@
1
- import torch
2
- from PIL import Image, ImageDraw
3
- import numpy as np
4
- from ultralytics import YOLO
5
-
6
- # Load the model
7
- # model = torch.hub.load('ultralytics/yolov8', 'custom', path='models/best.pt')
8
- model = YOLO('models/best.pt') # pretrained YOLOv8n model
9
-
10
- # Run batched inference on a list of images
11
- # results = model(['im1.jpg', 'im2.jpg']) # return a list of Results objects
12
-
13
- # Load an image
14
- image_path = 'images/3.jpg'
15
- image = Image.open(image_path)
16
-
17
- # Perform inference
18
- results = model(image)
19
-
20
- # Extract data
21
- for result in results:
22
- boxes = result.boxes # Boxes object for bbox outputs
23
- print(boxes)
24
- masks = result.masks # Masks object for segmentation masks outputs
25
- keypoints = result.keypoints # Keypoints object for pose outputs
26
- probs = result.probs # Probs object for classification outputs
27
-
28
- for r in results:
29
- im_array = r.plot() # plot a BGR numpy array of predictions
30
- im = Image.fromarray(im_array[..., ::-1]) # RGB PIL image
31
- im.show() # show image
32
- im.save('results.jpg') # save image
33
- # labels, cord = results.xyxyn[0][:, -1], results.xyxyn[0][:, :-1]
34
-
35
- # # Draw bounding boxes and labels
36
- # draw = ImageDraw.Draw(image)
37
- # for label, (*xyxy,) in zip(labels, cord):
38
- # label = model.module.names[int(label)] # Get label name
39
- # xyxy = (xyxy * np.array([image.width, image.height, image.width, image.height])).tolist() # Scale coords
40
- # draw.rectangle(xyxy, outline='red', width=3)
41
- # draw.text(xyxy[:2], label, fill='red')
42
-
43
- # Save or display image
44
- # image.save('output/1.jpg')
45
- # image.show()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes