腐蚀
对Z中的集合A和B,B对A进行腐蚀的整个过程如下:
⑴ 用结构元素B,扫描图像A的每一个像素
⑵ 用结构元素与其覆盖的二值图像做“与”操作
⑶ 如果都为1,结果图像的该像素为1。否则为0
腐蚀处理的结果是使原来的二值图像减小一圈。
要看具体的腐蚀内容和讲解,请戳我。
自己看,不说了,代码如下:
// 腐蚀处理Cplusplus.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//read image
Mat image;
image= imread("F://Opencv_picture//45.jpg");
if(image.empty()) // ==if(!image.data)
{
cout<<"Cannot open or find image"<<endl;
return -1;
}
//Create two window
namedWindow("Original image");
namedWindow("Eroded image");
// show oriuginal image
imshow("Original image", image);
//Erode
erode(image, image, Mat(), Point(-1, -1), 2);
//erode(image, image, Mat()); // ==erode(iamge, image, Mat(), Point(-1, -1), 1);
//display image
imshow("Eroded image", image);
//wait untill user press any key
waitKey(0 );
return 0;
}
结果图:
图片分析:腐蚀后,变小了吧
************************************************************
函数简介:
C++: void gpu::erode(const GpuMat& src, GpuMat& dst, const Mat& kernel, Point anchor=Point(-1, -1),
int iterations=1 )
int iterations=1 )
使用erode函数时,可以省略一些参数
rode(image, image, Mat()); == erode(iamge, image, Mat(), Point(-1, -1), 1);