【问题标题】:OpenCV - Filling empty spaces in object using c++OpenCV - 使用 C++ 填充对象中的空白
【发布时间】:2017-01-17 12:48:35
【问题描述】:

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

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

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

在 Matlab 中我是通过凸包完成的,但我不知道如何在 C++ 中完成。

谢谢。

【问题讨论】:

  • 尝试凸包:link

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


【解决方案1】:

尝试形态学运算。如果采用这种方式,请注意,您可能会改变内核大小(增加以减少迭代次数)或迭代(即使内核很小,更多的迭代也会消除空白空间),或两者兼而有之。

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

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    相关资源
    最近更新 更多