openmv图像识别(二维码篇)

 

温馨提示,本文的代码是采用多种方法集成的最优方法

Hello,亲爱的读者们!在这个充满挑战与创新的时代,我们总是不断探索新的技术边界。今天,我非常激动地与大家分享我最近在OpenMV4领域的一次有趣尝试。

作为一名热衷于机器视觉和智能识别的开发者,我一直在寻找能够提升项目性能和准确性的新工具和方法。OpenMV4以其强大的图像处理能力和灵活的编程接口,成为了我探索之旅中的得力助手。

在这篇博客中,我将带领大家一起走进基于色块识别的图形、颜色以及坐标识别的世界。通过一段精心编写的代码,我们可以实现对特定颜色和形状的物体进行快速而准确的识别,而且据我的实际测试,其准确率能够达到90%以上!

不过,请注意,为了获得最佳识别效果,我们需要确保环境光线适宜,并且物体与摄像头保持适当的距离。如果遇到识别效果不佳的情况,您还可以根据实际情况调整代码中的颜色阈值和物体距离参数。

不多说了,让我们直接进入正题,看看这段神奇的代码是如何工作的吧!(友情提示:为了运行这段代码,您需要使用OpenMV IDE。

 一、代码初始化: 

import sensor, image, time
thresholds = [(45, 100, -41, 127, -10, 120) ]# black
sensor.reset() #初始化设置
sensor.set_pixformat(sensor.RGB565) #设置为彩色
sensor.set_framesize(sensor.QVGA) #设置清晰度
sensor.set_windowing(150,200)
sensor.skip_frames(time = 2000) #跳过前2000ms的图像
sensor.set_auto_gain(False) # must be turned off for color tracking
sensor.set_auto_whitebal(False) # must be turned off for color tracking
clock = time.clock() #创建一个clock便于计算FPS,看看到底卡不卡
sensor.set_auto_gain(False) # 关闭自动自动增益。默认开启的。
sensor.set_auto_whitebal(False) #关闭白平衡。

二、颜色部分: 

for code in img.find_qrcodes():  # 进行二维码检测
                    img.draw_rectangle(code.rect(), color = (255, 0, 0))
                    print(code.payload()) 
  1. for code in img.find_qrcodes()::

    • 这是一个for循环,用于遍历img.find_qrcodes()函数返回的二维码对象列表。img.find_qrcodes是OpenMV用来检测图像中二维码的函数。
  2. img.draw_rectangle(code.rect(), color = (255, 0, 0)):

    • 这行代码调用img.draw_rectangle方法,在图像上绘制一个矩形,表示检测到的二维码的位置。参数说明如下:
      • code.rect(): 返回二维码的边界框,即二维码在图像中的位置和大小。
      • color = (255, 0, 0): 绘制矩形的颜色,这里使用的是红色(在RGB颜色模式中,红色由(255, 0, 0)表示)。
  3. print(code.payload()):

    • 这行代码调用code.payload()方法,打印出检测到的二维码中包含的数据(即二维码的payload)。payload是二维码编码的信息,可以是文本、URL或其他数据。

三、总体代码

import sensor, image, time
thresholds = [(45, 100, -41, 127, -10, 120) ]# black
sensor.reset() #初始化设置
sensor.set_pixformat(sensor.RGB565) #设置为彩色
sensor.set_framesize(sensor.QVGA) #设置清晰度
sensor.set_windowing(150,200)
sensor.skip_frames(time = 2000) #跳过前2000ms的图像
sensor.set_auto_gain(False) # must be turned off for color tracking
sensor.set_auto_whitebal(False) # must be turned off for color tracking
clock = time.clock() #创建一个clock便于计算FPS,看看到底卡不卡
sensor.set_auto_gain(False) # 关闭自动自动增益。默认开启的。
sensor.set_auto_whitebal(False) #关闭白平衡。

while(True):
    clock.tick()
    img = sensor.snapshot()#可以畸形也可以不用
    for blob in img.find_blobs(thresholds, area_threshold = 200, pixels_threshold=200):   
        for code in img.find_qrcodes():  # 进行二维码检测
                img.draw_rectangle(code.rect(), color = (255, 0, 0))
                print(code.payload()) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值