测试图片:
code:
#include <opencv\cv.h> #include <opencv\highgui.h> #include <opencv\cxcore.h> #include <stdio.h> #define SCALESIZE 20 int main(int argc, char* argv[]) { IplImage* src; src = cvLoadImage("C:\\Users\\zxl\\Desktop\\test1.jpg",0); int winSize[SCALESIZE],i; IplImage* scaleImage[SCALESIZE]; IplImage* edgeImage[SCALESIZE]; char filename[256]; winSize[0] = 3; scaleImage[0]=cvCreateImage(cvGetSize(src),8,1); edgeImage[0]=cvCreateImage(cvGetSize(src),8,1); for( i=1;i<SCALESIZE;i++) { winSize[i] = winSize[i-1]+2; scaleImage[i]=cvCreateImage(cvGetSize(src),8,1); edgeImage[i]=cvCreateImage(cvGetSize(src),8,1); } for(i=0;i<SCALESIZE;i++) { cvSmooth(src,scaleImage[i],CV_GAUSSIAN,winSize[i],winSize[i]); cvCanny(scaleImage[i], edgeImage[i], 30, 90, 3); } //保存图像 for(i=0;i<SCALESIZE;i++) { sprintf(filename,"scale_%d.jpg",i); cvSaveImage(filename,scaleImage[i]); sprintf(filename,"edge_%d.jpg",i); cvSaveImage(filename,edgeImage[i]); } for(i=0;i<SCALESIZE;i++) { cvReleaseImage(&scaleImage[i]); cvReleaseImage(&edgeImage[i]); } cvReleaseImage(&src); return 0; }