我正在尝试在HLS (Hue Lightness饱和度)中匹配所有的绿色,但没有太多成功。我必须创建一个只包含青椒的图像。源图:
我所需要的是H,L和S之间的特定部分/依赖关系。我已经在互联网上搜索过了,但我失败了:(。
为此,我使用Java语言中的OpenCV。我当前的代码(部分):
private double lsRatio(HLS hls) {
return hls.getL() / hls.getS();
}
private boolean isCondition(HLS hls) {
return hls.getS() >= 0 && lsRatio(hls) > 0.8 && lsRatio(hls) < 5 && (hls.getH() <= 120 || hls.getH() >= 80);
}
对于这个条件,我得到:
正如你所看到的,仍然有一些红色。
谢谢你的帮助。
发布于 2015-11-27 06:08:07
我认为转换到HLS是很好的。我尝试使用HSL Color转换,并得到相同的结果。
(hls.getH() <= 120 || hls.getH() >= 80)
这将包括所有颜色。(包括红色-即0小于120)。你的其他条件正在过滤掉大多数阅读的色调/阴影。
我尝试了一些更简单的方法:
private boolean isCondition(HLS hls)
{
if (hls.getH() < 60 || hls.getH() > 140)
return false;
return true;
}
我最初尝试了80 - 120的范围,但它错过了很多颜色。可能60 -140包含太多非绿色,在这种情况下,您可以尝试应用其他条件来排除更多颜色。
https://stackoverflow.com/questions/33946995
复制相似问题