openmv识别健康ma

图像处理

文章目录

  • 图像处理
  • 前言
  • 一、颜色识别
  • 二、识别二维码
  • 总结


前言

之前用V831做了健康码,手上有一个闲着的的openmv就想做个健康ma识别看一看。

一、颜色识别

最开始就想着颜色识别呗,反正颜色也不一样。

import sensor, image, time, math
thresholds = [(35, 67, 26, 62, -86, 103), # 红色阈值(58, 100, -43, 127, 22, 127), #黄色阈值(72, 46, -83, -43, 39, 127)] # 绿色阈值
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_auto_gain(False) 
while(True):img = sensor.snapshot()for blob in img.find_blobs(thresholds, pixels_threshold=200, area_threshold=200):       img.draw_rectangle(blob.rect())img.draw_cross(blob.cx(), blob.cy())print(blob[8])#输出坐标信息

这样确实可以识别颜色,但是健康ma中间有个红色的爱心,边框还是黄色的,整无语了,就想着识别二维码,看健康ma里面是什么内容,然后根据列表字典什么的进行区分。

二、识别二维码

import sensor, image
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA) # can be QVGA on M7...
sensor.skip_frames(30)
sensor.set_auto_gain(False) # must turn this off to prevent image washout...
while(True):img = sensor.snapshot()img.lens_corr(1.8) # strength of 1.8 is good for the 2.8mm lens.for code in img.find_qrcodes():print(code)

这里是openmv官网的历程,效果就是,健康ma识别不出来内容。那怎么办呢,我打算回到颜色识别,但是我用二维码的位置进行定位,颜色我不用阈值的方式。
看代码

import sensor, image
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(30)
sensor.set_auto_gain(False) 
while(True):img = sensor.snapshot()img.lens_corr(1.8) for code in img.find_qrcodes():statistics=img.get_statistics(roi=code.rect())img.draw_rectangle(code.rect())color_l=statistics.l_mean()color_a=statistics.a_mean()color_b=statistics.b_mean()if color_a<0:print("绿码")if color_a>15:print("红码")if 5<color_a<15:print("黄码")

效果呢确实有,但是很慢反应很迟钝。微信上的健康码依然识别不了,只能识别绿色的二维码。

总结

openmv的效果还是不太好,打算继续探寻更好的方法。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部