边缘检测——cvCanny算子

来源:互联网 发布:鲁西南大数据 编辑:程序博客网 时间:2024/06/08 10:14
//创建时间2015年5月27日
//使用到的函数原型:
//      1、 IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );
//      2、 void cvCanny( const CvArr* image,CvArr* edges,double threshold1,double threshold2, int aperture_size=3 );
//收获:cvReleaseImage( &m_PEdgePic );使用的时候参数是一个地址值。
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"


using namespace std;


#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"") 


int main()
{
const char * m_PicName="华山论剑.jpg";
const char * m_SavePicName="华山论剑_边缘.jpg";


IplImage *m_PPic=cvLoadImage( m_PicName , CV_LOAD_IMAGE_GRAYSCALE );//按灰度图像载入
if ( m_PPic == 0 )
{
cout<<"图片载入失败!"<<endl;
return -1;
}
IplImage *m_PEdgePic = NULL;
m_PEdgePic = cvCreateImage( cvGetSize(m_PPic) , m_PPic->depth , m_PPic->nChannels );


cvCanny( m_PPic , m_PEdgePic , 50 , 150 , 3 );
cvSaveImage ( m_SavePicName , m_PEdgePic );  


cvNamedWindow( m_PicName );
cvShowImage( m_PicName , m_PEdgePic );
cvWaitKey( 0 );
cvDestroyWindow( m_PicName );
cvReleaseImage( &m_PEdgePic );


return 0;
}
0 0
原创粉丝点击