machinevision-toolbox-python 2.3.0__py3-none-any.whl → 2.4.1__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,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: machinevision-toolbox-python
3
- Version: 2.3.0
3
+ Version: 2.4.1
4
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
@@ -18,14 +18,15 @@ Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
21
22
  Requires-Python: >=3.10
22
23
  Requires-Dist: ansitable
23
24
  Requires-Dist: matplotlib
24
25
  Requires-Dist: mvtb-data
25
26
  Requires-Dist: numpy
26
- Requires-Dist: opencv-contrib-python<5.0.0
27
- Requires-Dist: opencv-python<5.0.0
28
- Requires-Dist: pgraph-python
27
+ Requires-Dist: opencv-contrib-python<6.0.0,>=4.5
28
+ Requires-Dist: opencv-python<6.0.0,>=4.5
29
+ Requires-Dist: pgraph-python>=0.6.4
29
30
  Requires-Dist: pillow
30
31
  Requires-Dist: requests
31
32
  Requires-Dist: scipy
@@ -35,7 +36,7 @@ Provides-Extra: all
35
36
  Requires-Dist: ipympl; extra == 'all'
36
37
  Requires-Dist: ipython; extra == 'all'
37
38
  Requires-Dist: ipywidgets; extra == 'all'
38
- Requires-Dist: open3d-python; extra == 'all'
39
+ Requires-Dist: open3d; extra == 'all'
39
40
  Requires-Dist: pygments; extra == 'all'
40
41
  Requires-Dist: pytesseract; extra == 'all'
41
42
  Requires-Dist: rosbags; extra == 'all'
@@ -64,7 +65,7 @@ Requires-Dist: ipywidgets; extra == 'jupyter'
64
65
  Provides-Extra: ocr
65
66
  Requires-Dist: pytesseract; extra == 'ocr'
66
67
  Provides-Extra: open3d
67
- Requires-Dist: open3d-python; extra == 'open3d'
68
+ Requires-Dist: open3d; extra == 'open3d'
68
69
  Provides-Extra: ros
69
70
  Requires-Dist: rosbags; extra == 'ros'
70
71
  Requires-Dist: roslibpy; extra == 'ros'
