版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字图像处理作业学院:计算机与控制工程班级:Y150701学号:S1507074姓名:指导老师:泉一、频域滤波降噪1.二维#includec低通滤波器.h#includecv.h#includehighgui.hdouble D0=30;void ILPF(CvMat* src, constdouble D0)i, j;se = -1; double tempD;long width, height; width = src-width;height = src-height;long x, y;x = width / 2; y = height / 2;CvMat* H_mat;H_mat
2、= cvCreateMat(src-height,src-width, CV_64FC2); for(i = 0; i height; i+)for(j = 0; j y & j x)se = 3;elseif(i y)se = 1;elseif(j x)se = 2;elsese = 0;switch(se)case 0:tempD = (double) case 1:tempD = (double) sqrt(tempD);break;case 2:tempD = (double) sqrt(tempD);break;case 3:tempD = (double) j);tempD = s
3、qrt(tempD);break;default:break;(i * i + j * j);tempD = sqrt(tempD);break;(height - i) * (height - i) + j * j);tempD =(i * i + (width - j) * (width - j);tempD =(height - i) * (height - i) + (width - j) * (width -tempD = exp(-0.5 *(tempD / D0, 2);(double*)(H_mat-data.ptr + H_mat-step * i)j * 2 = tempD
4、;(double*)(H_mat-data.ptr + H_mat-step * i)j * 2 + 1 = 0.0;cvMulSpectrums(src, H_mat, src, CV_DXT_ROWS); cvReleaseMat(&H_mat);main(argc, char * argv)constchar* filename = argc =2 ? argv1 : D:/qi.jpg;IplImage * im;IplImage * realInput; IplImage * imaginaryInput; IplImage * complexInput;dft_M, dft_N;C
5、vMat* dft_A, tmp, *dft_B; IplImage * image_Re; IplImage * image_Im;double m, M;im = cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE ); if( !im )return -1;realInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1);imaginaryInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1); complexInput = cvCrea
6、teImage( cvGetSize(im), IPL_DEPTH_64F, 2);cvScale(im, realInput, 1.0, 0.0); cvZero(imaginaryInput);cvMerge(realInput, imaginaryInput, NULL, NULL, complexInput);dft_M = cvGetOptimalDFTSize( im-height - 1 ); dft_N = cvGetOptimalDFTSize( im-width - 1 ); dft_B = cvCreateMat( dft_M, dft_N, CV_64FC2 ); df
7、t_A = cvCreateMat( dft_M, dft_N, CV_64FC2 ); cvZero(dft_A);cvZero(dft_B);image_Re = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);image_Im = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);cvGetSubRect( dft_A,&tmp, cvRect(0,0, im-width, im-height); cvCopy( complexInput, &tmp, NULL );
8、cvDFT( dft_A, dft_A, CV_DXT_FORWARD, complexInput-height ); ILPF(dft_A, D0);cvDFT( dft_A, dft_A, CV_DXT_INVERSE , complexInput-height ); cvNamedWindow(win);cvNamedWindow(magnitude);cvShowImage(win, im);cvSplit( dft_A, image_Re, image_Im, 0, 0 );cvMaxLoc(image_Re, &m, &M, NULL, NULL, NULL);cvScale(im
9、age_Re, image_Re, 1.0/(M-m), 1.0*(-m)/(M-m); cvShowImage(magnitude, image_Re); cvNamedWindow(image_im); cvShowImage(image_im,image_Im);cvWaitKey(-1);return 0;2.布特#includec低通滤波器.h#includecv.h#includehighgui.hdouble D0=30;void ILPF(CvMat* src, constdouble D0)i, j;se = -1; double tempD;long width, heig
10、ht;width = src-width; height = src-height;long x, y;x = width / 2; y = height / 2;CvMat* H_mat;H_mat = cvCreateMat(src-height,src-width, CV_64FC2); for(i = 0; i height; i+)for(j = 0; j y & j x)se = 3;elseif(i y)se = 1;elseif(j x)se = 2;elsese = 0;switch(se)case 0:tempD = (double) case 1:tempD = (dou
11、ble) sqrt(tempD);break;case 2:tempD = (double) sqrt(tempD);break;case 3:tempD = (double) j);tempD = sqrt(tempD);break;default:break;(i * i + j * j);tempD = sqrt(tempD);break;(height - i) * (height - i) + j * j);tempD =(i * i + (width - j) * (width - j);tempD =(height - i) * (height - i) + (width - j
12、) * (width -tempD = 1 / (1 +(tempD / D0, 2 * 2);(double*)(H_mat-data.ptr + H_mat-step * i)j * 2 = tempD;(double*)(H_mat-data.ptr + H_mat-step * i)j * 2 + 1 = 0.0;cvMulSpectrums(src, H_mat, src, CV_DXT_ROWS);cvReleaseMat(&H_mat);main(argc, char * argv)constchar* filename = argc =2 ? IplImage * im;Ipl
13、Image * realInput; IplImage * imaginaryInput; IplImage * complexInput;dft_M, dft_N;argv1 : D:/qi.jpg;CvMat* dft_A, tmp, *dft_B; IplImage * image_Re; IplImage * image_Im;double m, M;im = cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE ); if( !im )return -1;realInput = cvCreateImage( cvGetSize(im), IPL
14、_DEPTH_64F, 1); imaginaryInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1);complexInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 2);cvScale(im, realInput, 1.0, 0.0); cvZero(imaginaryInput);cvMerge(realInput, imaginaryInput, NULL, NULL, complexInput);dft_M = cvGetOptimalDFTSize( im-height
15、 - 1 ); dft_N = cvGetOptimalDFTSize( im-width - 1 ); dft_B = cvCreateMat( dft_M, dft_N, CV_64FC2 ); dft_A = cvCreateMat( dft_M, dft_N, CV_64FC2 ); cvZero(dft_A);cvZero(dft_B);image_Re = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);image_Im = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_6
16、4F, 1);cvGetSubRect( dft_A,&tmp, cvRect(0,0, im-width, im-height);cvCopy( complexInput, &tmp, NULL );cvDFT( dft_A, dft_A, CV_DXT_FORWARD, complexInput-height );ILPF(dft_A, D0);cvDFT( dft_A, dft_A, CV_DXT_INVERSE , complexInput-height );cvNamedWindow(win);cvNamedWindow(magnitude); cvShowImage(win, im
17、);cvSplit( dft_A, image_Re, image_Im, 0, 0 );cvMaxLoc(image_Re, &m, &M, NULL, NULL, NULL);cvScale(image_Re, image_Re, 1.0/(M-m), 1.0*(-m)/(M-m);cvShowImage(magnitude, image_Re);cvNamedWindow(image_im);cvShowImage(image_im,image_Im);cvWaitKey(-1);return 0;3.二维理想低通滤波器#includec#includecv.h.h#includehig
18、hgui.hdouble D0=30;void ILPF(CvMat* src, constdouble D0)i, j;se = -1; double tempD;long width, height; width = src-width;height = src-height;long x, y;x = width / 2; y = height / 2;CvMat* H_mat;H_mat = cvCreateMat(src-height,src-width, CV_64FC2); for(i = 0; i height; i+)for(j = 0; j y & j x)se = 3;e
19、lseif(i y)se = 1;elseif(j x)se = 2;elsese = 0;switch(se)case 0:tempD = (double) case 1:tempD = (double) sqrt(tempD);break;case 2:tempD = (double) sqrt(tempD);break;case 3:tempD = (double) j);tempD = sqrt(tempD);break;default:break;(i * i + j * j);tempD = sqrt(tempD);break;(height - i) * (height - i)
20、 + j * j);tempD =(i * i + (width - j) * (width - j);tempD =(height - i) * (height - i) + (width - j) * (width -if(tempD data.ptr + H_mat-step * i)j *2 = 1.0;else(double*)(H_mat-data.ptr + H_mat-step * i)j*2 = 0.0;cvMulSpectrums(src, H_mat, src, CV_DXT_ROWS); cvReleaseMat(&H_mat);main(argc, char * ar
21、gv)constchar* filename = argc =2 ? argv1 : D:/qi.jpg;IplImage * im;IplImage * realInput; IplImage * imaginaryInput; IplImage * complexInput;dft_M, dft_N;CvMat* dft_A, tmp, *dft_B; IplImage * image_Re; IplImage * image_Im; double m, M;im = cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE ); if( !im )re
22、turn -1;realInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1);imaginaryInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1); complexInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 2);cvScale(im, realInput, 1.0, 0.0); cvZero(imaginaryInput);cvMerge(realInput, imaginaryInput, NULL, NULL,
23、 complexInput);dft_M = cvGetOptimalDFTSize( im-height - 1 ); dft_N = cvGetOptimalDFTSize( im-width - 1 ); dft_B = cvCreateMat( dft_M, dft_N, CV_64FC2 ); dft_A = cvCreateMat( dft_M, dft_N, CV_64FC2 ); cvZero(dft_A);cvZero(dft_B);image_Re = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);image_
24、Im = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);cvGetSubRect( dft_A,&tmp, cvRect(0,0, im-width, im-height);cvCopy( complexInput, &tmp, NULL );cvDFT( dft_A, dft_A, CV_DXT_FORWARD, complexInput-height );ILPF(dft_A, D0);cvDFT( dft_A, dft_A, CV_DXT_INVERSE , complexInput-height );cvNamedWind
25、ow(win);cvNamedWindow(magnitude); cvShowImage(win, im);cvSplit( dft_A, image_Re, image_Im, 0, 0 );cvMaxLoc(image_Re, &m, &M, NULL, NULL, NULL);cvScale(image_Re, image_Re, 1.0/(M-m), 1.0*(-m)/(M-m);cvShowImage(magnitude, image_Re);cvNamedWindow(image_im);cvShowImage(image_im,image_Im);cvWaitKey(-1);r
26、eturn 0;频域边缘增强1.布特#includec高通滤波器.h#includecv.h#includehighgui.hdouble D0=80;void ILPF(CvMat* src, constdouble D0)i, j;se = -1; double tempD;long width, height; width = src-width;height = src-height;long x, y;x = width / 2; y = height / 2;CvMat* H_mat;H_mat = for(i =for(j =cvCreateMat(src-height,src-
27、width, CV_64FC2);0; i height; i+)0; j y & j x)se =3;elseif(i y)se =1;elseif(j x)se =2;elsese =0;switch(scase 0:e)tempD = case 1:tempD =(double)(i * i + j * j);tempD = sqrt(tempD);break;(double)(height - i) * (height - i) + j * j);tempD = sqrt(tempD);break;case 2:tempD = (double) (i * i + (width - j)
28、 * (width - j);tempD = sqrt(tempD);break; case 3:tempD = (double) (height - i) * (height - i) + (width - j) * (width - j);tempD = sqrt(tempD);break;default: break;tempD = 1 / (1 +(D0 / tempD, 2 * 2);(double*)(H_mat-data.ptr + H_mat-step * i)j * 2 = tempD;(double*)(H_mat-data.ptr + H_mat-step * i)j *
29、 2 + 1 = 0.0;cvMulSpectrums(src, H_mat, src, CV_DXT_ROWS);cvReleaseMat(&H_mat);main(argc, char * argv)constchar* filename = argc =2 ? argv1 : D:qi.jpg; IplImage * im;IplImage * realInput; IplImage * imaginaryInput; IplImage * complexInput;dft_M, dft_N;CvMat* dft_A, tmp, *dft_B; IplImage * image_Re;
30、IplImage * image_Im;double m, M;im = cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE ); if( !im )return -1;realInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1);imaginaryInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1); complexInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 2);cvSca
31、le(im, realInput, 1.0, 0.0);cvZero(imaginaryInput);cvMerge(realInput, imaginaryInput, NULL, NULL, complexInput);dft_M = cvGetOptimalDFTSize( im-height - 1 ); dft_N = cvGetOptimalDFTSize( im-width - 1 ); dft_B = cvCreateMat( dft_M, dft_N, CV_64FC2 ); dft_A = cvCreateMat( dft_M, dft_N, CV_64FC2 ); cvZ
32、ero(dft_A);cvZero(dft_B);image_Re = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);image_Im = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);cvGetSubRect( dft_A,&tmp, cvRect(0,0, im-width, im-height);cvCopy( complexInput, &tmp, NULL );cvDFT( dft_A, dft_A, CV_DXT_FORWARD, complexInput
33、-height ); ILPF(dft_A, D0);cvDFT( dft_A, dft_A, CV_DXT_INVERSE , complexInput-height ); cvNamedWindow(win, 0);cvNamedWindow(magnitude, 0);cvShowImage(win, im);cvSplit( dft_A, image_Re, image_Im, 0, 0 );cvMaxLoc(image_Re, &m, &M, NULL, NULL, NULL);cvScale(image_Re, image_Re, 1.0/(M-m), 1.0*(-m)/(M-m)
34、; cvShowImage(magnitude, image_Re);cvWaitKey(-1); return 0;2.二维#includec高通滤波器.h#includecv.h#includehighgui.hdouble D0=80;void ILPF(CvMat* src, constdouble D0)i, j;se = -1; double tempD;long width, height; width = src-width;height = src-height;long x, y;x = width / 2; y = height / 2;CvMat* H_mat;H_ma
35、t = for(i =for(j =cvCreateMat(src-height,src-width, CV_64FC2);0; i height; i+)0; j y & j x)se =3;elseif(i y)se =1;elseif(j x)se =2;elsese =0;switch(se)case 0:tempD = (double) case 1:tempD = (double) case 2:tempD = (double) case 3:tempD = (double) sqrt(tempD);break; default:break;(i * i + j * j);temp
36、D = sqrt(tempD);break;(height - i) * (height - i) + j * j);tempD = sqrt(tempD);break;(i * i + (width - j) * (width - j);tempD = sqrt(tempD);break;(height - i) * (height - i) + (width - j) * (width - j);tempD =tempD = 1 - exp(-0.5 *(tempD / D0, 2);(double*)(H_mat-data.ptr + H_mat-step * i)j * 2 = tem
37、pD;(double*)(H_mat-data.ptr + H_mat-step * i)j * 2 + 1 = 0.0;cvMulSpectrums(src, H_mat, src, CV_DXT_ROWS);cvReleaseMat(&H_mat);main(argc, char * argv)constchar* filename = argc =2 ? argv1 : D:/qi.jpg; IplImage * im;IplImage * realInput; IplImage * imaginaryInput; IplImage * complexInput;dft_M, dft_N
38、;CvMat* dft_A, tmp, *dft_B; IplImage * image_Re; IplImage * image_Im; double m, M;im = cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE ); if( !im )return -1;realInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1);imaginaryInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1);complexInput = cvCr
39、eateImage( cvGetSize(im), IPL_DEPTH_64F, 2);cvScale(im, realInput, 1.0, 0.0); cvZero(imaginaryInput);cvMerge(realInput, imaginaryInput, NULL, NULL, complexInput);dft_M = cvGetOptimalDFTSize( im-height - 1 ); dft_N = cvGetOptimalDFTSize( im-width - 1 ); dft_B = cvCreateMat( dft_M, dft_N, CV_64FC2 );
40、dft_A = cvCreateMat( dft_M, dft_N, CV_64FC2 ); cvZero(dft_A);cvZero(dft_B);image_Re = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);image_Im = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);cvGetSubRect( dft_A,&tmp, cvRect(0,0, im-width, im-height);cvCopy( complexInput, &tmp, NULL )
41、;cvDFT( dft_A, dft_A, CV_DXT_FORWARD, complexInput-height );ILPF(dft_A, D0);cvDFT( dft_A, dft_A, CV_DXT_INVERSE , complexInput-height );cvNamedWindow(win, 0);cvNamedWindow(magnitude, 0); cvShowImage(win, im);cvSplit( dft_A, image_Re, image_Im, 0, 0 );cvMaxLoc(image_Re, &m, &M, NULL, NULL, NULL);cvSc
42、ale(image_Re, image_Re, 1.0/(M-m), 1.0*(-m)/(M-m); cvShowImage(magnitude, image_Re);cvWaitKey(-1); return 0;3.理想#includec高通滤波器.h#includecv.h#includehighgui.hdouble D0=80;void ILPF(CvMat* src, constdouble D0)i, j;se = -1; double tempD;long width, height;width = src-width; height = src-height;long x,
43、y;x = width / 2; y = height / 2;CvMat* H_mat;H_mat = cvCreateMat(src-height,src-width, CV_64FC2); for(i = 0; i height; i+)for(j = 0; j y & j x)se = 3;elseif(i y)se = 1;elseif(j x)se = 2;elsese = 0;switch(scase 0:e)tempD = (double) case 1:tempD = (double) case 2:tempD = (double) case 3:tempD = (doubl
44、e) sqrt(tempD);break; default:break;(i * i + j * j);tempD = sqrt(tempD);break;(height - i) * (height - i) + j * j);tempD = sqrt(tempD);break;(i * i + (width - j) * (width - j);tempD = sqrt(tempD);break;(height - i) * (height - i) + (width - j) * (width - j);tempD =if(tempD data.ptr + H_mat-step * i)
45、j * 2 = 0.0; (double*)(H_mat-data.ptr + H_mat-step * i)j * 2 + 1 = 0.0;else(double*)(H_mat-data.ptr + H_mat-step * i)j * 2 = 1.0; (double*)(H_mat-data.ptr + H_mat-step * i)j * 2 + 1 = 0.0;cvMulSpectrums(src, H_mat, src, CV_DXT_ROWS); cvReleaseMat(&H_mat);main(argc, char * argv)constchar* filename =
46、argc =2 ? argv1 : D:qi.jpg; IplImage * im;IplImage * realInput; IplImage * imaginaryInput; IplImage * complexInput;dft_M, dft_N;CvMat* dft_A, tmp, *dft_B; IplImage * image_Re; IplImage * image_Im; double m, M;im = cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE ); if( !im )return -1;realInput = cvCre
47、ateImage( cvGetSize(im), IPL_DEPTH_64F, 1); imaginaryInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 1);complexInput = cvCreateImage( cvGetSize(im), IPL_DEPTH_64F, 2);cvScale(im, realInput, 1.0, 0.0); cvZero(imaginaryInput);cvMerge(realInput, imaginaryInput, NULL, NULL, complexInput); dft_M = c
48、vGetOptimalDFTSize( im-height - 1 );dft_N = cvGetOptimalDFTSize( im-width - 1 ); dft_B = cvCreateMat( dft_M, dft_N, CV_64FC2 ); dft_A = cvCreateMat( dft_M, dft_N, CV_64FC2 ); cvZero(dft_A);cvZero(dft_B);image_Re = cvCreateImage( cvSize(dft_N, dft_M), IPL_DEPTH_64F, 1);image_Im = cvCreateImage( cvSiz
49、e(dft_N, dft_M), IPL_DEPTH_64F, 1);cvGetSubRect( dft_A,&tmp, cvRect(0,0, im-width, im-height);cvCopy( complexInput, &tmp, NULL );cvDFT( dft_A, dft_A, CV_DXT_FORWARD, complexInput-height );ILPF(dft_A, D0);cvDFT( dft_A, dft_A, CV_DXT_INVERSE , complexInput-height );cvNamedWindow(win, 0);cvNamedWindow(
50、magnitude, 0);cvShowImage(win, im);cvSplit( dft_A, image_Re, image_Im, 0, 0 );cvMaxLoc(image_Re, &m, &M, NULL, NULL, NULL);cvScale(image_Re, image_Re, 1.0/(M-m), 1.0*(-m)/(M-m);cvShowImage(magnitude, image_Re);cvWaitKey(-1); return 0;比较结论:由图可知,理想低通滤波器有现象发生,平滑效果较为粗糙,布特滤波器几乎没有现象,图像较理想滤波器而言平滑效果比较好,没有现象
51、,其平滑效果是三者中最好的。二、图像锐化1.Sobel 算子 #include #include #include #include #includeusingnamespace cv; main()Mat grad_x,grad_y; Mat abs_grad_x,abs_grad_y,dst;Mat src=imread(D:/qi.jpg); imshow(【原始图】,src);Sobel(src,grad_x,CV_16S,1,0,3,1,1,BORDER_DEFAULT);convertScaleAbs(grad_x,abs_grad_x);imshow(【效果图】X方向Sobel,
52、abs_grad_x); Sobel(src,grad_y,CV_16S,1,0,3,1,1,BORDER_DEFAULT); convertScaleAbs(grad_y,abs_grad_y);imshow(【效果图】Y方向Sobel ,abs_grad_y); addWeighted(abs_grad_x,0.5,abs_grad_y,0.5,0,dst); imshow(【效果图】整体方向Sobel ,dst); waitKey(0);return 0;2.Laplan 算子 #include #include #include#includevoid sharpenImage0(co
53、nst cv:Mat &image, cv:Mat &result)result.create(image.size(),image.type();for(j= 1; jimage.rows-1; +j)const uchar *previous = image.ptr(j-1);const uchar *current = image.ptr(j); const uchar *next = image.ptr(j+1);uchar *output = result.ptr(j);for(i= 1; iimage.cols-1; +i)*output+ =cv:saturate_cast(5*
54、currenti-previousi-nexti-currenti-1-currenti+1);result.row(0).setTo(cv:Scalar(0); result.row(result.rows-1).setTo(cv:Scalar(0); result.col(0).setTo(cv:Scalar(0); result.col(result.cols-1).setTo(cv:Scalar(0);voidsharpenImage1(const cv:Mat &image, cv:Mat &result)cv:Mat kernel(3,3,CV_32F,cv:Scalar(0);
55、kernel.at(1,1) = 5.0;kernel.at(0,1) = -1.0;kernel.at(1,0) = -1.0;kernel.at(1,2) = -1.0;kernel.at(2,1) = -1.0;result.create(image.size(),image.type();cv:filter2D(image,result,image.depth(),kernel);main(argc, char* argv)cv:Mat image = cv:imread(D:/qi.jpg);cv:Mat image_gray; image_gray.create(image.siz
56、e(),image.type();if(!image.data) return -1;if(image.channels() = 3)cv:cvtColor(image,image_gray,CV_RGB2GRAY);cv:Mat result;result.create(image_gray.size(),image_gray.type();double time_ = sic_cast(cv:getTickCount();sharpenImage0(image_gray,result);time_ =1000*(sic_cast(cv:getTickCount()-time_)/cv:ge
57、tTickFrequency();std:couttime = time_msstd:endl; cv:namedWindow(Image 1); cv:imshow(Image 1,result);cv:Mat result1;result1.create(image_gray.size(),image_gray.type();time_ = sic_cast(cv:getTickCount();sharpenImage1(image_gray,result1);time_ = 1000*sic_cast(cv:getTickCount()-time_)/cv:getTickFrequenc
58、y();std:couttime = time_msstd:endl; cv:namedWindow(Image 2); cv:imshow(Image 2,result1); cv:waitKey();return 0;比较结论:经过算子的处理,图像模糊近乎成虚像的形式,边缘信息大量丢失;sobel 算子处理后也只是轮廓,边缘稍微加宽。三、同态滤波器#includecv.h#includemath.h#includec.h#includehighgui.h#includeusingnamespatd;void CDM(M,N,CvMat *mat)width = mat-rows;heigh
59、t = mat-cols;if (M != width & N != height)coutERROR! THE SIZE DOES NOT MATCH WITH MATendl;return;if (cvGeemType(mat) CV_32F)coutERROR! THE TYPE DOES NOT MATCH WITH MATendl;return;CvMat *U,*V;U = cvCreateMat(M,N,CV_32FC1); V = cvCreateMat(M,N,CV_32FC1);for (for (u = 0; u M; +u)v =0 ;v cvRound(M/2)?u-
60、M:u);tm2 = (float)(v cvRound(N/2)?v-N:v);*( (float *)CV_MAT_ELEM_PTR(*U,u,v) ) = tm1;*( (float *)CV_MAT_ELEM_PTR(*V,u,v) ) = tm2;for (for (u = 0; u M; +u)v =0 ; v N; +v)float t1,t2;t1 = CV_MAT_ELEM(*U,float,u,v); t2 = CV_MAT_ELEM(*V,float,u,v);*( (float *)CV_MAT_ELEM_PTR(*mat,u,v) ) = sqrt(t1*t1 + t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吉林省梅河口市高三物理下册期末考试模拟试卷及参考答案
- 2026年山东省龙口市高三生物上册期末考试模拟卷含答案
- 2026年湖北省枣阳市高三生物上册期末考试真题含答案
- 2026年云南省文山市高一化学上册期末考试模拟试卷附参考答案【模拟题】
- 2026年黑龙江省宁安市高三生物下册期末考试模拟考试卷(含答案)
- 2026年江苏省如皋市高三生物上册期末考试模拟检测卷含答案
- 2026年福建省永安市高三物理下册期末考试模拟检测卷及答案
- 2026年浙江省诸暨市高一化学上册期末考试模拟检测卷附完整答案【夺冠】
- 2026年江苏省邳州市高一化学上册期末考试考试卷(轻巧夺冠)附答案
- 2026年山东省寿光市高三生物上册期末考试检测卷(含答案)
- 2026年1月江苏省高中学业水平合格考数学试卷(含答案)
- 2026年高考数学命题特征分析及2027届高三复习备考策略讲座
- 学校中层竞聘情景面试试题库及答案
- CSCO 胆道恶性肿瘤诊疗指南 2026 版发布
- 2026年档案馆行业分析报告及未来五至十年竞争格局分析
- 2026年秋季道德与法治五年级上知识点
- 上海市政府采购评审专家试题库及答案
- 2026年《中国下肢深静脉血栓诊疗临床指南(2026版)》
- 2025版《经皮冠状动脉介入治疗指南》解读
- 有限空间作业安全2026年培训
- 湖州南浔圣船混凝土有限公司年产50万立方米生态混凝土项目环境影响报告
评论
0/150
提交评论