惠
import time, sensor, image
from image import SEARCH_EX, SEARCH_DS
Reset sensor
sensor.reset()
Set sensor settings
sensor.set_contrast(1)
sensor.set_gainceiling(16)
Max resolution for template matching with SEARCH_EX is QQVGA
sensor.set_framesize(sensor.QQVGA)
You can set windowing to reduce the search image.
#sensor.set_windowing(((640-80)//2, (480-60)//2, 80, 60))
sensor.set_pixformat(sensor.GRAYSCALE)
Load template.
Template should be a small (eg. 32x32 pixels) grayscale image.
template0 = image.Image("/0.pgm")
template1 = image.Image("/1.pgm")
template2 = image.Image("/2.pgm")
template3 = image.Image("/3.pgm")
template4 = image.Image("/4.pgm")
template5 = image.Image("/5.pgm")
template6 = image.Image("/6.pgm")
template7 = image.Image("/7.pgm")
template8 = image.Image("/8.pgm")
template9 = image.Image("/9.pgm")
clock = time.clock()
Run template matching
while (True):
clock.tick()
img = sensor.snapshot()
# find_template(template, threshold, [roi, step, search])
# ROI: The region of interest tuple (x, y, w, h).
# Step: The loop step used (y+=step, x+=step) use a bigger step to make it faster.
# Search is either image.SEARCH_EX for exhaustive search or image.SEARCH_DS for diamond search
#
# Note1: ROI has to be smaller than the image and bigger than the template.
# Note2: In diamond search, step and ROI are both ignored.
r0 = img.find_template(template0, 0.70, step=4, search=SEARCH_EX)
if r0:
print('0')
r1 = img.find_template(template1, 0.70, step=4, search=SEARCH_EX)
if r1:
print('1')
r2 = img.find_template(template2, 0.70, step=4, search=SEARCH_EX)
if r2:
print('2')
r3 = img.find_template(template3, 0.70, step=4, search=SEARCH_EX)
if r3:
print('3')
r4 = img.find_template(template4, 0.70, step=4, search=SEARCH_EX)
if r4:
print('4')
r5 = img.find_template(template5, 0.70, step=4, search=SEARCH_EX)
if r5:
print('5')
r6 = img.find_template(template6, 0.70, step=4, search=SEARCH_EX)
if r6:
print('6')
r7 = img.find_template(template7, 0.70, step=4, search=SEARCH_EX)
if r7:
print('7')
r8 = img.find_template(template8, 0.70, step=4, search=SEARCH_EX)
if r8:
print('8')
r9 = img.find_template(template9, 0.70, step=4, search=SEARCH_EX)
if r9:
print('9')