我有一张输入图像,我从其中提取了一个机器人项目的圆圈,然后得到了这些圆圈内的平均 colored颜色 .这些圆圈可以是红色的,也可以是黄色的,就像我在木头上画的那样.我从这些圆圈中提取了平均 colored颜色 ,并将它们显示在这里以供调试.这不是输入图像,只是我想区分的红色或黄色或两者都不是的 colored颜色 列表.

I tried using cv2.inrange with a singular colour value converted to HSV to see if it was red or yellow but that was quite finnicky to adjust and I eventually decided to go for another option. I also tried converting the RGB values to LAB colours, and got the Euclidean Distance between that and the lab values of red and yellow to see which one is less. That also did not work as expected. I also tried various smaller ideas but all of them had some shortcoming one way or another also. Here are the colours I am trying to identify as red or yellow, the dull ones should be classified as neither: Colours List (ignore background)

对于如何区分这些 colored颜色 是红色还是黄色(或者如果它们都不是,那就忽略它们),你有什么 idea 吗?

推荐答案

如果我在顶行复制您的图像,并将分离的HSV通道放在下面,左侧为H,中间为S,右侧为V:

enter image description here

希望你能看到,中央S通道是一个很好的判别器,可以区分暗淡/柔和的紫色圆盘,这些圆盘显示为黑色,而其他所有圆盘都显示得更亮.这意味着在S频道上设置一个简单的阈值就可以找到您所有色彩鲜艳的光盘.


提取了色彩鲜艳的光盘后,如果我们想要区分黄色和紫色,我们可以查看上图中最左边的H个通道.


因此,具体地说,我会考虑使用S通道来制作色彩鲜艳的光盘的掩模,然后使用H通道来区分紫色和黄色.

Python相关问答推荐

如何使用Jinja语法在HTML中重定向期间传递变量?

即使在可见的情况下也不相互作用

Odoo 14 hr. emergency.public内的二进制字段

将整组数组拆分为最小值与最大值之和的子数组

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

'discord.ext. commanders.cog没有属性监听器'

无法使用requests或Selenium抓取一个href链接

所有列的滚动标准差,忽略NaN

让函数调用方程

如何在TensorFlow中分类多个类

Polars将相同的自定义函数应用于组中的多个列,

跳过嵌套JSON中的级别并转换为Pandas Rame

在Python中从嵌套的for循环中获取插值

如何反转一个框架中列的值?

多个矩阵的张量积

为罕见情况下的回退None值键入

如何获取包含`try`外部堆栈的`__traceback__`属性的异常

一维不匹配两个数组上的广义ufunc

Matplotlib中的曲线箭头样式

如何在Polars中处理用户自定义函数的多行结果?