




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)字圖像處理作業(yè)學(xué)院:計算機與控制工程班級:Y150701學(xué)號:S1507074姓名:指導(dǎo)老師:泉一、頻域濾波降噪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;比較結(jié)論:由圖可知,理想低通濾波器有現(xiàn)象發(fā)生,平滑效果較為粗糙,布特濾波器幾乎沒有現(xiàn)象,圖像較理想濾波器而言平滑效果比較好,沒有現(xiàn)象
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;比較結(jié)論:經(jīng)過算子的處理,圖像模糊近乎成虛像的形式,邊緣信息大量丟失;sobel 算子處理后也只是輪廓,邊緣稍微加寬。三、同態(tài)濾波器#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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024廣東廣州市花都宏信實業(yè)有限公司招聘考察人員筆試參考題庫附帶答案詳解
- 2024年濱州國有資本投資運營集團(tuán)有限公司公開招聘工作人員(含補錄)筆試筆試參考題庫附帶答案詳解
- 2024年四川瀘天化弘旭工程建設(shè)有限公司社會公開招聘筆試參考題庫附帶答案詳解
- 2024年12月吉林省省屬高校工作人員7號(8人)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年砼空心砌塊(承重型)項目建議書
- Module 3 Heroes Unit 3 Language practice 教學(xué)設(shè)計2024-2025學(xué)年外研版英語九年級上冊
- 2024年12月云南省玉溪市房地產(chǎn)交易管理所公開招聘編外人員(1人)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2024山東濟寧市梁山忠義投資控股集團(tuán)有限公司招聘擬聘用人員筆試參考題庫附帶答案詳解
- 2025年硅酮結(jié)構(gòu)密封膠合作協(xié)議書
- 《第一單元 Flash動畫初步 第1課 Flash和Flash動畫 二、Flash的工作環(huán)境》教學(xué)設(shè)計教學(xué)反思-2023-2024學(xué)年初中信息技術(shù)人教版八年級上冊
- 中學(xué)美術(shù)《剪紙藝術(shù)》完整課件
- 諾如病毒教學(xué)課件
- 適用的法律法規(guī)和其他要求的符合性評價
- 滬科版八年級物理上冊 專題01 運動的世界【考題猜想】(92題18大類型)
- 消防設(shè)施救援培訓(xùn)考試題及答案
- 腎包膜下血腫護(hù)理
- 租船問題(教學(xué)設(shè)計)-2023-2024學(xué)年四年級下冊數(shù)學(xué)人教版
- 2024年A特種設(shè)備相關(guān)管理考試題庫及答案
- 數(shù)字化智能化園區(qū)建設(shè)水平評價標(biāo)準(zhǔn)(征求意見稿)
- 外研版(三起點)小學(xué)英語三年級下冊全冊同步練習(xí)(含答案)
- 幼兒園 《十個人快樂大搬家》繪本
評論
0/150
提交評論