opencv图像腐蚀C++程序
时间: 2023-11-04 17:25:17 浏览: 150
以下是一个简单的OpenCV图像腐蚀C程序示例:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取输入图像
Mat src = imread("lena.jpg", IMREAD_GRAYSCALE);
// 定义腐蚀核
Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3));
// 进行腐蚀操作
Mat dst;
erode(src, dst, kernel);
// 显示结果
imshow("Input Image", src);
imshow("Eroded Image", dst);
waitKey(0);
return 0;
}
在此示例中,我们首先读取输入图像,然后定义一个大小为3x3的矩形腐蚀核。然后,我们使用OpenCV的erode函数对图像进行腐蚀操作,并将结果存储在dst变量中。最后,我们使用imshow函数显示输入图像和腐蚀后的图像,并使用waitKey函数等待用户按下任意键以关闭窗口。
相关问题
opencv腐蚀膨胀c++
Opencv中的腐蚀(Erosion)和膨胀(Dilation)是形态学图像处理中常用的基本操作。腐蚀可以将图像中的物体边界向内侵蚀,而膨胀则可以将图像中的物体边界向外扩张。这些操作可以用来去除噪声、分离物体、连接物体等。在C++中,可以使用OpenCV的函数`erode()`和`dilate()`来实现。
例如,下面是使用`erode()`函数进行腐蚀操作的示例代码:
```
Mat src_img = imread("input.jpg"); // 读入图像
Mat dst_img; // 定义输出图像
Mat element = getStructuringElement(MORPH_RECT, Size(3, 3)); // 定义结构元素
erode(src_img, dst_img, element); // 进行腐蚀操作
```
其中,`src_img`为输入图像,`dst_img`为输出图像,`element`为结构元素,`MORPH_RECT`表示使用矩形结构元素,`Size(3, 3)`表示结构元素大小为3x3。
同样地,使用`dilate()`函数进行膨胀操作也类似:
```
Mat src_img = imread("input.jpg"); // 读入图像
Mat dst_img; // 定义输出图像
Mat element = getStructuringElement(MORPH_RECT, Size(3, 3)); // 定义结构元素
dilate(src_img, dst_img, element); // 进行膨胀操作
```
阅读全文