machinevision-toolbox-python 1.0.2__py3-none-any.whl → 2.0.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.
- {machinevision_toolbox_python-1.0.2.dist-info → machinevision_toolbox_python-2.0.0.dist-info}/METADATA +103 -73
- machinevision_toolbox_python-2.0.0.dist-info/RECORD +68 -0
- {machinevision_toolbox_python-1.0.2.dist-info → machinevision_toolbox_python-2.0.0.dist-info}/WHEEL +1 -1
- {machinevision_toolbox_python-1.0.2.dist-info → machinevision_toolbox_python-2.0.0.dist-info}/entry_points.txt +3 -0
- machinevisiontoolbox/BagOfWords.py +74 -121
- machinevisiontoolbox/BundleAdjust.py +95 -77
- machinevisiontoolbox/Camera.py +642 -580
- machinevisiontoolbox/ImageBlobs.py +724 -571
- machinevisiontoolbox/ImageColor.py +105 -81
- machinevisiontoolbox/ImageConstants.py +674 -213
- machinevisiontoolbox/ImageCore.docstring +2877 -0
- machinevisiontoolbox/ImageCore.py +1644 -460
- machinevisiontoolbox/ImageFiducials.py +170 -98
- machinevisiontoolbox/ImageIO.py +330 -191
- machinevisiontoolbox/ImageLineFeatures.py +71 -37
- machinevisiontoolbox/ImageMorph.py +296 -117
- machinevisiontoolbox/ImageMultiview.py +129 -82
- machinevisiontoolbox/ImagePointFeatures.py +363 -419
- machinevisiontoolbox/ImageProcessing.py +703 -321
- machinevisiontoolbox/ImageRegionFeatures.py +79 -88
- machinevisiontoolbox/ImageReshape.py +308 -214
- machinevisiontoolbox/ImageSpatial.py +398 -936
- machinevisiontoolbox/ImageTensor.py +242 -0
- machinevisiontoolbox/ImageWholeFeatures.py +972 -310
- machinevisiontoolbox/Kernel.py +753 -0
- machinevisiontoolbox/PointCloud.py +122 -81
- machinevisiontoolbox/Sources.py +3675 -288
- machinevisiontoolbox/VisualServo.py +140 -99
- machinevisiontoolbox/__init__.py +160 -13
- machinevisiontoolbox/_image_typing.py +207 -0
- machinevisiontoolbox/base/__init__.py +11 -6
- machinevisiontoolbox/base/color.py +257 -156
- machinevisiontoolbox/base/data.py +25 -24
- machinevisiontoolbox/base/findpeaks.py +35 -10
- machinevisiontoolbox/base/graphics.py +378 -164
- machinevisiontoolbox/base/imageio.py +507 -216
- machinevisiontoolbox/base/meshgrid.py +13 -3
- machinevisiontoolbox/base/shapes.py +121 -62
- machinevisiontoolbox/base/types.py +28 -16
- machinevisiontoolbox/base/version.py +12 -5
- machinevisiontoolbox/bin/_bintools.py +61 -0
- machinevisiontoolbox/bin/bagtool.py +286 -0
- machinevisiontoolbox/bin/imtool.py +118 -45
- machinevisiontoolbox/bin/labeltool.py +147 -0
- machinevisiontoolbox/bin/mvtbtool.py +227 -47
- machinevisiontoolbox/bin/ocrtool.py +155 -0
- machinevisiontoolbox/bin/tagtool.py +163 -123
- machinevisiontoolbox/blocks/camera.py +14 -56
- machinevisiontoolbox/blocks/test_blocks.py +6 -5
- machinevisiontoolbox/camera_derivatives.py +1096 -5
- machinevisiontoolbox/cvfuncs.py +40 -0
- machinevisiontoolbox/decorators.py +17 -9
- machinevisiontoolbox/docbugs.py +47 -0
- machinevisiontoolbox/mvtb_types.py +15 -7
- machinevisiontoolbox/newcameras.py +4 -2
- machinevisiontoolbox/test_skimage.py +12 -0
- machinevisiontoolbox/testblobplots.py +17 -0
- machinevisiontoolbox/x.json +296 -0
- machinevision_toolbox_python-1.0.2.dist-info/RECORD +0 -58
- machinevisiontoolbox/base/esttheta.py +0 -97
- machinevisiontoolbox/bin/ce.py +0 -27
- machinevisiontoolbox/machinevision-toolbox-python.code-workspace +0 -7
- {machinevision_toolbox_python-1.0.2.dist-info → machinevision_toolbox_python-2.0.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: machinevision-toolbox-python
|
|
3
|
-
Version:
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 2.0.0
|
|
4
|
+
Summary: Object-oriented machine vision for Python.
|
|
5
5
|
Project-URL: Homepage, https://github.com/petercorke/machinevision-toolbox-python
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/pypa/sampleproject/issues
|
|
7
7
|
Project-URL: Documentation, https://petercorke.github.io/machinevision-toolbox-python
|
|
8
8
|
Project-URL: GitHub Source, https://github.com/petercorke/machinevision-toolbox-python
|
|
9
|
-
Project-URL: Changelog, https://github.com/petercorke/machinevision-toolbox-python/blob/
|
|
10
|
-
Author: Dorian Tsai
|
|
9
|
+
Project-URL: Changelog, https://github.com/petercorke/machinevision-toolbox-python/blob/main/CHANGELOG.md
|
|
11
10
|
Author-email: Peter Corke <rvc@petercorke.com>
|
|
12
11
|
License-File: LICENSE
|
|
13
12
|
Keywords: blobs,bundle adjustment,color,computer vision,image features,image segmentation,machine vision,morphology,multiview geometry,open3d,opencv,stereo vision,visual servoing
|
|
@@ -18,6 +17,7 @@ Classifier: Operating System :: OS Independent
|
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
21
|
Requires-Python: >=3.10
|
|
22
22
|
Requires-Dist: ansitable
|
|
23
23
|
Requires-Dist: matplotlib
|
|
@@ -26,85 +26,113 @@ Requires-Dist: numpy
|
|
|
26
26
|
Requires-Dist: opencv-contrib-python
|
|
27
27
|
Requires-Dist: opencv-python
|
|
28
28
|
Requires-Dist: pgraph-python
|
|
29
|
+
Requires-Dist: pillow
|
|
30
|
+
Requires-Dist: requests
|
|
29
31
|
Requires-Dist: scipy
|
|
30
32
|
Requires-Dist: spatialmath-python
|
|
33
|
+
Requires-Dist: tqdm
|
|
34
|
+
Provides-Extra: all
|
|
35
|
+
Requires-Dist: ipympl; extra == 'all'
|
|
36
|
+
Requires-Dist: ipywidgets; extra == 'all'
|
|
37
|
+
Requires-Dist: open3d-python; extra == 'all'
|
|
38
|
+
Requires-Dist: pytesseract; extra == 'all'
|
|
39
|
+
Requires-Dist: rosbags; extra == 'all'
|
|
40
|
+
Requires-Dist: roslibpy; extra == 'all'
|
|
41
|
+
Requires-Dist: torch; extra == 'all'
|
|
42
|
+
Requires-Dist: websockets; extra == 'all'
|
|
31
43
|
Provides-Extra: dev
|
|
32
44
|
Requires-Dist: coverage; extra == 'dev'
|
|
33
|
-
Requires-Dist:
|
|
45
|
+
Requires-Dist: nbmake; extra == 'dev'
|
|
34
46
|
Requires-Dist: pytest; extra == 'dev'
|
|
47
|
+
Requires-Dist: ruff; extra == 'dev'
|
|
35
48
|
Provides-Extra: docs
|
|
36
|
-
Requires-Dist:
|
|
49
|
+
Requires-Dist: pydata-sphinx-theme; extra == 'docs'
|
|
37
50
|
Requires-Dist: sphinx; extra == 'docs'
|
|
38
51
|
Requires-Dist: sphinx-autorun; extra == 'docs'
|
|
52
|
+
Requires-Dist: sphinx-codeautolink; extra == 'docs'
|
|
53
|
+
Requires-Dist: sphinx-copybutton; extra == 'docs'
|
|
54
|
+
Requires-Dist: sphinx-design; extra == 'docs'
|
|
39
55
|
Requires-Dist: sphinx-favicon; extra == 'docs'
|
|
40
|
-
Requires-Dist:
|
|
41
|
-
Requires-Dist: sphinx-rtd-theme; extra == 'docs'
|
|
42
|
-
Requires-Dist: sphinxcontrib-jsmath; extra == 'docs'
|
|
56
|
+
Requires-Dist: sphinxcontrib-programoutput; extra == 'docs'
|
|
43
57
|
Provides-Extra: jupyter
|
|
44
58
|
Requires-Dist: ipympl; extra == 'jupyter'
|
|
45
59
|
Requires-Dist: ipywidgets; extra == 'jupyter'
|
|
60
|
+
Provides-Extra: ocr
|
|
61
|
+
Requires-Dist: pytesseract; extra == 'ocr'
|
|
46
62
|
Provides-Extra: open3d
|
|
47
63
|
Requires-Dist: open3d-python; extra == 'open3d'
|
|
64
|
+
Provides-Extra: ros
|
|
65
|
+
Requires-Dist: rosbags; extra == 'ros'
|
|
66
|
+
Requires-Dist: roslibpy; extra == 'ros'
|
|
67
|
+
Requires-Dist: websockets; extra == 'ros'
|
|
68
|
+
Provides-Extra: torch
|
|
69
|
+
Requires-Dist: torch; extra == 'torch'
|
|
48
70
|
Description-Content-Type: text/markdown
|
|
49
71
|
|
|
50
72
|
# Machine Vision Toolbox for Python
|
|
51
73
|
|
|
74
|
+
<div align="center">
|
|
75
|
+
<img src="https://github.com/petercorke/machinevision-toolbox-python/raw/main/docs/figs/VisionToolboxLogo_NoBackgnd@2x.png" width="350">
|
|
76
|
+
<br>
|
|
77
|
+
<strong>A high-productivity framework for computer vision research and education.</strong>
|
|
78
|
+
<br><br>
|
|
79
|
+
|
|
80
|
+
[](https://petercorke.github.io/machinevision-toolbox-python/lite/lab?path=index.ipynb)
|
|
81
|
+
[](https://pypi.org/project/machinevision-toolbox-python/)
|
|
82
|
+
[](https://petercorke.github.io/machinevision-toolbox-python/)
|
|
83
|
+
|
|
84
|
+
<p>
|
|
85
|
+
<a href="https://github.com/petercorke/machinevision-toolbox-python">GitHub</a> •
|
|
86
|
+
<a href="https://github.com/petercorke/machinevision-toolbox-python/wiki">Wiki</a> •
|
|
87
|
+
<a href="https://github.com/petercorke/machinevision-toolbox-python/blob/main/CHANGELOG.md">Changelog</a> •
|
|
88
|
+
<a href="#installation">Installation</a>
|
|
89
|
+
</p>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### Status & Ecosystem
|
|
52
95
|
[](https://github.com/petercorke/robotics-toolbox-python)
|
|
53
|
-
[](https://github.com/petercorke/spatialmath-python)
|
|
54
96
|
[](https://qcr.github.io)
|
|
55
|
-
|
|
56
|
-
[](https://github.com/petercorke/machinevision-toolbox-python/actions/workflows/ci.yml)
|
|
98
|
+
[](https://codecov.io/gh/petercorke/machinevision-toolbox-python)
|
|
57
99
|

|
|
58
|
-
[](https://opencv.org)
|
|
59
|
-
[](https://open3d.org)
|
|
60
100
|
[](https://opensource.org/licenses/MIT)
|
|
61
|
-
|
|
62
|
-
[](https://github.com/petercorke/machinevision-toolbox-python/actions?query=workflow%3Abuild)
|
|
63
|
-
[](https://codecov.io/gh/petercorke/machinevision-toolbox-python)
|
|
64
101
|
[](https://pypistats.org/packages/machinevision-toolbox-python)
|
|
65
102
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<img src="https://github.com/petercorke/machinevision-toolbox-python/raw/master/figs/VisionToolboxLogo_NoBackgnd@2x.png" width="200"></td>
|
|
72
|
-
<td style="border:0px">
|
|
73
|
-
|
|
74
|
-
<li><a href="https://github.com/petercorke/machinevision-toolbox-python">GitHub repository </a></li>
|
|
75
|
-
<li><a href="https://petercorke.github.io/machinevision-toolbox-python/">Documentation</a></li>
|
|
76
|
-
<li><a href="https://github.com/petercorke/machinevision-toolbox-python/wiki">Wiki (examples and details)</a></li>
|
|
77
|
-
<li><a href="installation#">Installation</a></li>
|
|
78
|
-
<li><a href="https://github.com/petercorke/machinevision-toolbox-python/blob/master/CHANGELOG.md">Changelog</a></li>
|
|
79
|
-
</ul>
|
|
80
|
-
</td>
|
|
81
|
-
</tr>
|
|
82
|
-
</table>
|
|
83
|
-
<p style="font-size:80%">A Python implementation of the <a href="https://github.com/petercorke/machinevision-toolbox-matlab">Machine Vision Toolbox for MATLAB<sup>®</sup></a></p>
|
|
103
|
+
### Powered by
|
|
104
|
+
[](https://github.com/petercorke/spatialmath-python)
|
|
105
|
+
[](https://numpy.org)
|
|
106
|
+
[](https://opencv.org)
|
|
107
|
+
[](https://open3d.org)
|
|
84
108
|
|
|
85
109
|
## Synopsis
|
|
86
110
|
|
|
87
|
-
|
|
111
|
+
A unified, object-oriented Python API that bridges the gap between raw pixels and high-level spatial reasoning by harmonizing a 'best-of-breed' foundation of NumPy, OpenCV, and Open3D. It bridges the gap between raw pixel manipulation and high-level spatial reasoning and robotics.
|
|
112
|
+
|
|
113
|
+
### 🚀 Key components
|
|
114
|
+
|
|
115
|
+
* The _power_ object: `Image` is a single class wrapping 200+ methods. It handles everything from monadic/dyadic ops and edge detection to advanced feature extraction (blobs, lines, and point features) with full operator overloading.
|
|
116
|
+
|
|
117
|
+
* Advanced Camera Modeling: Comprehensive support for Central (perspective), Fisheye, Catadioptric, and Spherical camera geometries.
|
|
118
|
+
|
|
119
|
+
* Spatial AI Integration: Native compatibility with the Spatial Math Toolbox and seamless "play" with PyTorch and ROS.
|
|
120
|
+
|
|
121
|
+
* High-Level 3D Vision: Sophisticated wrappers for Open3D, including multiview geometry, camera calibration, stereo vision, and bundle adjustment.
|
|
88
122
|
|
|
89
|
-
|
|
90
|
-
from OpenCV, NumPy and SciPy. Methods support monadic, dyadic, filtering, edge detection,
|
|
91
|
-
mathematical morphology and feature extraction (blobs, lines and point/corner features), as well as operator overloading. Images are stored as encapsulated [NumPy](https://numpy.org) arrays
|
|
92
|
-
along with image metadata.
|
|
93
|
-
- An object-oriented wrapper of Open3D functions that supports a subset of operations, but allows operator overloading and is compatible with the [Spatial Math Toolbox](https://github.com/petercorke/spatialmath-python).
|
|
94
|
-
- A collection of camera projection classes for central (normal perspective), fisheye, catadioptric and spherical cameras.
|
|
95
|
-
- Some advanced algorithms such as:
|
|
96
|
-
- multiview geometry: camera calibration, stereo vision, bundle adjustment
|
|
97
|
-
- bag of words
|
|
123
|
+
### 🛠 Why MVTB?
|
|
98
124
|
|
|
99
|
-
|
|
125
|
+
* Expressive Method Chaining: Build complex pipelines in a single, readable line:
|
|
126
|
+
`Image.Read("monalisa.png").convolve(Kernel.Gauss(4)).disp()`
|
|
100
127
|
|
|
101
|
-
-
|
|
102
|
-
- it wraps the OpenCV functions in a consistent way, hiding some of the gnarly details of OpenCV like conversion to/from float32 and the BGR color order.
|
|
103
|
-
- it is has similarity to the Machine Vision Toolbox for MATLAB.
|
|
128
|
+
* "Sanity-Preserving" OpenCV Wrappers: We handle the "gnarly" bits of OpenCV for you—automatically managing BGR-to-RGB conversions and float32 scaling so you can focus on the vision, not the boilerplate.
|
|
104
129
|
|
|
105
|
-
|
|
130
|
+
* NumPy-Native: Every image is an encapsulated NumPy array, meaning you have zero-overhead access to the entire Python scientific stack.
|
|
106
131
|
|
|
107
|
-
|
|
132
|
+
* 2026 Ready: Optimized for modern workflows, including JupyterLite for zero-install browser demos and VS Code integration.
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
# Quick start
|
|
108
136
|
|
|
109
137
|
Install a snapshot from PyPI
|
|
110
138
|
|
|
@@ -112,15 +140,9 @@ Install a snapshot from PyPI
|
|
|
112
140
|
% pip install machinevision-toolbox-python
|
|
113
141
|
```
|
|
114
142
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
Install the current code base from GitHub and pip install a link to that cloned copy
|
|
143
|
+
Install locally with help from the [detailed installation guide](https://petercorke.github.io/machinevision-toolbox-python/installation.html#installing-the-toolbox).
|
|
118
144
|
|
|
119
|
-
|
|
120
|
-
% git clone https://github.com/petercorke/machinevision-toolbox-python.git
|
|
121
|
-
% cd machinevision-toolbox-python
|
|
122
|
-
% pip install -e .
|
|
123
|
-
```
|
|
145
|
+
Or skip setup and run the [browser-based JupyterLite examples](https://petercorke.github.io/machinevision-toolbox-python/lite/lab/index.html?path=files/index.ipynb).
|
|
124
146
|
|
|
125
147
|
# Examples
|
|
126
148
|
|
|
@@ -132,7 +154,7 @@ mona = Image.Read("monalisa.png")
|
|
|
132
154
|
mona.disp()
|
|
133
155
|
```
|
|
134
156
|
|
|
135
|
-

|
|
136
158
|
|
|
137
159
|
Images can also be returned by iterators that operate over folders, zip files, local cameras, web cameras and video files.
|
|
138
160
|
|
|
@@ -144,7 +166,7 @@ The toolbox supports many operations on images such as 2D filtering, edge detect
|
|
|
144
166
|
mona.smooth(sigma=5).disp()
|
|
145
167
|
```
|
|
146
168
|
|
|
147
|
-

|
|
148
170
|
|
|
149
171
|
There are also many functions that operate on pairs of image. All the arithmetic operators are overloaded, and there are methods to combine images in more complex ways. Multiple images can be stacked horizontal, vertically or tiled in a 2D grid. For example, we could display the original and smoothed images side by side
|
|
150
172
|
|
|
@@ -155,7 +177,7 @@ Image.Hstack([mona, mona.smooth(sigma=5)]).disp()
|
|
|
155
177
|
where `Hstack` is a class method that creates a new image by stacking the
|
|
156
178
|
images from its argument, an image sequence, horizontally.
|
|
157
179
|
|
|
158
|
-

|
|
159
181
|
|
|
160
182
|
### Binary blobs
|
|
161
183
|
|
|
@@ -183,7 +205,7 @@ blobs.plot_centroid(label=True) # put a circle+cross on the centroid of each bl
|
|
|
183
205
|
plt.show(block=True) # display the result
|
|
184
206
|
```
|
|
185
207
|
|
|
186
|
-

|
|
187
209
|
|
|
188
210
|
#### Binary blob hierarchy
|
|
189
211
|
|
|
@@ -194,7 +216,7 @@ im = Image.Read("multiblobs.png")
|
|
|
194
216
|
im.disp()
|
|
195
217
|
```
|
|
196
218
|
|
|
197
|
-

|
|
198
220
|
|
|
199
221
|
and we see that some blobs are contained within other blobs. The results in tabular form
|
|
200
222
|
|
|
@@ -225,7 +247,7 @@ labels = blobs.label_image()
|
|
|
225
247
|
labels.disp(colormap="viridis", ncolors=len(blobs), colorbar=dict(shrink=0.8, aspect=20*0.8))
|
|
226
248
|
```
|
|
227
249
|
|
|
228
|
-

|
|
229
251
|
|
|
230
252
|
We can also think of the blobs forming a hiearchy and that relationship is reflected in the `parent` and `children` attributes of the blobs.
|
|
231
253
|
We can also express it as a directed graph
|
|
@@ -234,7 +256,7 @@ We can also express it as a directed graph
|
|
|
234
256
|
blobs.dotfile(show=True)
|
|
235
257
|
```
|
|
236
258
|
|
|
237
|
-

|
|
238
260
|
|
|
239
261
|
### Camera modelling
|
|
240
262
|
|
|
@@ -289,7 +311,7 @@ X, Y, Z = mkcube(0.2, pose=SE3(0, 0, 1), edge=True)
|
|
|
289
311
|
cam.plot_wireframe(X, Y, Z)
|
|
290
312
|
```
|
|
291
313
|
|
|
292
|
-

|
|
293
315
|
|
|
294
316
|
<!---or with a fisheye camera
|
|
295
317
|
|
|
@@ -301,7 +323,7 @@ cam.plot_wireframe(X, Y, Z)
|
|
|
301
323
|
>> [X,Y,Z] = mkcube(0.2, 'centre', [0.2, 0, 0.3], 'edge');
|
|
302
324
|
>> cam.mesh(X, Y, Z);
|
|
303
325
|
```
|
|
304
|
-

|
|
326
|
+

|
|
305
327
|
|
|
306
328
|
|
|
307
329
|
### Bundle adjustment
|
|
@@ -316,7 +338,7 @@ plot_chromaticity_diagram("xy");
|
|
|
316
338
|
plot_spectral_locus("xy")
|
|
317
339
|
```
|
|
318
340
|
|
|
319
|
-

|
|
320
342
|
|
|
321
343
|
Load the spectrum of sunlight at the Earth's surface and compute the CIE xy chromaticity coordinates
|
|
322
344
|
|
|
@@ -343,7 +365,7 @@ im.disp(darken=True)
|
|
|
343
365
|
h.plot_lines(lines, "r--")
|
|
344
366
|
```
|
|
345
367
|
|
|
346
|
-

|
|
347
369
|
|
|
348
370
|
### SURF features
|
|
349
371
|
|
|
@@ -383,7 +405,7 @@ matches.subset(100).plot("w")
|
|
|
383
405
|
|
|
384
406
|
in this case, a subset of 100/813 of the correspondences.
|
|
385
407
|
|
|
386
|
-

|
|
387
409
|
|
|
388
410
|
Clearly there are some bad matches here, but we we can use RANSAC and the epipolar constraint implied by the fundamental matrix to estimate the fundamental matrix and classify correspondences as inliers or outliers
|
|
389
411
|
|
|
@@ -403,7 +425,13 @@ matches.outliers.subset(100).plot("r", ax=plt.gca())
|
|
|
403
425
|
|
|
404
426
|
where green lines show correct correspondences (inliers) and red lines show bad correspondences (outliers)
|
|
405
427
|
|
|
406
|
-

|
|
429
|
+
|
|
430
|
+
# Ecosystem
|
|
431
|
+
|
|
432
|
+
The Toolbox plays nicely with other parts of the robotics and machinevision ecosystem.
|
|
433
|
+
|
|
434
|
+

|
|
407
435
|
|
|
408
436
|
# History
|
|
409
437
|
|
|
@@ -422,6 +450,8 @@ image metadata, rather than just a native object holding pixel data. The many
|
|
|
422
450
|
functions become methods of the image object which reduces namespace pollutions,
|
|
423
451
|
and allows the easy expression of sequential operations using "dot chaining".
|
|
424
452
|
|
|
425
|
-
|
|
453
|
+
# Acknowledgement
|
|
454
|
+
|
|
455
|
+
The first version was built by Dorian Tsai during 2020-21, and based on the
|
|
426
456
|
MATLAB version. That work was funded by an Australian University Teacher of
|
|
427
457
|
the year award (2017) to Peter Corke.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
machinevisiontoolbox/BagOfWords.py,sha256=CYNvYkVhE_aDijV7v3gIxXHkN60QD3MNu9-Xh97q5Y4,19036
|
|
2
|
+
machinevisiontoolbox/BundleAdjust.py,sha256=RsrVRlTxlS4ycgs810pnXnP7ZbOf89O8H4MKGB_Ua3o,37064
|
|
3
|
+
machinevisiontoolbox/Camera.py,sha256=PPsm0f1jEsnJsblaXQHgEBrIzsN8i63vdPXoh-Sdm_w,139131
|
|
4
|
+
machinevisiontoolbox/ImageBlobs.py,sha256=ssyuX1vuaWBZLJyAC0DyxbmpyImh4DUf9QU_3tNOsYI,82702
|
|
5
|
+
machinevisiontoolbox/ImageColor.py,sha256=fueFYDNlvqSJPgcKsG5v2wBxaW7mYNa6OA-_rK-UJK0,17577
|
|
6
|
+
machinevisiontoolbox/ImageConstants.py,sha256=R0sc9z8sbraruI6qkixLso6fTgxUAC5cQMSw4ms9m2k,38774
|
|
7
|
+
machinevisiontoolbox/ImageCore.docstring,sha256=o--QfvUsp1_tRlD31jvX01rsPZ7qp8fvLogtF9IcmHc,88029
|
|
8
|
+
machinevisiontoolbox/ImageCore.py,sha256=Als1G5Cd2Z6e1xIThff1yqyDaX6KcLQY1MUYZpP7UJk,140497
|
|
9
|
+
machinevisiontoolbox/ImageFiducials.py,sha256=0CXDgRVY8cA8sIsqd9liPLDRBFRXkolxZwu8rj8TxsM,24124
|
|
10
|
+
machinevisiontoolbox/ImageIO.py,sha256=cHdezZyoXzWRRM_1w-1K19cS6TLB9dJ_sd61x57E_PQ,26889
|
|
11
|
+
machinevisiontoolbox/ImageLineFeatures.py,sha256=5D4MfbNTaRSErdD-HIVlxG9RrtfPAO7WpG4FhESJb4w,10338
|
|
12
|
+
machinevisiontoolbox/ImageMorph.py,sha256=WioUD2Jr9Ejnk7Let4Vf3iTFz5DhMkZ7l_ZBCbvgl4U,30237
|
|
13
|
+
machinevisiontoolbox/ImageMultiview.py,sha256=swzNsxX39dijPdPa-a4LFOl7T7liTcQeP7NJf5ODGQU,15605
|
|
14
|
+
machinevisiontoolbox/ImagePointFeatures.py,sha256=hc3DrIzvy7cRDW6zmOpdMUb8Ut-mWJoPH4oBOvFsxSg,77109
|
|
15
|
+
machinevisiontoolbox/ImageProcessing.py,sha256=70yql1K_wYOSymIINaYgAhd9QBt5y_NIomq2mb6S3Bg,51659
|
|
16
|
+
machinevisiontoolbox/ImageRegionFeatures.py,sha256=-UOYYv0p2EkNcsF8BK4ZYnh41gUlTSdR-I2v-sH4wT4,14908
|
|
17
|
+
machinevisiontoolbox/ImageReshape.py,sha256=F8eNrJ1to6d5jrIJeT1D2RqX-7EnARrQ03UGUCvljXg,50204
|
|
18
|
+
machinevisiontoolbox/ImageSpatial.py,sha256=nzgScDprv7UQXhKcOps80gKjx4Ve6y498lCRm21sEtw,55622
|
|
19
|
+
machinevisiontoolbox/ImageTensor.py,sha256=ohNbThdsQid2AQbDIHaCoxj00tpRggFWv0TTpIHAJQk,9006
|
|
20
|
+
machinevisiontoolbox/ImageWholeFeatures.py,sha256=Fsv92YImQM4mmxtHC-0zdS4w8FjQ0L4ERuhXH96z6D4,61161
|
|
21
|
+
machinevisiontoolbox/Kernel.py,sha256=VWobkVDlgMvQDo1eoC0fSLxAn2SGu2pQG13QaUIrRNE,21501
|
|
22
|
+
machinevisiontoolbox/PointCloud.py,sha256=FJP-gFmd16ePFfBQ2Y-Tdu6SSw_HyEhtDjNeLyknJFY,25239
|
|
23
|
+
machinevisiontoolbox/Sources.py,sha256=Ryc93AHfzAACREQU3XmhOJnpnTqNMF6ImITSz6ecLXE,152187
|
|
24
|
+
machinevisiontoolbox/VisualServo.py,sha256=2q_szKZo51McduLUMnN8-O6foLyLAR-o0h10-UDWKPY,60947
|
|
25
|
+
machinevisiontoolbox/__init__.py,sha256=V-oUeFjcanyZxbLF5F-HbEOjnd2kJyyrtgDIR9lPgiw,3831
|
|
26
|
+
machinevisiontoolbox/_image_typing.py,sha256=FjdzZpuxEH9nBrj8gb-tkwUZDjpCNH92sQS3meemCVE,7286
|
|
27
|
+
machinevisiontoolbox/aruco0.pdf,sha256=a_JZT-TfVv7tQNOvlHSZPf9QCNiOScm_q30jMF8T2ME,75233
|
|
28
|
+
machinevisiontoolbox/aruco50.pdf,sha256=wUwqNaDmZ5EFNl1GNF_O3YRztWOZBhTq7DdMdMTskQw,77285
|
|
29
|
+
machinevisiontoolbox/camera_derivatives.py,sha256=ysaP8PvgeBpFf8e37AmYQTW28SiFBK4fCl9LGONgVQg,39513
|
|
30
|
+
machinevisiontoolbox/cvfuncs.py,sha256=Pf4sxB0VvxHT2UqfpY2G9cs75aaqHp0UQZEzSJs94FI,1307
|
|
31
|
+
machinevisiontoolbox/decorators.py,sha256=6wEoLFozK2RFcGb9QrLy2bAw4sjkbm_2q3PpnIS9Rtk,2623
|
|
32
|
+
machinevisiontoolbox/docbugs.py,sha256=HEJvRPOlXgyY5_UyxQXHCVVmJ7UO7SgMV0tpoUSFQbE,1344
|
|
33
|
+
machinevisiontoolbox/fiducial.py,sha256=syC7iIz95nYBTr_njo4ZzLXOyAdAIqoAZq_wRVhyUHQ,1374
|
|
34
|
+
machinevisiontoolbox/mvtb_types.py,sha256=YD2P9mDXhz75GgC7Cyeer8luBpSHckkrLZ0GDVvGOnE,728
|
|
35
|
+
machinevisiontoolbox/newcameras.py,sha256=WQ3w8NawL7vcRexJwjRkBouHQpvdisXf1LgCL3zD3cM,1243
|
|
36
|
+
machinevisiontoolbox/test_skimage.py,sha256=2nIdV5MK3gnz-BA33d2H0vAt-aK3wwb-C35jAYaz5Z8,320
|
|
37
|
+
machinevisiontoolbox/testblobplots.py,sha256=DwX2hc5PEeG7l9oUhC8or8mUdeDENX6mYlDUN3e1HRw,465
|
|
38
|
+
machinevisiontoolbox/x.json,sha256=bEpuzzQtJYf96nvjZkjxthWVzm0PKI5ZU6uiNuxWnMs,4643
|
|
39
|
+
machinevisiontoolbox/base/__init__.py,sha256=DxtRJJF6vnY2S1n33xJmXTBf504RCkctmoyKwBW4pc4,1645
|
|
40
|
+
machinevisiontoolbox/base/color.py,sha256=F1eBcjyQPFV1uiTkeOe6UtBf_2V4s5wkQH-0egh7Ru0,58432
|
|
41
|
+
machinevisiontoolbox/base/data.py,sha256=PF1HyrYQ-EDR-0heHMG1oDxs63AtQshNWbUvN8GOKsY,6130
|
|
42
|
+
machinevisiontoolbox/base/findpeaks.py,sha256=Ag0UIw2CPVioB356Pvj-_k_wjxMODGpsW7qdkt6UvEs,11251
|
|
43
|
+
machinevisiontoolbox/base/graphics.py,sha256=R8hbf_jK3mvq_dEoATxkjcbxUJvoSMovNbrk3W4BQe8,36974
|
|
44
|
+
machinevisiontoolbox/base/imageio.py,sha256=d6ytMGVPfC1D4Dpj-K4pVEdd_afs4vmjQ0j2_y0_kbg,51986
|
|
45
|
+
machinevisiontoolbox/base/meshgrid.py,sha256=Bo2GIlk0tRT2CV5sP5I9i-mZy-6c3BPozLOuOiEVHT0,3162
|
|
46
|
+
machinevisiontoolbox/base/shapes.py,sha256=d-DmB_9iEsHyC6AT6lv2LMHvb-PMqHTXtehqMKk3aRQ,11430
|
|
47
|
+
machinevisiontoolbox/base/types.py,sha256=AEiyEsmX5ljifC_PldaOcJnZRDyUSF3kwRbAihNDslQ,5055
|
|
48
|
+
machinevisiontoolbox/base/version.py,sha256=uSKKfk9fOu5XF_21Kzfh3N111U-39mobNwiRyelOqcU,976
|
|
49
|
+
machinevisiontoolbox/bin/_bintools.py,sha256=WwzyOqXEv4T-TB2GMBym4pGU2NACM5ACDCg7exGRl0I,1918
|
|
50
|
+
machinevisiontoolbox/bin/bagtool.py,sha256=jY7_kQpy904JiYcVGxuvV2ves-jCeqHTDOVOB51rp6w,9039
|
|
51
|
+
machinevisiontoolbox/bin/imtool.py,sha256=BAteBohTcM7C_kpHQ73Bpx41vPhrKphMonFvY_iXi4k,6870
|
|
52
|
+
machinevisiontoolbox/bin/labeltool.py,sha256=npt-SzyJfUpQObmj6u7hHRymV9CZwDkHdQubQyFkMTk,4267
|
|
53
|
+
machinevisiontoolbox/bin/mvtbtool.py,sha256=tPfEPLOZ451fOifGvFyRE2RAkjm-4-0wYvWIgWoBs9o,11089
|
|
54
|
+
machinevisiontoolbox/bin/ocrtool.py,sha256=HtkbLnjij40oy83nBtZlbJSFJ2pn7lcQAmOifvCLw0I,4719
|
|
55
|
+
machinevisiontoolbox/bin/tagtool.py,sha256=io-NCIMdMc5zIFYMa6U2ITTv2T-Q8Y0bwh_pB1qZ4IQ,8523
|
|
56
|
+
machinevisiontoolbox/blocks/__init__.py,sha256=EsdfK2WxYLSo0SA5HSmlgsivLT1kDnoH9v-RTBDnWwc,142
|
|
57
|
+
machinevisiontoolbox/blocks/camera.py,sha256=v0kLMa97bTcLkNtq8c-oGFH7DWqRbp8HTtA0X8wI13g,8627
|
|
58
|
+
machinevisiontoolbox/blocks/test_blocks.py,sha256=dsJiK3BwvNRvzK95bUbPhgbZdoWZhVWQD-yHD-YZRMw,1767
|
|
59
|
+
machinevisiontoolbox/blocks/Icons/camera.png,sha256=CGcTB_llMoucN-rfnP6ZP_7AfE_92z6JnCdam-hDLgs,1642
|
|
60
|
+
machinevisiontoolbox/blocks/Icons/estpose_p.png,sha256=1XrwL4OkotGWMwKmhnar3tt8cQWUdZiO7PxXD354T-E,4320
|
|
61
|
+
machinevisiontoolbox/blocks/Icons/icons.sh,sha256=teezrmF3es8c3-MvwG1lDCt9SKWEqA0eVHOKFeBugig,115
|
|
62
|
+
machinevisiontoolbox/blocks/Icons/imageplane.png,sha256=34FYQMzkq6foxvRU8pn0KkcHxpHRvsJRJSYKfNu13Eg,3902
|
|
63
|
+
machinevisiontoolbox/blocks/Icons/visjac_p.png,sha256=8X023l-C9Y5DfAN8wCdWYjSjq6wp1vRzuZ85sUbwxv8,3819
|
|
64
|
+
machinevision_toolbox_python-2.0.0.dist-info/METADATA,sha256=m__KxfUlHHR_yxdRskzXCt3AkGTGKP3T6pr9vAIYKLU,21125
|
|
65
|
+
machinevision_toolbox_python-2.0.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
66
|
+
machinevision_toolbox_python-2.0.0.dist-info/entry_points.txt,sha256=R0sRa7JufKCG1VPkgo5KcL7j7pW4-E0Ch2Og4AqmXg4,310
|
|
67
|
+
machinevision_toolbox_python-2.0.0.dist-info/licenses/LICENSE,sha256=niCzY_CzbIMKuUZlUkGimjrKp0vkLAtcwFmoSuSKrdw,1068
|
|
68
|
+
machinevision_toolbox_python-2.0.0.dist-info/RECORD,,
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
[console_scripts]
|
|
2
|
+
bagtool = machinevisiontoolbox.bin.bagtool:main
|
|
2
3
|
imtool = machinevisiontoolbox.bin.imtool:main
|
|
4
|
+
labeltool = machinevisiontoolbox.bin.labeltool:main
|
|
3
5
|
mvtbtool = machinevisiontoolbox.bin.mvtbtool:main
|
|
6
|
+
ocrtool = machinevisiontoolbox.bin.ocrtool:main
|
|
4
7
|
tagtool = machinevisiontoolbox.bin.tagtool:main
|