ImagePRO-Python 1.0.5__py3-none-any.whl → 1.2.0__py3-none-any.whl

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.
@@ -1,11 +1,20 @@
1
1
  from __future__ import annotations
2
2
 
3
- import cv2
4
- import mediapipe as mp
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[3] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
5
11
 
6
12
  from ImagePRO.utils.image import Image
7
13
  from ImagePRO.utils.result import Result
8
14
 
15
+ import cv2
16
+ import mediapipe as mp
17
+
9
18
  # Constants
10
19
  mp_pose = mp.solutions.pose
11
20
  TOTAL_LANDMARKS = 33
@@ -1,11 +1,20 @@
1
1
  from __future__ import annotations
2
2
 
3
- import cv2
4
- import mediapipe as mp
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[3] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
5
11
 
6
12
  from ImagePRO.utils.image import Image
7
13
  from ImagePRO.utils.result import Result
8
14
 
15
+ import cv2
16
+ import mediapipe as mp
17
+
9
18
  # Constants
10
19
  mp_hands = mp.solutions.hands
11
20
  DEFAULT_MAX_HANDS = 2
@@ -1,12 +1,21 @@
1
1
  from __future__ import annotations
2
2
 
3
- import cv2
4
- import mediapipe as mp
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[3] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
5
11
 
6
12
  from ImagePRO.human_analysis.face_analysis.face_mesh_analysis import analyze_face_mesh
7
13
  from ImagePRO.utils.image import Image
8
14
  from ImagePRO.utils.result import Result
9
15
 
16
+ import cv2
17
+ import mediapipe as mp
18
+
10
19
  # Constants
11
20
  mp_face_mesh = mp.solutions.face_mesh
12
21
  DEFAULT_MIN_CONFIDENCE = 0.7
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[3] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  import os
4
13
 
5
14
  import cv2
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[3] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  import cv2
4
13
  import mediapipe as mp
5
14
  import numpy as np
@@ -1,11 +1,20 @@
1
1
  from __future__ import annotations
2
2
 
3
- import cv2
4
- import mediapipe as mp
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[3] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
5
11
 
6
12
  from ImagePRO.utils.image import Image
7
13
  from ImagePRO.utils.result import Result
8
14
 
15
+ import cv2
16
+ import mediapipe as mp
17
+
9
18
  # Constants
10
19
  mp_face_mesh = mp.solutions.face_mesh
11
20
  mp_drawing_utils = mp.solutions.drawing_utils
@@ -1,12 +1,21 @@
1
1
  from __future__ import annotations
2
2
 
3
- import cv2
4
- import mediapipe as mp
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[3] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
5
11
 
6
12
  from ImagePRO.human_analysis.face_analysis.face_mesh_analysis import analyze_face_mesh
7
13
  from ImagePRO.utils.image import Image
8
14
  from ImagePRO.utils.result import Result
9
15
 
16
+ import cv2
17
+ import mediapipe as mp
18
+
10
19
  # Constants
11
20
  mp_face_mesh = mp.solutions.face_mesh
12
21
  DEFAULT_MAX_FACES = 1
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  from ultralytics import YOLO
4
13
 
5
14
  from ImagePRO.utils.image import Image
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  import cv2
4
13
 
5
14
  from ImagePRO.utils.image import Image
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  import cv2
4
13
 
5
14
  from ImagePRO.utils.image import Image
@@ -1,5 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
3
11
 
4
12
  from ImagePRO.utils.image import Image
5
13
  from ImagePRO.utils.result import Result
@@ -1,16 +1,24 @@
1
1
  from __future__ import annotations
2
2
 
3
- import random
4
- import time
3
+ import sys
5
4
  from pathlib import Path
6
5
 
7
- import cv2
8
- import mediapipe as mp
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
9
11
 
10
12
  from ImagePRO.human_analysis.face_analysis.face_detection import detect_faces
11
13
  from ImagePRO.pre_processing import blur, grayscale, rotate, sharpen, resize
12
14
  from ImagePRO.utils.image import Image
13
15
 
16
+ import random
17
+ import time
18
+
19
+ import cv2
20
+ import mediapipe as mp
21
+
14
22
  # Constants
15
23
  DEFAULT_NUM_IMAGES = 200
16
24
  DEFAULT_START_INDEX = 0
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  import cv2
4
13
 
