OpenCV - 使用c ++填充对象中的空白区域

时间:2017-01-17 12:48:35

标签: c++ opencv image-processing opencv-contour

如何在OpenCV中填充对象的空白区域?

让我澄清一下我的问题 我有一张图片

enter image description here

现在我想填写图像中的所有空白:

enter image description here

在Matlab中我用凸包做过,但我不知道怎么用C ++做。

感谢。

1 个答案:

答案 0 :(得分:3)

尝试形态学操作。如果你这样做,请注意,你可以改变内核大小(增加以减少迭代次数)或迭代(即使内核很小,迭代也会消除空白),或两者兼而有之。

cv::Mat img = cv::imread("cwyX5.jpeg");
cv::imshow("image", img);

cv::Size kernelSize(5, 5);
cv::Mat kernel = cv::getStructuringElement(cv::MORPH_ELLIPSE, kernelSize);

cv::Mat result;
int iterations = 3;
cv::morphologyEx(img, result, cv::MORPH_OPEN, kernel, cv::Point(-1,-1), iterations);

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

cv::waitKey();