【发布时间】:2018-04-04 01:47:58
【问题描述】:
我有一个包含 3 种颜色的输入图像。这些颜色是圆形的并且是嵌套的。
我将处理几张这样的图像。图像总是相同的。但是由于相机、照明、甚至打印机的不同,实际颜色可能会有所不同。因为它总是按照显示的顺序是红色黄色绿色。通过使用 HSV 和阈值,我可以轻松确定每种颜色的上限和下限。但是,如果我更改为一组不同的图像,这些值将不再起作用。
我克服这个问题的想法是首先在图像中寻找轮廓。 对于每个轮廓,我想获得一个上限和下限。使用 canny 、 gaussian 和 contours 的组合,我可以通过测试在每种颜色周围绘制轮廓,这似乎足以达到目的。
我遇到的困难是从轮廓中获取阈值。这可能吗?或者我是否有更简单的逻辑来实现这一目标?
目前我用的是python,但是语言是次要的。
【问题讨论】:
-
您是否尝试过使用 HSV 颜色空间,并使用 inRange 来使用 Hue 值设置阈值?
-
嗨,是的,我使用过 HSV,问题是虽然 usingHSV 适用于单个图像或几张图像,但它不足以适用于所有图像,这就是我试图获得图像中每个图像的阈值。图像打印在纸上,光线之类的东西很少,打印机剩下多少墨水会稍微改变阈值的有效性
-
也许一个真实图像的例子会帮助更多的人帮助你。
-
谢谢,我会按照你的建议上传一张真实的照片。你认为我想要实现的目标是可能的吗?
-
这取决于图像,取决于您使用的策略,以及您可以有多少错误......但主要取决于图像变化多少,如果没有,您可以尝试机器学习跨度>
标签: python opencv image-processing