5
14
  from ImagePRO.utils.image import Image
@@ -0,0 +1,93 @@
1
+ from __future__ import annotations
2
+
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
12
+ import cv2
13
+ import matplotlib.pyplot as plt
14
+
15
+ from ImagePRO.utils.image import Image
16
+ from ImagePRO.utils.result import Result
17
+
18
+ def show_histogram(image: Image) -> Result:
19
+ """
20
+ Displays the histogram of an image with customizable options.
21
+
22
+ This function visualizes the intensity distribution of an image. It handles both grayscale
23
+ and color images, with automatic detection of image type. For color images, it displays
24
+ histograms for each color channel (BGR or RGB) with appropriate colors.
25
+
26
+ Args:
27
+ image (Image):
28
+ Input image to convert. Must be BGR, RGB or Grayscale format.
29
+
30
+ Returns:
31
+ Result: Result object with histogram plot.
32
+ - image (np.ndarray): None
33
+ - data (None): matplotlib.pyplot object
34
+ - meta (dict): Contains source object and operation info
35
+
36
+ Raises:
37
+ TypeError: If image is not an Image instance
38
+ ValueError: If image colorspace is not defined.
39
+ """
40
+ if not isinstance(image, Image):
41
+ raise TypeError("'image' must be an Image instance.")
42
+
43
+ if image.colorspace == "BGR":
44
+ colors = ('blue', 'green', 'red')
45
+ plt.figure(figsize=(10, 6))
46
+
47
+ for i, color in enumerate(colors):
48
+ hist = cv2.calcHist([image._data], [i], None, [256], [0, 256])
49
+ plt.plot(hist, color=color)
50
+ plt.xlim([0, 256])
51
+
52
+
53
+ plt.title('Histogram of BGR Channels')
54
+ plt.xlabel('Pixel Intensity')
55
+ plt.ylabel('Frequency')
56
+ plt.legend(['Blue Channel', 'Green Channel', 'Red Channel'])
57
+
58
+
59
+ elif image.colorspace == "RGB":
60
+ colors = ('red', 'green', 'blue')
61
+ plt.figure(figsize=(10, 6))
62
+
63
+ for i, color in enumerate(colors):
64
+ hist = cv2.calcHist([image._data], [i], None, [256], [0, 256])
65
+ plt.plot(hist, color=color)
66
+ plt.xlim([0, 256])
67
+
68
+
69
+ plt.title('Histogram of RGB Channels')
70
+ plt.xlabel('Pixel Intensity')
71
+ plt.ylabel('Frequency')
72
+ plt.legend(['Red Channel', 'Green Channel', 'Blue Channel'])
73
+
74
+
75
+ elif image.colorspace == 'GRAY':
76
+ plt.figure(figsize=(10, 6))
77
+
78
+ hist = cv2.calcHist([image._data], [0], None, [256], [0, 256])
79
+ plt.plot(hist, color='black')
80
+ plt.xlim([0, 256])
81
+
82
+ else:
83
+ return ValueError('Unknown colorspace')
84
+
85
+
86
+ return Result(
87
+ image=None,
88
+ data=plt,
89
+ meta={
90
+ "source": image,
91
+ "operation": "show_histogram"
92
+ }
93
+ )
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  import cv2
4
13
 
5
14
  from ImagePRO.utils.image import Image
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  import cv2
4
13
  import numpy as np
5
14
 
@@ -1,5 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Add src directory to path for absolute imports
7
+ _file_path = Path(__file__).resolve()
8
+ _src_path = _file_path.parents[2] # Go up to src directory
9
+ if str(_src_path) not in sys.path:
10
+ sys.path.insert(0, str(_src_path))
11
+
3
12
  import cv2
4
13
  import numpy as np
5
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ImagePRO-Python
3
- Version: 1.0.5
3
+ Version: 1.2.0
4
4
  Summary: Professional & modular image processing library with OpenCV, MediaPipe, and YOLO integration.
5
5
  Author-email: Parsa Safaie <parsasafaie.2568@proton.me>
6
6
  License: MIT
@@ -13,22 +13,32 @@ Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: Intended Audience :: Science/Research
15
15
  Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.9
16
17
  Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
17
21
  Classifier: License :: OSI Approved :: MIT License
