2016年10月1日土曜日

OpenCV inpaintのためにマスク画像作る場合に初期化するときは cv::Mat::ones だと失敗しちゃう という俺の失敗

題名のとおりマスク画像作ってinpaintで遊ぼうと思ってマスク画像を作った

cv::Mat Mask = cv::Mat::ones(cvimg.size().height,cvimg.size().width,CV_8U);

これじゃ1で初期化されるのでだめ、zerosを使おう0000000000000000000000
cv::Mat Mask = cv::Mat::zeros(cvimg.size().height,cvimg.size().width,CV_8U);

これでオッケー

でも、元画像は1じゃないといいけないよ
cv::inapint(1 , 0 , 0, flag);

また半日以上つぶれた