logo资料库

OpenCV—RGB图像灰度化,并提取轮廓.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
// RGB_Gray_Canny.cpp : Defines the entry point for the console application. #include "stdafx.h" #include #include #include #include using namespace std; //声明图像 IplImage 指针 IplImage* pSrcImg=NULL; IplImage* pGrayImg = NULL; IplImage* pCannyImg = NULL; int Thresh=50; //滑动条响应函数 void onTrackerSlid(int thresh) { cvCanny(pGrayImg, pCannyImg,(float)thresh,(float)thresh*3, 3); cvShowImage( "Canny Image", pCannyImg ); } int main( int argc, char** argv ) { if(argc!=2) argv[1]="lena.jpg"; //载入图像,强制转化为 Gray if((pSrcImg = cvLoadImage( argv[1],1)) != 0 ) { cout<<"Press ESC to Quit"<
pCannyImg = cvCreateImage(cvGetSize(pGrayImg),IPL_DEPTH_8U,1); //cvCanny(pGrayImg, pCannyImg, 150,50, 3); //创建窗口 cvNamedWindow( "Source Image", CV_WINDOW_AUTOSIZE); cvNamedWindow( "Gray Image",CV_WINDOW_AUTOSIZE); cvNamedWindow( "Canny Image",CV_WINDOW_AUTOSIZE); //添加滑动条来调节边缘检测的阈值 cvShowImage( "Gray Image", pCannyImg); cvCreateTrackbar("Threshold", "Canny Image", &Thresh, 100, onTrackerSlid); onTrackerSlid(Thresh); //显示图像 cvShowImage( "Source Image", pSrcImg ); cvShowImage( "Gray Image",pGrayImg); //保存图像 cvSaveImage( "Gray_Image.jpg",pGrayImg); cvSaveImage( "Canny_Image.jpg",pCannyImg); //等待按"ESC"键退出 while(1) if(cvWaitKey(100)==27) break; //销毁窗口 //cvWaitKey(0); cvDestroyWindow( "Source Image" ); cvDestroyWindow( "Canny Image" ); cvDestroyWindow( "Gray Image"); //释放图像 cvReleaseImage( &pGrayImg ); cvReleaseImage( &pCannyImg ); cvReleaseImage( &pSrcImg); return 0; }
return -1; }
分享到:
收藏