问题叙述
矽速科技提供的K210识别二维码的MircoPython虽然可以在设备上运行但是无法正确识别出二维码。
问题分析
通过翻阅资料之后得知二维码识别是需要通过识别图像中的三个定位点(如下图所示,在图像的左上左下和右上分别有一个“回”字型框)来进行位置定位。如果镜头畸变严重或者图像采集时进行了镜像处理,就可能会导致识别失败。本文中使用的M1W模组就是因镜头识别出的图像是镜像的,从而导致了识别失败。
解决办法
修改官方Demo代码为如下样式:
import sensor
import image
import lcd
import time
clock = time.clock()
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
#sensor.set_vflip(1) #开启图像反转
sensor.set_vflip(0) #关闭图像反转
sensor.run(1)
sensor.skip_frames(30)
while True:
clock.tick()
img = sensor.snapshot()
res = img.find_qrcodes()
fps =clock.fps()
if len(res) > 0:
img.draw_string(2,2, res[0].payload(), color=(0,128,0), scale=2)
print(res[0].payload())
lcd.display(img)