本文主要是介绍第五章-OpenMV4 色块识别的图形圆形 正方形识别、 黑色红色识别颜色、坐标识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
项目比赛中需要识别黑色圆形和黄色方形状
要是识别的圆形
openmv代码如下代码带了阈值如何更改阈值
可以使用下面方法
这里是循迹 把循迹线调节成白色就是颜色追踪阈值
把线 调整成
import sensor, image, timesensor.reset() # 重置图像传感器
sensor.set_pixformat(sensor.RGB565) # 设置像素格式为RGB565
sensor.set_framesize(sensor.QQVGA) # 设置帧大小为QQVGA
sensor.skip_frames(time = 2000) # 跳过2000ms的帧以使图像传感器稳定
sensor.set_auto_gain(False) # 关闭自动增益功能
sensor.set_auto_whitebal(False) # 关闭自动白平衡功能
clock = time.clock()while(True):clock.tick() # 记录当前时间img = sensor.snapshot().lens_corr(1.8) # 获取图像并进行畸变校正for c in img.find_circles(threshold = 3500, x_margin = 10, y_margin = 10, r_margin = 10,r_min = 2, r_max = 100, r_step = 2):area = (c.x()-c.r(), c.y()-c.r(), 2*c.r(), 2*c.r()) # 计算圆的外接矩形框区域statistics = img.get_statistics(roi=area) # 统计指定区域内的像素颜色print(statistics) # 打印颜色统计结果# (0,100,0,120,0,120) 是红色的阈值,如果区域内的颜色众数在该阈值范围内,则说明是红色的圆# l_mode()、a_mode()、b_mode() 分别是L通道、A通道、B通道的众数if 0<statistics.l_mode()<100 and 0<statistics.a_mode()<127 and 0<statistics.b_mode()<127: # 如果识别到的圆是红色的img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0)) # 使用红色圆框标记识别到的红色圆形print("圆心坐标:({}, {})".format(c.x(), c.y())) # 输出圆心坐标else:img.draw_rectangle(area, color = (255, 255, 255)) # 使用白色矩形框标记非红色圆形print("FPS %f" % clock.fps()) # 打印帧率
这篇关于第五章-OpenMV4 色块识别的图形圆形 正方形识别、 黑色红色识别颜色、坐标识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!