我得到這個圖像,我想用白色填充左上方的黑色區域,但我得到的只是一個完全白色的圖像......任何想法我的代碼有什麼問題?OpenCV C++:Floodfill
代碼:
...
cv::Rect rect;
roi = cv::floodFill(roi, cv::Point(1,1), cv::Scalar(0), &rect, cv::Scalar(0), cv::Scalar(0), 4);
...
輸入圖像:
我得到這個圖像,我想用白色填充左上方的黑色區域,但我得到的只是一個完全白色的圖像......任何想法我的代碼有什麼問題?OpenCV C++:Floodfill
代碼:
...
cv::Rect rect;
roi = cv::floodFill(roi, cv::Point(1,1), cv::Scalar(0), &rect, cv::Scalar(0), cv::Scalar(0), 4);
...
輸入圖像:
這是像我用下面的代碼獲得:
int main()
{
cv::Mat image = cv::imread("TF2XE.jpg", -1);
cv::imshow("image before filling", image);
int filling = cv::floodFill(image, cv::Point(0,0), 255, (cv::Rect*)0, cv::Scalar(), 200);
cv::imshow("image after filling", image);
cv::waitKey();
return 0;
}
Output image http://i46.tinypic.com/35mksiq.jpg
請注意,我用200 upDiff參數,因爲如果你把它設置爲0會有一些灰色像素那將不會被考慮在連接的組件內部,如果這確實是你想要的,就改變它。
不知道,但根據documentation我能挖,它說cv::floodFill()
返回int
。因此,假設roi
是矩陣,並且openCV矩陣類定義operator=
的int
參數,則可以將一些int
分配給矩陣的每個元素。