天天看点

opencv(14)图像腐蚀

#include <opencv2/highgui/highgui.hpp> //highgui模块头文件
#include <opencv2/imgproc/imgproc.hpp> //图像处理头文件

using namespace cv; //包含cv命名空间
int main() //控制台应用程序的入口函数,我们的函数从这里开始
{
  //载入原图
  Mat srcImage = imread("./LYU.jpg");
  //显示原图
  namedWindow("【羲之湖】腐蚀操作", 0); //创建窗口
  cvResizeWindow("【羲之湖】腐蚀操作", 640, 480); //创建一个640*480大小的窗口
  imshow("【羲之湖】腐蚀操作", srcImage); //显示图像
  //进行腐蚀操作
  Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
  Mat dstImage;
  erode(srcImage, dstImage, element);
  //显示效果图
  namedWindow("【羲之湖】腐蚀操作效果图", 0); //创建窗口
  cvResizeWindow("【羲之湖】腐蚀操作效果图", 640, 480); //创建一个640*480大小的窗口
  imshow("【羲之湖】腐蚀操作效果图", dstImage);
  waitKey(0); //等待任意键按下

  return 0;

}      

程序首先载入一张图片,然后定义一个Mat类型的变量来获得getStructuringElement函数的范围值,而getStructuringElement函数返回值为指定形状和尺寸的结构元素(内核矩阵)。参数准备完毕后,调用erode函数进行图像腐蚀操作,因为我用的是一个幅高清图片,imshow之后电脑窗口显示不开,所以进行了窗口设置,最后waitKey函数等待按键按下,以便让窗口一直显示。

效果图如下:

继续阅读