18
22
  Classifier: Operating System :: OS Independent
19
23
  Classifier: Topic :: Scientific/Engineering :: Image Processing
20
24
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
25
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
- Requires-Python: ==3.10.*
26
+ Requires-Python: <3.13,>=3.9
23
27
  Description-Content-Type: text/markdown
24
28
  License-File: LICENSE
25
- Requires-Dist: numpy<2.0,>=1.24
26
- Requires-Dist: opencv-python<5.0,>=4.8
29
+ Requires-Dist: numpy<3.0,>=1.24
30
+ Requires-Dist: opencv-python<6.0,>=4.8
31
+ Requires-Dist: matplotlib<4.0,>=3.7
27
32
  Provides-Extra: yolo
28
- Requires-Dist: ultralytics<9.0,>=8.2.0; extra == "yolo"
33
+ Requires-Dist: ultralytics<10.0,>=8.2; extra == "yolo"
29
34
  Provides-Extra: mediapipe
30
- Requires-Dist: mediapipe<1.0,>=0.10.0; extra == "mediapipe"
35
+ Requires-Dist: mediapipe<1.0,>=0.10; extra == "mediapipe"
31
36
  Provides-Extra: insightface
32
37
  Requires-Dist: insightface<1.0,>=0.7; extra == "insightface"
33
- Requires-Dist: onnxruntime<2.0,>=1.16; extra == "insightface"
38
+ Requires-Dist: onnxruntime<3.0,>=1.16; extra == "insightface"
39
+ Provides-Extra: full
40
+ Requires-Dist: mediapipe<1.0,>=0.10; extra == "full"
41
+ Requires-Dist: ultralytics<10.0,>=8.2; extra == "full"
42
+ Requires-Dist: insightface<1.0,>=0.7; extra == "full"
43
+ Requires-Dist: onnxruntime<3.0,>=1.16; extra == "full"
34
44
  Dynamic: license-file
