c -在OpenCV中使颜色完全透明



我有一个基本的png文件,其中有两种颜色,绿色和品红。我要做的是把所有的洋红色像素都变成透明的,这样我就可以把这张图片合并到另一张图片中。

一个例子是,如果我有一个品红背景上的2D字符的图像文件。我会去掉背景中所有的洋红色,这样它就透明了。从那里,我只需将角色的图像作为图层添加到另一张图像中,这样看起来角色就像被放置在一个环境中。

这就是我要用的代码,

首先,加载图片:
IplImage *myImage;
myImage = cvLoadImage("/path/of/your/image.jpg");

然后使用这样的蒙版来选择颜色,您应该参考文档。在下面,我想选择一个蓝色(不要忘记在OpenCV中图像是BGR格式的,因此125,0,0是蓝色(它对应于下界),255,127,127是有一定容差的蓝色,是上界。我选择了下界和上界,并有一个容限,以容纳图像的所有蓝色,但你可以选择任何你想要的…

cvInRangeS(image, 
           cvScalar(125.0, 0.0, 0.0), 
           cvScalar(255.0, 127.0, 127.0), 
           mask
           );

现在我们已经选择了掩码,让我们反转它(因为我们不想保留掩码,而是要删除它)

cvNot(mask, mask);

然后复制你的图像和蒙版,

IplImage *myImageWithTransparency; //You may need to initialize it before
cvCopy(myImage,myImageWithTransparency,mask);

希望能有所帮助,

请参考OpenCVDocumentation获取更多信息

在这里

朱利安,

相关内容

  • 没有找到相关文章

最新更新