我想使用opencv 3和java删除彩色图像中的橙色。
Mat src = new Mat();
src = Imgcodecs.imread("coloredimage.jpg",Imgcodecs.CV_LOAD_IMAGE_COLOR);
如何在我的src(原始)图像中选择和删除橙色组件?
如果我无法移除橙色,我该如何用透明色替换它?
感谢
答案 0 :(得分:0)
您可以使用以下方法:
使用inRange()函数过滤橙色。获取二进制图像,使橙色部分为0,其余部分为1.示例如下:
inRange(src, Scalar(0,50,100),Scalar(100,200,250),other_params);
(这是一个基本的初步橙色滤镜。您可以优化您的值)
您现在有2个Mat对象 - 您的源图像src
和掩码mask
。您现在可以使用以下算法:
result=mask-src;
result=mask-result;
这将确保mask
的非0部分在result
中保留其原始RGB值。您可以使用subtract()函数执行相同的操作。确保事先将mask
转换为3通道图像。