【发布时间】:2017-01-17 12:48:35
【问题描述】:
如何在 OpenCV 中填充对象的空白空间?
让我澄清一下我的问题。
我在下面有一张图片
现在我想像这样填补图像中的所有空白:
在 Matlab 中我是通过凸包完成的,但我不知道如何在 C++ 中完成。
谢谢。
【问题讨论】:
-
尝试凸包:link
标签: c++ opencv image-processing opencv-contour
如何在 OpenCV 中填充对象的空白空间?
让我澄清一下我的问题。
我在下面有一张图片
现在我想像这样填补图像中的所有空白:
在 Matlab 中我是通过凸包完成的,但我不知道如何在 C++ 中完成。
谢谢。
【问题讨论】:
标签: c++ opencv image-processing opencv-contour
尝试形态学运算。如果采用这种方式,请注意,您可能会改变内核大小(增加以减少迭代次数)或迭代(即使内核很小,更多的迭代也会消除空白空间),或两者兼而有之。
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();
【讨论】: