• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 模板匹配的find_template()函数多次调用会报错问题?



    • import time, sensor, image
      from image import SEARCH_EX, SEARCH_DS
      #从imgae模块引入SEARCH_EX和SEARCH_DS。使用from import仅仅引入SEARCH_EX,
      #SEARCH_DS两个需要的部分,而不把image模块全部引入。
      
      sensor.reset()                                              #相机初始化
      sensor.set_contrast(1)                                      #设置相机对比度
      sensor.set_framesize(sensor.FHD)                         #设置相机分辨率
      #sensor.set_windowing(((640-80)//2, (480-60)//2, 80, 60))   #设置视窗分辨率
      sensor.set_pixformat(sensor.GRAYSCALE)                      #设置灰度模式
      sensor.set_auto_gain(False)                                 #关闭相机自动增益
      sensor.set_auto_whitebal(False)                             #关闭相机自动白平衡
      sensor.set_auto_exposure(False, \
          exposure_us = 80000)                                    #设置曝光时间
      
      # Load template.
      # Template should be a small (eg. 32x32 pixels) grayscale image.
      template = image.Image("/L.pgm")                            #加载模板图片
      
      while (True):
          img = sensor.snapshot()                                 #相机采图
          img.lens_corr(1.8)                                      #相机畸变矫正
          img.draw_rectangle((0,540,960,540), color=(0,255,0))
      
          # find_template(template, threshold, [roi, step, search])
          r1 = img.find_template(template, 0.70, roi=(0,540,960,540), step=4, search=SEARCH_EX)
          if r1:
              img.draw_rectangle(r1,color=(255,0,0))
              print(r1[0]+r1[2]/2, r1[1]+r1[3]/2)
          r2 = img.find_template(template, 0.70, roi=(960,540,960.540), step=4, search=SEARCH_EX)
          if r2:
              img.draw_rectangle(r2,color=(255,0,0))
              print(r2[0]+r2[2]/2, r2[1]+r2[3]/2)
          r3 = img.find_template(template, 0.70, roi=(960,0,960.540), step=4, search=SEARCH_EX)
          if r3:
              img.draw_rectangle(r3)
              print(r3[0]+r3[2]/2, r3[1]+r3[3]/2)
      

      运行会出现报错问题,定位在了第二次调用find_template()函数位置。尝试了三个find_template()单独调用运行,单独运行第一个正常,第二、三个会报错。
      0_1693903150407_报错.png
      请问有没有同样问题已经解决的分享一下解决办法。



    • 你把逗号写成小数点了。