Common Vision Blox 15.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Friends Modules Pages
ShapeFinder/CVBpy/ShapeFinder

This example program is located in your CVB installation under %CVB%Tutorial/ShapeFinder/CVBpy/ShapeFinder.

shapefinder.py:

# @brief Example for pattern recognition in 2D images using ShapeFinder.
import os
import cvb
def print_search_result(search_result):
i = 0
for result in search_result:
i += 1
x = result.x
y = result.y
quality = result.quality
rot = result.rotation
angle = result.rotation.deg
print(' {0:2d} Position=[{1:.2f},{2:.2f}], Quality={3:.2f}, Angle={4:.2f}'.format(i, x, y, quality, angle))
sf_example_path = "tutorial/ShapeFinder/Images/SF2/Lusterterminal"
# open device
os.path.join(cvb.install_path(), "drivers", "CVMock.vin"),
cvb.AcquisitionStack.Vin) as device:
stream = device.stream()
stream.start()
classifier = cvb.shapefinder2.Classifier(os.path.join(cvb.install_path(), sf_example_path, "Screw.sf2"))
for i in range(2):
image, status = stream.wait()
if status == cvb.WaitStatus.Ok:
res = classifier.search_all(device.device_image.planes[0], device.device_image.bounds, cvb.shapefinder2.PrecisionMode.CorrelationFine, 0.55, 20, 10)
print('Result for image {0:2d}:'.format(i+1))
print(' Number of search results: {0:2d}'.format(len(res)))
print_search_result(res)
stream.abort()
Union[cvb.GenICamDevice, cvb.VinDevice, cvb.EmuDevice, cvb.VideoDevice, cvb.NonStreamingDevice] open(str provider, int acquisition_stack=cvb.AcquisitionStack.PreferVin)
str install_path()