opencv用c++如何使用形态学操作进行边缘膨胀和腐蚀使得边缘更加连续请展示程序
以下是使用opencv和c++进行形态学操作的示例代码:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat src = imread("input.jpg", IMREAD_GRAYSCALE);
// 定义膨胀和腐蚀的结构元素
Mat element = getStructuringElement(MORPH_RECT, Size(3, 3));
Mat dilateElement = getStructuringElement(MORPH_RECT, Size(5, 5));
// 腐蚀操作
Mat erodeImg;
erode(src, erodeImg, element);
// 膨胀操作
Mat dilateImg;
dilate(erodeImg, dilateImg, dilateElement);
// 显示结果
imshow("src", src);
imshow("erode", erodeImg);
imshow("dilate", dilateImg);
waitKey(0);
return 0;
}
在这个示例中,我们首先读取了一张灰度图像。然后,我们使用getStructuringElement()函数定义了两个结构元素,一个用于腐蚀操作,一个用于膨胀操作。接下来,我们分别使用erode()和dilate()函数进行腐蚀和膨胀操作。最后,我们使用imshow()函数显示原始图像、腐蚀后的图像和膨胀后的图像,并使用waitKey()函数等待用户按下键盘上的任意键。
原文地址: https://www.cveoy.top/t/topic/b7jS 著作权归作者所有。请勿转载和采集!