2017-01-16 10 views
-1

黒画像の画像結果をマスクするが、私が得る結果は完全に黒画像で、私のコードは次のとおりです。OpenCVのは - 私は色の画像をマスクする

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

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

私のマスクが1つのチャンネルである(CV_8U)白黒画像。 私のマスク: enter image description here

+0

マスクもアップロードしてください。 – ZdaR

+0

@ Zdar - edited。 –

+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(); 
関連する問題