我是图像处理的新手,我被赋予了一项任务,即通过白色边缘将黄色(+ve 值)和蓝色(-ve 值)从仅包含蓝色和黄色的图像中分离出来。
不幸的是,我不知道该如何区分这两种颜色。
另外,我在得到的图像的像素中看不到任何负值。
不幸的是,我不能使用像
OpenCv
这样的高级库,网上大多数与图像处理相关的教程都使用它。
我将图像从
RGB
转换为Lab
色彩空间。我为此使用 Python 以及 scikit-image
库和其他有用的包。
如果有人能给我任何提示,我会很高兴!
谢谢
你需要找到一个黄色和蓝色很好分离的色彩空间。分割通道,并在页面上分配它们,在
RGB
色彩空间(R在左边,G在中间,B在右边):
这不是很好 - 材料捕捉光线的较亮黄色调被视为边缘。
让我们尝试用
Lab
代替RGB
,左边是L
,中间是a
,右边是b
:
还是不太好。现在让我们试试
HSV
colourspace,左边的H
,中间的S
和右边的V
:
希望你能看到左边的
H
钉了它。那是因为在这个图表中黄色是 60 度而蓝色是 240 度所以你的两种颜色是截然相反的 - 或者任何六边形代替圆的直径。
然后您需要进行边缘检测和增肥,然后您可以通过选择 “变亮” 混合模式在黄色和蓝色旗帜的顶部合成白色边缘,您可以在图像中的每个位置选择较亮的像素这样白色的边缘就会过滤掉。