openmv摄像头基于micropython的编程方式实现图像和视频流处理。最近在做二维码扫描和信息获取需要用到openmv,于是就参考了官网的例程。
运行官网例程识别到二维码会打印如下字符串:
{"x":21, "y":36, "w":60, "h":58, "payload":"你好,小白", "version":3, "ecc_level":2, "mask":2, "data_type":4, "eci":0}
我最早以为是一个字典类型,然后用字典方式直接获取“payload”的信息code["payload"],报错后重新打印了code的类型,发现是class。因此要获得对应的信息需要使用类的方式获取,使用code.payload()就可以提取出二维码中信息。
下面是完整代码:
import sensor, image, time
sensor.reset()//相机传感器重置
sensor.set_pixformat(sensor.RGB565)//像素设置为RGB565
sensor.set_framesize(sensor.QQVGA)//QQVGA分辨率为160x120
sensor.skip_frames(30)//函数跳过相机的前30帧,以便有足够时间调整
sensor.set_auto_gain(False)//调用该函数关闭相机的自动增益功能,确保图像亮度一致,不受环境光线影响
while(True):
img = sensor.snapshot()//获取图像快照,将其储存为img的变量中
img.lens_corr(1.8)//对图像进行镜头校正
for code in img.find_qrcodes()://用于遍历图像寻找QR二维码
payload=code.payload()
print("二维码信息为:",payload)//提取打印二维码信息。
二维码生成和测试网址的话,可以参考这个
QR.io: QR Code Generator | Create QR Codes