使用 C++ 和 OpenCV 实现二值图像闭合:完善未闭合图形

以下是使用 C++ 和 OpenCV 实现二值图像闭合的示例代码,用于完善未闭合的图形:

#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char** argv)
{
    // 加载输入图像
    Mat inputImage = imread('input.png', IMREAD_GRAYSCALE);

    // 将输入图像转换为二进制图像
    Mat binaryImage;
    threshold(inputImage, binaryImage, 128, 255, THRESH_BINARY);

    // 创建用于闭合操作的结构元素
    Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));

    // 对二进制图像执行闭合操作
    Mat closedImage;
    morphologyEx(binaryImage, closedImage, MORPH_CLOSE, kernel);

    // 显示结果
    imshow('Input Image', inputImage);
    imshow('Binary Image', binaryImage);
    imshow('Closed Image', closedImage);
    waitKey(0);

    return 0;
}

在上述代码中,我们首先加载输入图像并将其转换为二进制图像。然后,我们创建一个结构元素,用于执行闭合操作。在这种情况下,我们使用矩形结构元素,大小为 5x5。最后,我们使用 morphologyEx 函数执行闭合操作,并显示结果。

C++ OpenCV 实现二值图像闭合:完善未闭合图形

原文地址: https://www.cveoy.top/t/topic/jXeb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录