咸鱼K210体验笔记—颜色识别

  • image

写在前面:本人非专业人员,仅为此类爱好者。分享一下新手在体验K210的过程。入门踩坑(各种跳坑),希望大佬帮忙填上一二~。(所选设备都是K210。都想体验一下。欢迎大佬指点。)因为之前有些硬件使用基础所以K210只使用视觉相关功能。

image

嗯~能画简单的图了。那我们定一个小目标,来个颜色识别吧(/滑稽)。

MaixPy 集成了 RGB565 颜色块识别 find_blobs 函数,主要是基于 LAB 颜色模型(每个颜色都是用一组 LAB 阈值表示,有兴趣的用户可以自行查阅相关模型资料)。其位于 image模块下,因此我们直接将拍摄到的图片进行处理即可。

构造函数

image 图像模块。导入image模块

import image
//色块对象是由 image.find_blobs 返回的。
image.find_blobs(thresholds, invert=False, roi, x_stride=2, y_stride=1, area_threshold=10, pixels_threshold=10, merge=False,margin=0, threshold_cb=None, merge_cb=None)
查找图像中指定的色块。返回 image.blog 对象列表;
【thresholds】 必须是元组列表。 [(lo, hi), (lo, hi), ..., (lo, hi)] 定义你想追踪的颜色范围。 对于灰度图像,每个元组需要包含两个值 - 最小灰度值和最大灰度值。 仅考虑落在这些阈值之间的像素区域。 对于 RGB565 图像,每个元组需要有六个值(l_lo,l_hi,a_lo,a_hi,b_lo,b_hi) - 分别是 LAB L,A 和 B通道的最小值和最大值。
【area_threshold】若色块的边界框区域小于此参数值,则会被过滤掉;
【pixels_threshold】若色块的像素数量小于此参数值,则会被过滤掉;
【merge】若为 True,则合并所有没有被过滤的色块;
【margin】调整合并色块的边缘。
函数 说明
blob.rect() 返回一个矩形元组(x,y,w,h),如色块边界。可以通过索引[0-3]来获得这些值。
blob.x() 返回色块的边界框的x坐标(int)。可通过索引 [0] 取得这个值。
blob.y() 返回色块的边界框的y坐标(int)。可通过索引 [1] 取得这个值。
blob.w() 返回色块的边界框的w坐标(int)。可通过索引 [2] 取得这个值。
blob.h() 返回色块的边界框的h坐标(int)。可通过索引 [3] 取得这个值。
blob.pixels() 返回从属于色块(int)一部分的像素数量。可通过索引 [4] 取得这个值。
blob.cx() 返回色块(int)的中心x位置。可通过索引 [5] 取得这个值。
blob.cy() 返回色块(int)的中心x位置。可通过索引 [6] 取得这个值。
blob.rotation() 返回色块的旋转(单位:弧度)。如果色块类似铅笔或钢笔,那么这个值就是介于0-180之间的唯一值。 如果这个色块圆的,那么这个值就没有效用。如果这个色块完全不具有对称性,您只能由此得到0-360度的旋转。可通过索引 [7] 取得这个值。
blob.code() 返回一个16位的二进制数字,其中为每个颜色阈值设置一个位,这是色块的一部分。 例如,如果您通过 image.find_blobs 来寻找三个颜色阈值,这个色块可以设置为0/1/2位。 注意:除非以 merge=True 调用 image.find_blobs ,否则每个色块只能设置一位。 那么颜色阈值不同的多个色块就可以合并在一起了。 您也可以用这个方法以及多个阈值来实现颜色代码跟踪。可通过索引 [8] 取得这个值。
blob.count() 返回合并为这一色块的多个色块的数量。只有您以 merge=True 调用 image.find_blobs 时,这个数字才不是1。可通过索引 [9] 取得这个值。
blob.area() 返回色块周围的边框面积(w * h)
blob.density() 返回这个色块的密度比。这是在色块边界框区域内的像素点的数量。 总的来说,较低的密度比意味着这个对象的锁定得不是很好。

示例代码

'''
名字:查找颜色
日期:2020.3.19
作者:咸鱼梦工坊
说明:查找色块
思路说明:
1.导入相关模块
2.初始化模块
3.定义颜色阈值
4.寻找相匹配的颜色(红,绿,蓝)
'''
import sensor,image,lcd,time#------常用初始化   ↓-------
lcd.init()
sensor.reset()                      #复位摄像头
sensor.set_pixformat(sensor.RGB565) # 设置像素格式 RGB565
sensor.set_framesize(sensor.QVGA)   # 设置帧尺寸 QVGA (320x240)
#------常用初始化   ↑-------
'''对于 RGB565 图像,每个元组需要有六个值(l_lo,l_hi,a_lo,a_hi,b_lo,b_hi)
分别是 LAB中 L,A 和 B 通道的最小值和最大值。
L的取值范围为0-100,a/b 的取值范围为-128到127。'''#红色阈值[0],绿色阈值[1],蓝色阈值[2]
rgb_thresholds   =[(30, 100, 15, 127, 15, 127),
(0, 80, -70, -10, -0, 30),
(0, 30, 0, 64, -128, -20)]   #阈值调试可以在IDE上看哦while True:img=sensor.snapshot()blobs = img.find_blobs([rgb_thresholds[1]])if blobs:for b in blobs:tmp=img.draw_rectangle(b[0:4])  #在图像上绘制一个矩形。tmp=img.draw_cross(b[5], b[6])  #画十字交叉c=img.get_pixel(b[5], b[6])#    返回(x, y)位置的RGB888像素元组lcd.display(img)

