基于黑白掩模组合两个图像

时间:2013-06-05 21:53:11

标签: c++ opencv

我想创建一个掩码操作......

我有两个相同大小的输入图像(它们是否必须具有相同的深度/通道数?我想成为任何东西,可能是3个通道,CV_32FC3或灰色......)我创建了一个大小相同(行和列)的面具

cv::Mat mask = cv::Mat(image1.rows, image1.cols, CV_8UC1);

使用黑白区域创建遮罩。

我想创建一个新的cv :: Mat,它将包含mask1为1的image1和mask2为0的image2。

我查看了cv::filter2DcopyTo ...还看了addWeighted,但我不想混合它们 - 每个图像的区域应该是完全分开的。 roi无济于事 - 面具可能不包含矩形,而是一个或多个多边形。

我找不到能满足我想要的东西。

是否有基于蒙版组合我的图像的OpenCV功能?或者我是否必须创建自己的,循环遍历行和列?

谢谢。

1 个答案:

答案 0 :(得分:5)

只需使用bitwise_and()功能即可进行设置。以下参考资料包括一个完整的工作示例。

参考文献:


  1. How to "zero" everything within a masked part of an image in OpenCV
  2. OpenCV bitwise_and + mask