K210视觉体验—颜色识别

article/2025/8/26 19:40:12

K210视觉体验—颜色识别

  • 使用设备
    • ZTFR开发板
  • 颜色识别
    • Lab 颜色空间
    • 构造函数
    • 示例代码1:识别RGB(红,绿,蓝)
    • 示例代码2:识别指定颜色

使用设备

ZTFR开发板

在这里插入图片描述

颜色识别

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

Lab 颜色空间

有兴趣的可以点我查看:LAB色彩模型

打开MaixPy IDE,选择工具——机器视觉——阕值编辑器

构造函数

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()返回这个色块的密度比。这是在色块边界框区域内的像素点的数量。 总的来说,较低的密度比意味着这个对象的锁定得不是很好。

示例代码1:识别RGB(红,绿,蓝)

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)

示例代码2:识别指定颜色

本篇说了LAB颜色模式,我们来没还没用。而且每个人像是别的色彩是不一样的。光给RGB不够。所以我们要学会自定义哦。方法如下:

  1. 开局一张图
    在这里插入图片描述
  2. 在Maixpy IDE 选择【工具】——【机器视觉】——【阈值编辑器】
    在这里插入图片描述
  3. 选择【图像文件】
    备注:帧缓冲区要事先把摄像头对准物体,在执行第二步
    在这里插入图片描述
  4. 选好图片如下,尝试选择最佳的颜色跟踪阙值,通过滑动条来调节阈值,在二进制图像上红色块高亮(显示白色)。
    在这里插入图片描述
  5. 调整好获取LAB添加到代码里
import sensor
import image
import lcd
import timelcd.init(freq=15000000)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
red_threshold =(89, 100, -122, 96, -128, 47) # LAB
while True:img=sensor.snapshot()blobs = img.find_blobs([red_threshold])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])lcd.display(img)
  1. 效果如下

在这里插入图片描述


http://chatgpt.dhexx.cn/article/7gU2LTcQ.shtml

相关文章

Halcon 学习笔记八:颜色识别

