一、目标
学习如何使用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()函数