对图像进行形态学处理,opencv c++代码实现
时间: 2023-11-07 15:57:32 浏览: 122
以下是对图像进行形态学处理的OpenCV C++代码示例:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取图像
Mat image = imread("lena.jpg", IMREAD_GRAYSCALE);
// 定义核
Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));
// 膨胀操作
Mat dilated;
dilate(image, dilated, kernel);
// 腐蚀操作
Mat eroded;
erode(image, eroded, kernel);
// 开运算
Mat opened;
morphologyEx(image, opened, MORPH_OPEN, kernel);
// 闭运算
Mat closed;
morphologyEx(image, closed, MORPH_CLOSE, kernel);
// 显示原图和处理结果
imshow("Original", image);
imshow("Dilated", dilated);
imshow("Eroded", eroded);
imshow("Opened", opened);
imshow("Closed", closed);
waitKey(0);
return 0;
}
```
在这个示例中,我们首先读取了一张灰度图像,并定义了一个核。然后分别进行了膨胀、腐蚀、开运算和闭运算操作,并将结果显示出来。
其中 `getStructuringElement` 函数用于获取指定形状和大小的核,这里我们使用了矩形形状的 5x5 大小的核。`dilate` 函数用于膨胀操作,`erode` 函数用于腐蚀操作,`morphologyEx` 函数用于开运算和闭运算操作。
在实际使用时,可以根据需要调整核的大小和形状,以及选择不同的形态学操作来实现不同的效果。
阅读全文
相关推荐


















