2017-01-16 83 views
-1

我想掩盖彩色图像,但结果我得到的是一个全黑的图片,我的代码是:opencv的 - 掩盖了黑色图像的图像效果

Mat maskOriginal(Mat src, Mat original, Mat mask) { 

    original.copyTo(src, mask); 
    return src; 
} 

我的面具是一个通道(CV_8U)黑色/白色图像。 我的面具: enter image description here

+0

请上传掩码? – ZdaR

+0

@Zdar - 编辑。 –

+0

你可以显示你使用maskOriginal函数的地方吗? – Sunreef

回答

0

请注意,如何使用maskOriginal并注意面罩元素的类型。 对于给定的图像,下面的代码将在输入图像的中间保留一个圆圈,而其余部分用黑色填充。

cv::Mat img = cv::imread("image.png"); 
cv::Mat mask = cv::Mat::zeros(img.rows, img.cols, CV_8UC1); 

cv::circle(mask, cv::Point(img.cols/2, img.rows/2), 
      std::min(img.rows, img.cols)/2, cv::Scalar(255), -1); 

cv::Mat result; 
result = maskOriginal(result, img, mask); 

cv::namedWindow("result"); 
cv::imshow("result", result); 

cv::waitKey();