cvMorphologyEx() 多种图像形态学

本文介绍了形态学运算,包括腐蚀、膨胀、开运算、闭运算、形态梯度、帽运算等,并通过测试图展示了这些运算的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cvMorphologyEx() 

感性认识:可以实现几种使用的处理,如:反色、去掉边缘的模糊点(非常使用,以后再也不用一点一点地用画画板去擦)


函数原型:

CVAPI(void)  cvMorphologyEx( const CvArr* src, CvArr* dst,
                             CvArr* temp, IplConvKernel* element,
                             int operation, int iterations CV_DEFAULT(1) );


src原图像;dst目标图像;temp中间临时图像;element核;operation 五种形态学


/* Morphological operations */
enum
{
    CV_MOP_ERODE        =0,//腐蚀
    CV_MOP_DILATE       =1,//膨胀
    CV_MOP_OPEN         =2,//开运算
    CV_MOP_CLOSE        =3,//闭运算(平滑边缘)
    CV_MOP_GRADIENT     =4,//形态梯度(反色)
    CV_MOP_TOPHAT       =5,//“礼帽”
    CV_MOP_BLACKHAT     =6//“黑帽”
};


开运算的感性认识:


闭运算的感性认识:


形态梯度


测试用图:



#include <highgui.h>
#include<cv.h> 
using namespace std;

int main()
{
	IplImage *img_in = cvLoadImage("test.jpg",3);
	IplImage *img_temp =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);
	IplImage *img_out_1 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);
	IplImage *img_out_2 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);
	IplImage *img_out_3 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);
	IplImage *img_out_4 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);
	IplImage *img_out_5 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);
	
	cvNamedWindow("img_in",CV_WINDOW_AUTOSIZE);
	cvShowImage("img_in",img_in);

	cvMorphologyEx(img_in,img_out_1,img_temp,NULL,CV_MOP_OPEN);
	cvNamedWindow("CV_MOP_OPEN",CV_WINDOW_AUTOSIZE);
	cvShowImage("CV_MOP_OPEN",img_out_1);

	cvMorphologyEx(img_in,img_out_2,img_temp,NULL,CV_MOP_CLOSE);
	cvNamedWindow("CV_MOP_CLOSE",CV_WINDOW_AUTOSIZE);
	cvShowImage("CV_MOP_CLOSE",img_out_2);

	cvMorphologyEx(img_in,img_out_3,img_temp,NULL,CV_MOP_GRADIENT);
	cvNamedWindow("CV_MOP_GRADIENT",CV_WINDOW_AUTOSIZE);
	cvShowImage("CV_MOP_GRADIENT",img_out_3);

	cvMorphologyEx(img_in,img_out_4,img_temp,NULL,CV_MOP_TOPHAT);
	cvNamedWindow("CV_MOP_TOPHAT",CV_WINDOW_AUTOSIZE);
	cvShowImage("CV_MOP_TOPHAT",img_out_4);

	cvMorphologyEx(img_in,img_out_5,img_temp,NULL,CV_MOP_BLACKHAT);
	cvNamedWindow("CV_MOP_BLACKHAT",CV_WINDOW_AUTOSIZE);
	cvShowImage("CV_MOP_BLACKHAT",img_out_5);

	cvWaitKey(0);
	cvDestroyAllWindows();
	cvReleaseImage(&img_in);
	cvReleaseImage(&img_out_1);
	cvReleaseImage(&img_out_2);
	cvReleaseImage(&img_out_3);
	cvReleaseImage(&img_out_4);
	cvReleaseImage(&img_out_5);

	return 0; 
}


运行结果:

            


      


       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值