• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 用多模板进行数字读取问题,要求是读取一组数据,数据长度会变,我现在写了一个支持5个长度的脚本,想知道时间更小的方法



    • templates=["/0.pgm","/1.pgm","/2.pgm","/3.pgm","/4.pgm","/5.pgm","/6.pgm","/7.pgm","/8.pgm","/9.pgm"]
      roi1=(0,10,30,40)
      roi2=(30,10,30,40)
      roi3=(60,10,30,40)
      roi4=(90,10,30,40)
      roi5=(120,10,30,40)
      
      #加载模板图片
      
      clock=time.clock()
      
      #Run template matching
      while(True):
          clock.tick()
          img=sensor.snapshot()
          for t1 in templates:
              template=image.Image(t1)
              #对每个模板遍历进行模板匹配
              r1=img.find_template(template,0.7,[roi1,step=4,search=SEARCH_EX])
              if r1:
                  img.draw_rectangle(r1)
                  print(t1)
      
          for t2 in templates:
              template=image.Image(t2)
              #对每个模板遍历进行模板匹配
              r2=img.find_template(template,0.7,[roi2,step=4,search=SEARCH_EX])
              if r2:
                  img.draw_rectangle(r2)
                  print(t2)
                  
          for t3 in templates:
              template=image.Image(t3)
              #对每个模板遍历进行模板匹配
              r3=img.find_template(template,0.7,[roi3,step=4,search=SEARCH_EX])
              if r3:
                  img.draw_rectangle(r3)
                  print(t3)       
      
      
          for t4 in templates:
              template=image.Image(t4)
              #对每个模板遍历进行模板匹配
              r4=img.find_template(template,0.7,[roi4,step=4,search=SEARCH_EX])
              if r4:
                  img.draw_rectangle(r4)
                  print(t4)  
          for t5 in templates:
              template=image.Image(t5)
              #对每个模板遍历进行模板匹配
              r5=img.find_template(template,0.7,[roi3,step=4,search=SEARCH_EX])
              if r4:
                  img.draw_rectangle(r5)
                  print(t5)
      


    • 我没看懂你这个代码是在做什么。你的目的是什么?

      数据长度会变,数据是什么?长度又是什么?



    • @kidswong999 我的目的是想识别一组数据,比如“12345”但是这组数据的长度是不固定的,如果我用多模板来做,那这个搜素出来的模板,排序是怎么排的,是以模板号索引高低来排的吗



    • @kidswong999 我这边担心输出的模板号不是按我数据数据排列的方式输出,所以我在每一个数字字符位置定义了一个roi(上面程序定义了5个位置的roi),然后在在这个roi位置搜素出对应位置的匹配结果



    • @klen 代码就是for循环遍历的,先调用哪个模版就是哪个模版。



    • @kidswong999 那有没有办法,可以对这个roi位置进行补正,可以随着产品位置变更进行位置补正



    • @klen 什么叫做位置补正?

      OpenMV做OCR不合适的。