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

Tha*_*lia 3 c++ opencv

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

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

cv::Mat mask = cv::Mat(image1.rows, image1.cols, CV_8UC1);
Run Code Online (Sandbox Code Playgroud)

使用黑色和白色区域创建蒙版.

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

我看着cv::filter2DcopyTo......又看了看addWeighted,但我不希望他们融合-每张图像的区域应该是完全独立的.roi无济于事 - 面具可能不包含矩形,而是一个或多个多边形.

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

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

谢谢.

Clo*_*oud 5

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

参考文献:


  1. 如何在OpenCV中将图像的蒙版部分中的所有内容"归零"
  2. OpenCV bitwise_and + mask