OPENCV入门教程十:erode图像腐蚀

时间:2021-11-08 22:03:25

一、目标

学习如何使用opencv中的函数,学习对图像的腐蚀操作,学习erode()函数的使用

二、函数说明

函数原型:

erode( InputArray src, OutputArray dst, InputArray kernel, Point anchor, int iterations,int borderType, constScalar& borderValue )

参数详解:

src:源图像
dst:目标图像。
kernel:膨胀操作的核。若为NULL时,表示的是使用参考点位于中心3x3的核。
我们一般使用函数 getStructuringElement配合这个参数的使用。getStructuringElement函数会返回指定形状和尺寸的结构元素(内核矩阵)。

anchor:锚的位置,其有默认值(-1,-1),表示锚位于中心。
iterations:迭代使用erode()函数的次数,默认值为1。
borderType:用于推断图像外部像素的某种边界模式。
borderValue:当边界为常数时的边界值

使用erode函数,一般我们只需要填前面的三个参数,后面的四个参数都有默认值。而且往往结合getStructuringElement一起使用。

三、程序代码

#include "cv.h" // OpenCV 文件头
#include "highgui.h"
#include "cvaux.h"
#include "cxcore.h"
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc.hpp"
#include <iostream>
#include <string>

using namespace cv;
using namespace std;

int main(int argc, char *argv[])
{
Mat m_SrcImg;

m_SrcImg = imread("C:\\Users\\lidabao\\Desktop\\Lena.bmp");

namedWindow("原图像", 1);
imshow("原图像", m_SrcImg);

//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(10, 10));
Mat m_ResImg;
//进行腐蚀操作
erode(m_SrcImg, m_ResImg, element);

namedWindow("腐蚀后图像", 1);
imshow("腐蚀后图像", m_ResImg);

waitKey(0);
}

四、结果

程序运行如下图:
OPENCV入门教程十:erode图像腐蚀

五、注意

正确的配置opencv
正确使用erode()函数