CVBpy 15.0
All Classes Namespaces Functions Variables Enumerations Enumerator Properties Modules Pages
shapefinder2/ShapeFinder
1# @brief Example for pattern recognition in 2D images using ShapeFinder.
2
3import os
4import cvb
6
7def print_search_result(search_result):
8 i = 0
9 for result in search_result:
10 i += 1
11 x = result.x
12 y = result.y
13 quality = result.quality
14 rot = result.rotation
15 angle = result.rotation.deg
16 print(' {0:2d} Position=[{1:.2f},{2:.2f}], Quality={3:.2f}, Angle={4:.2f}'.format(i, x, y, quality, angle))
17
18sf_example_path = "tutorial/ShapeFinder/Images/SF2/Lusterterminal"
19
20# open device
22 os.path.join(cvb.install_path(), "drivers", "CVMock.vin"),
23 cvb.AcquisitionStack.Vin) as device:
24
25 stream = device.stream()
26 stream.start()
27
28 classifier = cvb.shapefinder2.Classifier(os.path.join(cvb.install_path(), sf_example_path, "Screw.sf2"))
29
30 for i in range(2):
31 image, status = stream.wait()
32 if status == cvb.WaitStatus.Ok:
33 res = classifier.search_all(device.device_image.planes[0], device.device_image.bounds, cvb.shapefinder2.PrecisionMode.CorrelationFine, 0.55, 20, 10)
34 print('Result for image {0:2d}:'.format(i+1))
35 print(' Number of search results: {0:2d}'.format(len(res)))
36 print_search_result(res)
37
38 stream.abort()
Union[cvb.GenICamDevice, cvb.VinDevice, cvb.EmuDevice, cvb.VideoDevice, cvb.NonStreamingDevice] open(str provider, int acquisition_stack=cvb.AcquisitionStack.PreferVin)
Opens a device with the given provider and acquisition stack.
Definition: __init__.py:1629
ShapeFinder2 classifier object.
Definition: __init__.py:20
Common Vision Blox ShapeFinder module for Python.
Definition: __init__.py:1
str install_path()
Directory Common Vision Blox has been installed to.
Definition: __init__.py:8318