@@ -0,0 +1,31 @@
1
+ ImagePRO/__init__.py,sha256=LUqZaUWVUISpR6bm5K2cO6KjiVP3ZDPADZGZW051xGk,998
2
+ ImagePRO/human_analysis/__init__.py,sha256=uSU0lM1p1HM6TNGv6u0nPHWy9QY505v43lqTkhClddM,190
3
+ ImagePRO/human_analysis/body_analysis/__init__.py,sha256=czQoJJIrDAWz0UUY0h0mwxymSQ6L6CaZYYHhYFHyf4U,203
4
+ ImagePRO/human_analysis/body_analysis/body_pose_estimation.py,sha256=69ybYkrbFl9EkuAc4ejCu2TW4m9TFLTn2Ae5fm_92lE,5549
5
+ ImagePRO/human_analysis/body_analysis/hand_tracking.py,sha256=T7yM_VZN6mBZsDFJV6C-amCVzgklatvsZrtgcBrzVSg,6869
6
+ ImagePRO/human_analysis/face_analysis/__init__.py,sha256=dKVZ6pq-0aQHL9vhMSt0BHs3WV_cTW65QPLJGnSiUgM,405
7
+ ImagePRO/human_analysis/face_analysis/eye_status_analysis.py,sha256=9ydxEj4EhVCNf954gdFBQemS1uRNA-XGCMzyliI2AsQ,7126
8
+ ImagePRO/human_analysis/face_analysis/face_comparison.py,sha256=RU-eSjFwpRIrV-QX8po8Mr-RhGwYEsCo3_Nt-IiA5Us,4315
9
+ ImagePRO/human_analysis/face_analysis/face_detection.py,sha256=__s-lI6Egf-JgruncL_MfAkmwCq8Oe3F5Vvk9x9S_2Q,3897
10
+ ImagePRO/human_analysis/face_analysis/face_mesh_analysis.py,sha256=8kLyEEnhMfdEALteltSHu2L2zbiFSNfzC73EuV0I5iQ,7964
11
+ ImagePRO/human_analysis/face_analysis/head_pose_estimation.py,sha256=IidB4U0lQryw9T4J4_T-QmC-DgANUEgueto06RkKi2Q,7336
12
+ ImagePRO/object_analysis/__init__.py,sha256=pj1vjY8uVUqeVONpaCacWufUzHF7rS5-nmy_C5IfI2w,148
13
+ ImagePRO/object_analysis/object_detection.py,sha256=ZhxOpX5Zkiu-gq-2CRYPNzSo7ai1PRFZ3qopQeODIkQ,2890
14
+ ImagePRO/pre_processing/__init__.py,sha256=nXUhE8RnDyW7T93fKsSDPfqzGHIW50OvgQvznY5UH0E,417
15
+ ImagePRO/pre_processing/blur.py,sha256=zPWUKLEoKiL6kYwnZOtGRWBHM-dgEQ8WWdDt8_wGc0s,7961
16
+ ImagePRO/pre_processing/contrast.py,sha256=XG69VsX3EKWIPDcQYm4D9qT7sA_BSP-sppSAa8qRUhA,5247
17
+ ImagePRO/pre_processing/crop.py,sha256=p0esuZcn4-YsqcniDUmsVfPoWasxVH1OqzNBra8Pw4M,2442
18
+ ImagePRO/pre_processing/dataset_generator.py,sha256=Vf21SwzsKRBHespvAY6N7Ozq_G0GrL7T5sAk0FOyEk0,6625
19
+ ImagePRO/pre_processing/grayscale.py,sha256=MRCsFRIaL45sYVHzhuNyZBXsP7PF-yorn0Wt7xONvpY,1781
20
+ ImagePRO/pre_processing/histogram.py,sha256=t1ykGUwB9ZbvO6J3bGPh4fDvrk4AJua1dN2BWzHIRIQ,2888
21
+ ImagePRO/pre_processing/resize.py,sha256=GH3ObPe67ypPQG3a7ncrNR5WNDqGibXebAiuRXr6L10,1760
22
+ ImagePRO/pre_processing/rotate.py,sha256=wqV2Qm7mIyvKTSFdwzr1tNAGnMG7rl5M3BRqC5m2oZE,4185
23
+ ImagePRO/pre_processing/sharpen.py,sha256=C5AOxQNBL80JenkztlyRBV7yuCHqxG5dTGbRhtVRT9M,3544
24
+ ImagePRO/utils/__init__.py,sha256=McVd-o9KtKOpAVYbLi19KxsatPPFFF-Qbt0gdgY3Ln8,170
25
+ ImagePRO/utils/image.py,sha256=x93cBNycNOgET20a__TxZ9ZQo_2G84uB7QjXjBo9f8M,3973
26
+ ImagePRO/utils/result.py,sha256=DAFaFZ5jZZ7C2YrhRs6h2PAei6Mbv1Mu8xX_2NQ7c6Y,5605
27
+ imagepro_python-1.2.0.dist-info/licenses/LICENSE,sha256=sehkHN7dbe5umrINZJyJjIf9VTemZSgTfJlq6iIsbJQ,1069
28
+ imagepro_python-1.2.0.dist-info/METADATA,sha256=qxax-bzhfBbcMHNP4nbRKHBVMJO2MSkTDyIQiWcmMGA,2095
29
+ imagepro_python-1.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
30
+ imagepro_python-1.2.0.dist-info/top_level.txt,sha256=UOuPzsoWrVKXgUupOSI96shJ6wE8Fhz-8bm8oMlLC3s,9
31
+ imagepro_python-1.2.0.dist-info/RECORD,,
@@ -1,30 +0,0 @@
1
- ImagePRO/__init__.py,sha256=LUqZaUWVUISpR6bm5K2cO6KjiVP3ZDPADZGZW051xGk,998
2
- ImagePRO/human_analysis/__init__.py,sha256=uSU0lM1p1HM6TNGv6u0nPHWy9QY505v43lqTkhClddM,190
3
- ImagePRO/human_analysis/body_analysis/__init__.py,sha256=czQoJJIrDAWz0UUY0h0mwxymSQ6L6CaZYYHhYFHyf4U,203
4
- ImagePRO/human_analysis/body_analysis/body_pose_estimation.py,sha256=5VGB-muRNV9pOVszJInxqs7v_ci-z-kGHCVjgmo6oLo,5290
5
- ImagePRO/human_analysis/body_analysis/hand_tracking.py,sha256=v1N_-PAA227wvzmf3yW1NT2m-TablueqOafoRFl6sw4,6610
6
- ImagePRO/human_analysis/face_analysis/__init__.py,sha256=dKVZ6pq-0aQHL9vhMSt0BHs3WV_cTW65QPLJGnSiUgM,405
7
- ImagePRO/human_analysis/face_analysis/eye_status_analysis.py,sha256=pkJjhSGuMml_xvvCYme27S4O_9UXg7VyZR8dRC1q6Ew,6867
8
- ImagePRO/human_analysis/face_analysis/face_comparison.py,sha256=20-Sqtpmr5loWaUF6k363nHOIGXOz8KEO3_sRCO9FuA,4056
9
- ImagePRO/human_analysis/face_analysis/face_detection.py,sha256=3xSdl4uf3ynFgNa7pn-5tg0Eeil8xaD9OT8zKOkIMwY,3638
10
- ImagePRO/human_analysis/face_analysis/face_mesh_analysis.py,sha256=Qr5AO8mqOXRTH2j7kMsFSo0LyBmdCSrAP0V6dypP6ZY,7705
11
- ImagePRO/human_analysis/face_analysis/head_pose_estimation.py,sha256=WbQHJGwhryWQ_YXnoVCNAwzl5pGLmMGfRWX3K_218uA,7077
12
- ImagePRO/object_analysis/__init__.py,sha256=pj1vjY8uVUqeVONpaCacWufUzHF7rS5-nmy_C5IfI2w,148
13
- ImagePRO/object_analysis/object_detection.py,sha256=pgs7DVvREnyILnyWGy91Tku_P01J0I57_ly6WyV0lYI,2631
14
- ImagePRO/pre_processing/__init__.py,sha256=nXUhE8RnDyW7T93fKsSDPfqzGHIW50OvgQvznY5UH0E,417
15
- ImagePRO/pre_processing/blur.py,sha256=B3zF0VBUyM4__edV-SBR1LMZrep4zLSdeKEz00kFh6A,7702
16
- ImagePRO/pre_processing/contrast.py,sha256=64PL626Gxe_y8ZK1vKH7WQXfr0dW2bTNTAOHTXWrfTU,4988
17
- ImagePRO/pre_processing/crop.py,sha256=qrx-Kl5LO3udGrZaAlNVaR-MuCXpsMZfR1pTSOOMbjk,2184
18
- ImagePRO/pre_processing/dataset_generator.py,sha256=kvu0m71HHOEqviQ6tDpKK3lVCBORUUa6cHl7Bsitih8,6391
19
- ImagePRO/pre_processing/grayscale.py,sha256=IjMCvH7z4q1NCS8pm7S8A4hVigbLQbsjwvjfDQWmthY,1522
20
- ImagePRO/pre_processing/resize.py,sha256=BGGLGao_1uc8B1kZFa5MVYcTzaeeP1qkjFei6M_eIZc,1501
21
- ImagePRO/pre_processing/rotate.py,sha256=kdauqCpn71Yube351o1tmQFyxcj2cjTs0ZJflxsoet8,3926
22
- ImagePRO/pre_processing/sharpen.py,sha256=kW9KVXvQ77qezBfUWH7loqstQqJ2QvK7s0gtwoxR4EI,3285
23
- ImagePRO/utils/__init__.py,sha256=McVd-o9KtKOpAVYbLi19KxsatPPFFF-Qbt0gdgY3Ln8,170
24
- ImagePRO/utils/image.py,sha256=x93cBNycNOgET20a__TxZ9ZQo_2G84uB7QjXjBo9f8M,3973
25
- ImagePRO/utils/result.py,sha256=DAFaFZ5jZZ7C2YrhRs6h2PAei6Mbv1Mu8xX_2NQ7c6Y,5605
26
- imagepro_python-1.0.5.dist-info/licenses/LICENSE,sha256=sehkHN7dbe5umrINZJyJjIf9VTemZSgTfJlq6iIsbJQ,1069
27
- imagepro_python-1.0.5.dist-info/METADATA,sha256=Qgg5IKxIMyNAbMJ8JBzB5UHx-YPVo-Ibox93zXZFxvE,1618
28
- imagepro_python-1.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
- imagepro_python-1.0.5.dist-info/top_level.txt,sha256=UOuPzsoWrVKXgUupOSI96shJ6wE8Fhz-8bm8oMlLC3s,9
30
- imagepro_python-1.0.5.dist-info/RECORD,,