• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 模版匹配?



    • 直接用的历程,运行出现这样的问题?0_1544497204321_58.jpg



    • 请提供全部的代码



    • @kidswong999 # 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_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.

      template = image.Image("/template.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 = 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(clock.fps())


    • @kidswong999

      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_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.

      template = image.Image("/template.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 = 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(clock.fps())


    • 报错提示说,你的ROI比模版还小。



    • 请问,怎么缩小我的摸版呢