Halcon 学习笔记八:颜色识别 一、图像处理需要的知识二、图像处理的预处理和分割过程二、颜色识别的方法三、例子一四、例子二五、例子三 一、图像处理需要的知识 1.图像处理基础(rgb(hsv),gray) 2.图像灰度变换(scale_img) 3.图像基础(emph…

基于Python的颜色识别器

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 在这篇文章中,我们将展示如何使用Python构建颜色识别器。此过程也称为“颜色检测”。我们将创建一个基本应用程序,该应用程序将帮助我们检测图像…

python颜色识别demo

一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。 H: 0 — 180 S: 0 — 255 V: 0 — 255 此处把部分…

openCV-python实现颜色识别

本文将介绍使用OpenCV实现颜色识别的详细步骤 代码。 背景介绍 在截取出模板匹配到的logo区域之后,需要判断logo是什么颜色。本案例中要识别的对象是纯色的所以适用下面的颜色识别方法,有不同需求的请斟酌借鉴。 原理介绍 数字图像处理中常用的采用模型…

python颜色识别,46行代码实现865种颜色识别,看过的都说顶呱呱!

1.先介绍我做的颜色识别的功能,简单的说,就是该脚本可以打开图片,在图片上点击某个区域,可以识别某个区域的颜色,颜色识别准确度很高,很多时候颜色识别是辅助物体的颜色识别,但这个代码你们可以…

OpenCV(Python)颜色识别(一)

1. 基本原理 1.1 彩色模型 数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时…

OpenCV颜色识别

彩色模型 数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB…

LabVIEW色彩匹配实现颜色识别、颜色检验(基础篇—13)

目录 1、颜色识别 2、颜色检验 色彩匹配(Color Matching)是将模板图像与待测图像或其中某一区域的颜色进行比较,判断它们是否相同或相近的过程。它可以用于颜色识别、颜色检验以及彩色对象定位等基于色彩信息比较的应用程序。 色彩匹配通常…

Python 对图片进行颜色识别

场景:在进行压力测试时,需要判断图片的某一块区域是否是黑色 这里使用的是OpenCV库对图片进行颜色的识别,几乎可以识别所有常见的颜色 直接上代码 import cv2 import numpy as np import collectionsclass colorList:def getColorList(sel…

OpenCV颜色识别(所有颜色均可识别)

OpenCV颜色识别实例(所有颜色均可识别) 欢迎访问我的博客sakuraの绘梨衣 本文中的颜色识别为红色,颜色阈值设置如下: lower_apple np.array([0, 100, 100]) higher_apple np.array([10, 200, 200])识别其他颜色可以参考HSV颜色…

如何实现视觉识别颜色

1. 功能说明 通过摄像头识别特定颜色(红、绿、蓝)。摄像头采集图像信息并通过WiFi将信息传递给PC端,然后PC端根据比例判断出目标颜色在色盘上的所属颜色后,指针便会指向对应颜色。 红、绿、蓝-色块 2. 电子硬件 本实验中采用了以下…

Halcon——颜色识别提取

文章目录 前言一、颜色识别原理二、颜色识别为什么将其转换至HSV颜色空间三、源代码写在最后 前言 【Halcon】颜色识别提取 这里以嘉庚建筑风格为例~ 一、颜色识别原理 载入图像后,将其转换至HSV颜色空间,通过判断每个像素是否在所选取的范围内&…

颜色识别、轮廓识别-树莓派 Opencv-基于Python学习记录DAY-4

学习颜色识别之前先介绍一下新认识的图像格式HSV: 色调H 用角度度量,取值范围为0~360,从红色开始按逆时针方向计算,红色为0,绿色为120,蓝色为240。它们的补色是:黄色为60,青色为18…

opencv--颜色识别

目录 一、主要函数介绍 二、颜色识别 三、其他相关函数介绍 1. cv2.resize 2. np.array(x,dtype) 3. cv2.inRange() 4. cv2.imshow() 5.cv2. waitKey() 四、掩膜 一、主要函数介绍 通常,相机在RGB颜色模式下工作,但这种模式受到光线的影响较大&am…

颜色识别OpenCV

下面有多种颜色识别方法,可根据需要进行选择 ①colorList.py(颜色库) import numpy as np import collectionsdef getColorList():dict collections.defaultdict(list)# blacklower_black np.array([0, 0, 0])upper_black np.array([180…

SPSSAU统计分析软件,一键输出三线表格式分析结果

SPSSAU最近和一位朋友聊天,她在写论文,说到自己用SPSS软件对问卷数据做统计分析,做完之后分析结果有了,拿给导师看,但她们导师说,论文中的表格必须是三线表格式,然后她就得要自己手动制作三线表…

SPSS软件的数据分析与GDP和人口老龄化的预测

目录 前言 问题二模型的建立与求解 1.2.1 ARIMA时间序列模型的建立与求解 平稳性检验 的时间序列预测模型的建立与求解 ​​​​​​​模型的检验 ​​​​​​​对于的时间序列预测模型的建立与求解 ​​​​​​​模型的检验 ​​​​​​​ 前言 SPSS软件的数据分析与GDP和…

数据分析与挖掘———SPSS Moderler

数据分析与挖掘———SPSS Moderler 一、Modeler给概述 1、SPSS Modeler基本认识 IBM SPSS Modeler是一组数据挖掘工具,通过这些工具可以采用商业技术快速建立预测性模型,并将其应用于商业活动,从而改进决策过程。 SPSS Modeler提供了各种…

用SPSS做数据分析(1)

写在前面: 爬虫今天停更一天,今天是周六,今天要把最近网课学习SPSS课程做个总结和回顾,明天继续更新爬虫的内容,今天这篇文章主要是SPSS中的数据管理,一些关于数据的简单操作,是属于SPSS中比较基础的内容,希望看完博客能动手亲自实践一下,会有奇效 文章目录 写在前面:SPSS数据…

利用SPSS做数据分析①(了解SPSS)

话不多说,上才艺,BGM,BGM,BGMBGM。。。哈哈哈哈 不闹了,接下来让我们一起认识一个非常好用的数据分析工具:SPSS 1、SPSS是什么? SPSS是广大统计爱好者和数据分析师最熟悉的名字,它…