IDE提供阈值编辑器。打开后复制即可

咸鱼K210体验笔记—颜色识别相关推荐

  1. 咸鱼K210体验笔记—图片拍摄

    咸鱼K210体验笔记-图片拍摄 写在前面:本人非专业人员,仅为此类爱好者.分享一下新手在体验K210的过程.入门踩坑(各种跳坑),希望大佬帮忙填上一二~.(所选设备都是K210.都想体验一下.欢迎大佬 ...

  2. 咸鱼K210体验笔记—摄像头应用

    咸鱼K210体验笔记-摄像头应用 摄像头应用 写在前面:本人非专业人员,仅为此类爱好者.分享一下新手在体验K210的过程.入门踩坑(各种跳坑),希望大佬帮忙填上一二~.(所选设备都是K210.都想体验 ...

  3. Halcon 学习笔记八:颜色识别

    Halcon 学习笔记八:颜色识别 一.图像处理需要的知识 二.图像处理的预处理和分割过程 二.颜色识别的方法 三.例子一 四.例子二 五.例子三 一.图像处理需要的知识 1.图像处理基础(rgb(h ...

  4. 【K210学习笔记】#MaixPy#(3)人脸检测与人脸识别

    目录 一.人脸检测: 1.烧录模型: 2.示例测试: 二.人脸识别: 1.获取机器码: 2.获取人脸识别模型: 3.烧录专用固件: 4.烧录模型: 5.示例测试: 6.报错解决: 一.人脸检测: 1. ...

  5. K210视觉体验—颜色识别

    K210视觉体验-颜色识别 使用设备 ZTFR开发板 颜色识别 Lab 颜色空间 构造函数 示例代码1:识别RGB(红,绿,蓝) 示例代码2:识别指定颜色 使用设备 ZTFR开发板 颜色识别 Maix ...

  6. 【K210】K210学习笔记六——MaixHub在线模型训练识别数字

    [K210]K210学习笔记六--MaixHub在线模型训练识别数字 前言 K210准备工作 数据的获取 MaixHub如何在线训练模型 训练模型在K210上的测试 小结 前言 本人大四学生,电赛生涯 ...

  7. RT-Thread学习笔记|TCS34725 RGB 颜色识别传感器详解

    rt-thread是什么? RT-Thread 是一个集实时操作系统(RTOS)内核.中间件组件和开发者社区于一体的技术平台,组件完整丰富.高度可伸缩.简易开发.超低功耗.高安全性的物联网操作系统.R ...

  8. 备赛笔记:Opencv学习:颜色识别

    OpenCV颜色识别一般要以下步骤: 1 颜色空间转换,将BGR转换为HSV,用色调区分颜色 2 按照阈值滤出所识别的颜色 3 消除噪点,平滑边界 3 提取连续域,提取要识别的颜色 1 HSV H:色 ...

  9. 对k210的初探—MixNo—颜色识别_识别采集图片中间框区域的颜色值

    AIOnenet_按键按一下调用动物检测API并框出位置 今天的测评是MixNo调用Onenet平台智能识别哈士奇并框出来,串口输出图像位置. 程序如下: 以下为视频展示(测试图片来自百度) 颜色识别 ...

  10. 【K210】K210学习笔记五——串口通信

    [K210]K210学习笔记五--串口通信 前言 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口接收相关定义 K210串口发送接收测试 完整源码 前言 本人大四学生 ...

最新文章

  1. hadoop分布式集群搭建
  2. java基础(五) String性质深入解析
  3. Web前端就业薪资是多少?Web前端要学什么?
  4. jdk switch 枚举_JDK 12开关表达式遇到意外的枚举值
  5. NOI大纲 CSP初赛篇·知识大纲 CSP-入门级-NOI大纲
  6. 链接详解--共享库命名
  7. 使用CSS控制段落首行缩进
  8. Salesforce删除数据时出现Insufficient privileges的可能原因
  9. 计算机用户改路径,如何更改win7 Users(用户文件夹)文件存放位置?
  10. maven中,xml文件无法编译,想要在Java中写xml文件,需要配置xml信息,另外springBoot设置如何在资源目录下扫描xml文件
  11. 作品发布:挖金子修订版源码和文档
  12. autojs 绝美ui模板5
  13. three tables described the hot movie information in recent years
  14. 将swolidwroks文件导出URDF,导入v-rep\CoppeliaSim
  15. 在cmd中使用start运行exe文件闪退问题
  16. SpamSieve for Mac(垃圾邮件过滤软件)
  17. 决策树算法实战之预测眼镜类型
  18. 关于寻找海王id的算法伪代码分析思路
  19. 淘宝店铺运营 打造小而美店铺运营方案
  20. 在审计中用到的计算机知识,2019注册会计师考试《审计》第五章知识点:信息技术对审计过程的影响...

热门文章

  1. UninstallPKG 1.1.9 Mac卸载工具
  2. vim 格式化 json 命令
  3. 我的世界服务器哪个有自动铺路,我的世界自动铺路指令是什么
  4. 怎么把音频转换成mp3,一键批量转换法
  5. 在html中向下的箭头怎样写,word换行向下的箭头怎么打
  6. 键盘拆开重新安装步骤_键盘拆卸后怎么安装?
  7. 技术分享 | 如何在无人机设计中运用拓补优化技术?
  8. 用python做探索性因子分析(Exploratory Factor Analysis,EFA)全代码
  9. 快冲!淘宝无货源副业,傻瓜式操作,日赚300-500元!!
  10. axure能做剪切蒙版吗_***自动售货机能做吗