形态学可以用来解决抑制图像噪声、特征提取、边缘检测、图像分割、形状识别、纹理分析、图像恢复与重建、图像压缩等图像预处理问题。基本运算主要有四个:膨胀、腐蚀、开启、闭合;通过这些基本运算还可以推导和组合各种数学形态学使用的算法;下面针对四种运算对图像进行了简单的处理,处理效果如图结果所示:
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include "stdio.h"
#define SCALE 0.35
int _tmain(int argc, _TCHAR* argv[])
{
IplImage *src = cvLoadImage("test0.jpg",0);//强制转化为灰度图像
IplImage *dst = NULL;
dst = cvCreateImage(cvSize(cvRound(src->width*SCALE),cvRound(src->height*SCALE)),src->depth,src->nChannels);
cvResize(src,dst,CV_INTER_LINEAR); //进行放缩
cvShowImage("testpic",dst);