@@ -105,6 +106,7 @@ Description-Content-Type: text/markdown
105
106
  [![Downloads](https://static.pepy.tech/badge/machinevision-toolbox-python/month)](https://pepy.tech/projects/machinevision-toolbox-python)
106
107
  ![Python Version](https://img.shields.io/pypi/pyversions/machinevision-toolbox-python.svg)
107
108
  [![Coverage](https://codecov.io/gh/petercorke/machinevision-toolbox-python/branch/main/graph/badge.svg)](https://codecov.io/gh/petercorke/machinevision-toolbox-python)
109
+ [![Codacy Badge](https://app.codacy.com/project/badge/Grade/2368752f2103490b81210d716bb0fb46)](https://app.codacy.com/gh/petercorke/machinevision-toolbox-python/dashboard)
108
110
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
109
111
 
110
112
  ### Ecosystem & Dependencies
@@ -1,25 +1,25 @@
1
- machinevisiontoolbox/BagOfWords.py,sha256=CYNvYkVhE_aDijV7v3gIxXHkN60QD3MNu9-Xh97q5Y4,19036
2
- machinevisiontoolbox/BundleAdjust.py,sha256=Fjp1eWe78DwZfvu9tuiuMYlCGmv8fqwF2kMFT1_GW4w,37076
3
- machinevisiontoolbox/Camera.py,sha256=YRG5s6rvlI9vJX2C3X2mawcTBofknjU8MiRc7atJv3o,139142
1
+ machinevisiontoolbox/BagOfWords.py,sha256=dfl-9v_CJmXyf2LUQnGUQBw7QWiQSw1qe8jN3fjE_30,19808
2
+ machinevisiontoolbox/BundleAdjust.py,sha256=MVeHhfkbTMPXcvotVSb0zPPs15OMSxTfwQxIrUuBxe0,34236
3
+ machinevisiontoolbox/Camera.py,sha256=fHqCIyyF_QchRv-luZaz5nocxkcL_7c-n4rQSAh4qOk,143841
4
4
  machinevisiontoolbox/ImageBlobs.py,sha256=TsXaJpqUN1WrPg0zHRmLQvP3wUBxcHHUBt9qDggjVnE,89447
5
5
  machinevisiontoolbox/ImageColor.py,sha256=fueFYDNlvqSJPgcKsG5v2wBxaW7mYNa6OA-_rK-UJK0,17577
6
- machinevisiontoolbox/ImageConstants.py,sha256=R0sc9z8sbraruI6qkixLso6fTgxUAC5cQMSw4ms9m2k,38774
7
- machinevisiontoolbox/ImageCore.py,sha256=ufDI7ynOGRwM8TSSDEdM4LMQxBhclc0ve976tsprBW8,140594
8
- machinevisiontoolbox/ImageFiducials.py,sha256=wrCevhrkgdHzBMMRoDqADZE9OOD7L6nQCd3UDA_e3rU,26903
9
- machinevisiontoolbox/ImageIO.py,sha256=MFUwjxdQ8oGttGMgzon9xOom-IGsVUFkiEWDrVEEgMs,27019
6
+ machinevisiontoolbox/ImageConstants.py,sha256=TGzo62YR2_CFozena3ReZdTnuRHY_spQlgsMJoDa8RE,39154
7
+ machinevisiontoolbox/ImageCore.py,sha256=pQSJ3x-hmsTWvar0FpkGn4ZHi6fncy9d4We4fOr_ktA,143486
8
+ machinevisiontoolbox/ImageFiducials.py,sha256=zKSPgk97GhyGz0X-OLiUyqFtDZLyzgAyrbbETGeHnsY,27257
9
+ machinevisiontoolbox/ImageIO.py,sha256=BA-szxEJy6LSeq4DdBF845wmy3Nq2s_YjRko_dteWXA,27434
10
10
  machinevisiontoolbox/ImageLineFeatures.py,sha256=Kq0rCzPER2eB9MhEBNn6hAHpGY-G_WPZd657RmuRryA,10855
11
11
  machinevisiontoolbox/ImageMorph.py,sha256=WioUD2Jr9Ejnk7Let4Vf3iTFz5DhMkZ7l_ZBCbvgl4U,30237
12
12
  machinevisiontoolbox/ImageMultiview.py,sha256=swzNsxX39dijPdPa-a4LFOl7T7liTcQeP7NJf5ODGQU,15605
13
- machinevisiontoolbox/ImagePointFeatures.py,sha256=HYgBUs931OOYsM9kx4p_zFU5vAc9dOJsNPuUyTKxoY4,78209
13
+ machinevisiontoolbox/ImagePointFeatures.py,sha256=mf1GN37ZOvZRMhX25WAP9Twrymgk8yn1e7XXHkoq5-k,78807
14
14
  machinevisiontoolbox/ImageProcessing.py,sha256=HBR6cbTlgfAdOiqXU8DPSFKZQXWTBIVufCyRaifky7g,51669
15
15
  machinevisiontoolbox/ImageRegionFeatures.py,sha256=nZAdKFSpxmMZKwlbF13MOxBIUwXvPvDtIxNJUyp7pvg,16092
16
16
  machinevisiontoolbox/ImageReshape.py,sha256=F8eNrJ1to6d5jrIJeT1D2RqX-7EnARrQ03UGUCvljXg,50204
17
17
  machinevisiontoolbox/ImageSpatial.py,sha256=nzgScDprv7UQXhKcOps80gKjx4Ve6y498lCRm21sEtw,55622
18
18
  machinevisiontoolbox/ImageTensor.py,sha256=ohNbThdsQid2AQbDIHaCoxj00tpRggFWv0TTpIHAJQk,9006
19
- machinevisiontoolbox/ImageWholeFeatures.py,sha256=wpD03wsGu314Ff-nkDqrbCVGgPGobuQItnCZ04Xkwfo,62901
20
- machinevisiontoolbox/Kernel.py,sha256=VWobkVDlgMvQDo1eoC0fSLxAn2SGu2pQG13QaUIrRNE,21501
21
- machinevisiontoolbox/PointCloud.py,sha256=FJP-gFmd16ePFfBQ2Y-Tdu6SSw_HyEhtDjNeLyknJFY,25239
22
- machinevisiontoolbox/Sources.py,sha256=ZWH4o4ffT-qaJuRJOYT7YFLQV4WmzwzuH5J7ZWwzHvQ,152710
19
+ machinevisiontoolbox/ImageWholeFeatures.py,sha256=eLOZdG2OTyHUjkk6W2Wmp9mYOwqEFvfxQcFmGZgwX1s,63457
20
+ machinevisiontoolbox/Kernel.py,sha256=erTDpPsB38bNHvtBfijjf-9zIW57YM-Bg2ltlFCu6Mg,22607
21
+ machinevisiontoolbox/PointCloud.py,sha256=uwa-Y6aIV3_c6iIrfR60VkiCfPst6cSZntEXPhe2z2s,25819
22
+ machinevisiontoolbox/Sources.py,sha256=GaaZsAYtEWI3EYHVuP8fxIwc2_zunLiqJ7fEH86uwEg,153371
23
23
  machinevisiontoolbox/VisualServo.py,sha256=2q_szKZo51McduLUMnN8-O6foLyLAR-o0h10-UDWKPY,60947
24
24
  machinevisiontoolbox/__init__.py,sha256=ocn82vw6o7pvUKSfebBwPKyKTiK-jMR8FK3SEtpDFVM,3871
25
25
  machinevisiontoolbox/_image_typing.py,sha256=FjdzZpuxEH9nBrj8gb-tkwUZDjpCNH92sQS3meemCVE,7286
@@ -27,32 +27,34 @@ machinevisiontoolbox/camera_derivatives.py,sha256=ysaP8PvgeBpFf8e37AmYQTW28SiFBK
27
27
  machinevisiontoolbox/decorators.py,sha256=6wEoLFozK2RFcGb9QrLy2bAw4sjkbm_2q3PpnIS9Rtk,2623
28
28
  machinevisiontoolbox/fiducial.py,sha256=syC7iIz95nYBTr_njo4ZzLXOyAdAIqoAZq_wRVhyUHQ,1374
29
29
  machinevisiontoolbox/mvtb_types.py,sha256=YD2P9mDXhz75GgC7Cyeer8luBpSHckkrLZ0GDVvGOnE,728
30
- machinevisiontoolbox/base/__init__.py,sha256=DxtRJJF6vnY2S1n33xJmXTBf504RCkctmoyKwBW4pc4,1645
31
- machinevisiontoolbox/base/color.py,sha256=F1eBcjyQPFV1uiTkeOe6UtBf_2V4s5wkQH-0egh7Ru0,58432
30
+ machinevisiontoolbox/base/__init__.py,sha256=RvRL9e_FMqBordxwHDqX44YGN38AD4m4fHfkEXslNK4,1666
31
+ machinevisiontoolbox/base/color.py,sha256=-8bjXwkgfRamNs-jZnFsbqpGKR_dN4rCrLqxrsUYjN8,59492
32
32
  machinevisiontoolbox/base/data.py,sha256=PF1HyrYQ-EDR-0heHMG1oDxs63AtQshNWbUvN8GOKsY,6130
33
33
  machinevisiontoolbox/base/findpeaks.py,sha256=Ag0UIw2CPVioB356Pvj-_k_wjxMODGpsW7qdkt6UvEs,11251
34
34
  machinevisiontoolbox/base/graphics.py,sha256=R8hbf_jK3mvq_dEoATxkjcbxUJvoSMovNbrk3W4BQe8,36974
35
- machinevisiontoolbox/base/imageio.py,sha256=QwiYa0XS2E1ZyOIPqGU72RFaPZQZAzKO47w_FBouKV8,54053
35
+ machinevisiontoolbox/base/imageio.py,sha256=uQceV4CDDhXrWMKgB4hhu3DxeJjEOKE2QJ8fatd4-MA,55592
36
36
  machinevisiontoolbox/base/meshgrid.py,sha256=Bo2GIlk0tRT2CV5sP5I9i-mZy-6c3BPozLOuOiEVHT0,3162
37
37
  machinevisiontoolbox/base/shapes.py,sha256=d-DmB_9iEsHyC6AT6lv2LMHvb-PMqHTXtehqMKk3aRQ,11430
38
- machinevisiontoolbox/base/types.py,sha256=AEiyEsmX5ljifC_PldaOcJnZRDyUSF3kwRbAihNDslQ,5055
38
+ machinevisiontoolbox/base/types.py,sha256=AkeDiJOh1nUmfhcfE-ZS_cISIPYIcSEJxzzWKkvkgTw,5687
39
39
  machinevisiontoolbox/base/version.py,sha256=uSKKfk9fOu5XF_21Kzfh3N111U-39mobNwiRyelOqcU,976
40
40
  machinevisiontoolbox/bin/_bintools.py,sha256=WwzyOqXEv4T-TB2GMBym4pGU2NACM5ACDCg7exGRl0I,1918
41
41
  machinevisiontoolbox/bin/_iminteractive.py,sha256=9fh2QcuO9RFfO9uGA05MePbe6cUtlh-F19z2zbG4pLA,17063
42
42
  machinevisiontoolbox/bin/bagtool.py,sha256=b-Ap2AynpXe0FtcydyfkXIgHDaumAkGBJgDZ6lgdZBU,12359
43
43
  machinevisiontoolbox/bin/imtool.py,sha256=la9m9LuMnthJzXxjMRWqGY_l7rJUZS5wiVgZsw84SO4,7897
44
- machinevisiontoolbox/bin/mvtbtool.py,sha256=NuVm2lLCJSUT4_RvlSplqeuUb0duDxAoupL1UIrjjuQ,13785
44
+ machinevisiontoolbox/bin/mvtbtool.py,sha256=7-fhz11-TIUCTPeDlpCxnpM7rONWcHRBTi80b537-nY,13871
45
45
  machinevisiontoolbox/bin/ocrtool.py,sha256=HtkbLnjij40oy83nBtZlbJSFJ2pn7lcQAmOifvCLw0I,4719
46
46
  machinevisiontoolbox/bin/tagtool.py,sha256=io-NCIMdMc5zIFYMa6U2ITTv2T-Q8Y0bwh_pB1qZ4IQ,8523
47
47
  machinevisiontoolbox/blocks/__init__.py,sha256=EsdfK2WxYLSo0SA5HSmlgsivLT1kDnoH9v-RTBDnWwc,142
48
48
  machinevisiontoolbox/blocks/camera.py,sha256=v0kLMa97bTcLkNtq8c-oGFH7DWqRbp8HTtA0X8wI13g,8627
49
49
  machinevisiontoolbox/blocks/test_blocks.py,sha256=dsJiK3BwvNRvzK95bUbPhgbZdoWZhVWQD-yHD-YZRMw,1767
50
+ machinevisiontoolbox/blocks/Icons/README.md,sha256=YVIdysTzRyt7jBHCP01CIL5jjjx-i2Cf5_zV7CO6aRk,1398
50
51
  machinevisiontoolbox/blocks/Icons/camera.png,sha256=CGcTB_llMoucN-rfnP6ZP_7AfE_92z6JnCdam-hDLgs,1642
51
52
  machinevisiontoolbox/blocks/Icons/estpose_p.png,sha256=1XrwL4OkotGWMwKmhnar3tt8cQWUdZiO7PxXD354T-E,4320
52
53
  machinevisiontoolbox/blocks/Icons/imageplane.png,sha256=34FYQMzkq6foxvRU8pn0KkcHxpHRvsJRJSYKfNu13Eg,3902
54
+ machinevisiontoolbox/blocks/Icons/make_icons.py,sha256=zsn7qPni9l4IEK6YyMCUWnUrLvh3oAd8DA-ohm4GCpE,3905
53
55
  machinevisiontoolbox/blocks/Icons/visjac_p.png,sha256=8X023l-C9Y5DfAN8wCdWYjSjq6wp1vRzuZ85sUbwxv8,3819
54
- machinevision_toolbox_python-2.3.0.dist-info/METADATA,sha256=GIbwk-9OjmGJcOWpGeEDlp1tuH0qTk-9YUtHFLdc9Nw,21733
55
- machinevision_toolbox_python-2.3.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
56
- machinevision_toolbox_python-2.3.0.dist-info/entry_points.txt,sha256=R0sRa7JufKCG1VPkgo5KcL7j7pW4-E0Ch2Og4AqmXg4,310
57
- machinevision_toolbox_python-2.3.0.dist-info/licenses/LICENSE,sha256=niCzY_CzbIMKuUZlUkGimjrKp0vkLAtcwFmoSuSKrdw,1068
58
- machinevision_toolbox_python-2.3.0.dist-info/RECORD,,
56
+ machinevision_toolbox_python-2.4.1.dist-info/METADATA,sha256=J3t8DBS9GeDzvSYAoABybNx_Nxps3PASmcp_Sl8fOPA,21961
57
+ machinevision_toolbox_python-2.4.1.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
58
+ machinevision_toolbox_python-2.4.1.dist-info/entry_points.txt,sha256=uEqrEt9WZHJ5SL9r5CUSKb3iwoEG_bHRAeevp1y3yvs,258
59
+ machinevision_toolbox_python-2.4.1.dist-info/licenses/LICENSE,sha256=niCzY_CzbIMKuUZlUkGimjrKp0vkLAtcwFmoSuSKrdw,1068
60
+ machinevision_toolbox_python-2.4.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.32.0
2
+ Generator: hatchling 1.32.4
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,7 +1,6 @@
1
1
  [console_scripts]
2
2
  bagtool = machinevisiontoolbox.bin.bagtool:main
3
3
  imtool = machinevisiontoolbox.bin.imtool:main
4
- labeltool = machinevisiontoolbox.bin.labeltool:main
5
4
  mvtbtool = machinevisiontoolbox.bin.mvtbtool:main
6
5
  ocrtool = machinevisiontoolbox.bin.ocrtool:main
7
6
  tagtool = machinevisiontoolbox.bin.tagtool:main
@@ -58,6 +58,13 @@ class BagOfWords:
58
58
  of image features is assigned labels from the ``.centroids`` any with a
59
59
  label greater that ``.nstopwords`` is a stop word and can be discarded.
60
60
 
61
+ .. note:: Removing stop words can leave a remaining word that never
62
+ occurs in any image, giving it an inverse document frequency (idf)
63
+ of ``inf`` (``log(N / 0)``). This is harmless -- every place idf is
64
+ used to compute a word-frequency vector, the corresponding word
65
+ count is also always zero there, so the ``0 * inf`` result is
66
+ ``nan`` and gets replaced with 0 before the vector is returned.
67
+
61
68
  :reference:
62
69
  - Video Google: a text retrieval approach to object matching in videos
63
70
  J.Sivic and A.Zisserman,
@@ -139,7 +146,12 @@ class BagOfWords:
139
146
  # total number of occurrences of word i
140
147
  # multiple occurrences in the one image count only as one
141
148
  ni = (W > 0).sum(axis=1)
142
- idf = np.log(N / ni)
149
+ # a word that never occurs in any image (ni=0, possible after
150
+ # stopword removal) gives idf=inf here; harmless since nid is
151
+ # always 0 at that same position below, so 0*inf->nan, already
152
+ # suppressed by the invalid="ignore" there.
153
+ with np.errstate(divide="ignore"):
154
+ idf = np.log(N / ni)
143
155
 
144
156
  M = []
145
157