现在提示说可能是我的照片太大了
wuzg
@wuzg
wuzg 发布的帖子
-
RE: 多模版匹配NCC历程出现以下问题,这行template = image.Image(t)使IDE被打断?
@5gmd 在 多模版匹配NCC历程出现以下问题,这行template = image.Image(t)使IDE被打断? 中说:
Template Matching Example - Normalized Cross Correlation (NCC)
这个例子展示了如何使用OpenMV凸轮的NCC功能将小部分图像与图像的各个部分
进行匹配...期望获得极其可控的环境NCC并不是全部有用的。
警告:NCC支持需要重做!到目前为止,这个功能需要做大量的工作才能有用。
这个脚本将重新表明功能的存在,但在目前的状态是不足的。
import time, sensor, image
from image import SEARCH_EX, SEARCH_DS
#从imgae模块引入SEARCH_EX和SEARCH_DS。使用from import仅仅引入SEARCH_EX,
#SEARCH_DS两个需要的部分,而不把image模块全部引入。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.
templates = ["/0.pgm", "/1.pgm", "/2.pgm", "/6.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. for t in templates: template = image.Image(t) #对每个模板遍历进行模板匹配 r = img.find_template(template, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60)) #find_template(template, threshold, [roi, step, search]),threshold中 #的0.7是相似度阈值,roi是进行匹配的区域(左上顶点为(10,0),长80宽60的矩形), #注意roi的大小要比模板图片大,比frambuffer小。 #把匹配到的图像标记出来 if r: img.draw_rectangle(r) print(t) #打印模板名字 #print(clock.fps())
请在这里粘贴代码
我也会出现这个问题
-
我的板子是H7,进行多模板识别的时候总是报错,请问是什么原因呢?
请在这里粘贴代码
Template Matching Example - Normalized Cross Correlation (NCC)
This example shows off how to use the NCC feature of your OpenMV Cam to match
image patches to parts of an image... expect for extremely controlled enviorments
NCC is not all to useful.
WARNING: NCC supports needs to be reworked! As of right now this feature needs
a lot of work to be made into somethin useful. This script will reamin to show
that the functionality exists, but, in its current state is inadequate.
import time, sensor, image
from image import SEARCH_EX, SEARCH_DSReset 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.
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")
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. r 1= img.find_template(template1, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60) if r1: img.draw_rectangle(r1) r 2= img.find_template(template2, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60) if r2: img.draw_rectangle(r2) r 3= img.find_template(template3, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60) if r3: img.draw_rectangle(r3) r 4= img.find_template(template4, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60) if r4: img.draw_rectangle(r4) r 5= img.find_template(template5, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60) if r5: img.draw_rectangle(r5) r 6= img.find_template(template6, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60) if r6: img.draw_rectangle(r6) r 7= img.find_template(template7, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60) if r7: img.draw_rectangle(r7) r 8= img.find_template(template8, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60) if r8: img.draw_rectangle(r8) print(clock.fps())