Seb*_*Seb 5 c opencv image-manipulation
我有一个基本的png文件,里面有两种颜色,绿色和洋红色.我要做的是拍摄所有洋红色像素并使它们透明,以便我可以将图像合并到另一个图像中.
例如,如果我在洋红色背景上有2D角色的图像文件.我会删除背景中的所有洋红色,使其透明.从那里我只需要拍摄角色的图像并将其作为一个图层添加到另一个图像中,这样就可以将角色放置在一个环境中.
提前致谢.
那是我要用的代码,
首先,加载你的图像:
IplImage *myImage;
myImage = cvLoadImage("/path/of/your/image.jpg");
Run Code Online (Sandbox Code Playgroud)
然后使用这样的掩码来选择颜色,你应该参考文档.在下面,我想选择一个蓝色(不要忘记在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
);
Run Code Online (Sandbox Code Playgroud)
现在我们选择了掩码,让我们反过来(因为我们不想保留掩码,但要删除它)
cvNot(mask, mask);
Run Code Online (Sandbox Code Playgroud)
然后用面具复制你的图像,
IplImage *myImageWithTransparency; //You may need to initialize it before
cvCopy(myImage,myImageWithTransparency,mask);
Run Code Online (Sandbox Code Playgroud)
希望它可以帮助,
有关详细信息,请参阅OpenCVDocumentation
朱利安,
| 归档时间: |
|
| 查看次数: |
7738 次 |
| 最近记录: |