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

OpenCV - Filling empty spaces in object using c++

如何在 OpenCV 中填充空的 space 对象?

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

现在我想像这样填充图像中的所有空白:

在Matlab中我用凸包做的,但我不知道在C++中如何做。

谢谢。

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

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();