日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Matlab频域高/低通滤波

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab频域高/低通滤波 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

建議參考書籍:數字圖像處理_第三版 岡薩雷斯

寫在前面:
對于給定的低通濾波器的函數表達式,可以得到高通濾波器的函數表達式:

理想高/低通濾波器

理想高通

一個二維理想高通濾波器(IHPF)定義為:
其中,D0為截至頻率。D的表達式為:(后同)
是頻域率中點(u, v)與頻率矩形中心的距離,其中P,Q為頻率矩形的長寬。

具體實現代碼:

clc;
clear;
close all;img=imread('test.jpg');
subplot(221),imshow(img),title('原圖');
F=fft2(img);
[M,N]=size(F);
u=0:(M-1);v=0:(N-1);
idx = find(u > M/2);u(idx) = u(idx) - M;
idy = find(v > N/2);v(idy) = v(idy) - N;
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=M;% 可以自己調節截止頻率
H=ones(M,N);
for i=1:Mfor j=1:Nif D(i,j)^2<=D0H(i,j)=0;endend
endshiftH=fftshift(H);
subplot(222),surf(shiftH(1:10:600,1:10:600)),title('理想高通濾波器透視圖');
subplot(223),imshow(fftshift(H),[]),title('理想高通濾波器圖像表示');
g=real(ifft2(F.*H));
subplot(224),imshow(g,[]),title('高通濾波');

代碼效果:

理想低通

在以原點為圓心、以D0為半徑的圓內,無衰減地通過所有頻率,而在圓外‘切斷‘所有頻率的二維濾波器,稱為理想低通濾波器(ILPF);它由以下函數確定:

具體代碼實現:

clc;
clear;
close all;img=imread('test.jpg');
subplot(221),imshow(img),title('原圖');
F=fft2(img);
[M,N]=size(F);
u=0:(M-1);v=0:(N-1);
idx = find(u > M/2);u(idx) = u(idx) - M;
idy = find(v > N/2);v(idy) = v(idy) - N;
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=M;% 可以自己調節截止頻率
H=zeros(M,N);
for i=1:Mfor j=1:Nif D(i,j)^2<=D0H(i,j)=1;endend
endshiftH=fftshift(H);
subplot(222),surf(shiftH(1:10:600,1:10:600)),title('理想低通濾波器透視圖');
subplot(223),imshow(fftshift(H),[]),title('理想低通濾波器圖像表示');
g=real(ifft2(F.*H));
subplot(224),imshow(g,[]),title('低通濾波');

代碼效果:

高斯高/低通濾波

高斯高通

高斯高通濾波器函數表達式:


實現代碼:

clc;
clear;
close all;img=imread('test.jpg');
F=fft2(img);
[M,N]=size(F);
subplot(221),imshow(img),title('原圖');
u=0:(M-1);v=0:(N-1);
idx = find(u > M/2);u(idx) = u(idx) - M;
idy = find(v > N/2);v(idy) = v(idy) - N;
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=0.1*M;
H=1-exp(-(D.^2)/(2*(D0)^2));
shiftH=fftshift(H);
subplot(222),mesh(shiftH(1:10:600,1:10:600)),title('高斯高通濾波透視圖');
subplot(223),imshow(fftshift(H),[]),title('高斯高通濾波器圖像表示');
g=real(ifft2(F.*H));
subplot(224),imshow(g,[]),title('高斯高通濾波');

代碼效果:

高斯低通

高斯低通濾波器函數表達式:


具體代碼實現:

clc;
clear;
close all;img=imread('test.jpg');
F=fft2(img);
[M,N]=size(F);
subplot(221),imshow(img),title('原圖');
u=0:(M-1);v=0:(N-1);
idx = find(u > M/2);u(idx) = u(idx) - M;
idy = find(v > N/2);v(idy) = v(idy) - N;
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=0.1*M;
H=exp(-(D.^2)/(2*(D0)^2));
shiftH=fftshift(H);
subplot(222),mesh(shiftH(1:10:600,1:10:600)),title('高斯低通濾波透視圖');
subplot(223),imshow(fftshift(H),[]),title('高斯低通濾波器圖像表示');
g=real(ifft2(F.*H));
subplot(224),imshow(g,[]),title('高斯低通濾波');

代碼效果:

巴特沃斯高/低通濾波器

巴特沃斯高通

n階巴斯沃特高通濾波器函數表達式為:


實現代碼:

clc;
clear;
close all;img=imread('test.jpg');
F=fft2(img);
[M,N]=size(F);
n=2;
subplot(221),imshow(img),title('原圖');
u=0:(M-1);v=0:(N-1);
idx = find(u > M/2);u(idx) = u(idx) - M;
idy = find(v > N/2);v(idy) = v(idy) - N;
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=0.05*M;
H=1./(1+(D0./D).^(2*n));
shiftH=fftshift(H);
subplot(222),mesh(shiftH(1:10:600,1:10:600)),title('巴特沃斯2階高通濾波透視圖');
subplot(223),imshow(fftshift(H),[]),title('巴特沃斯2階高通濾波器圖像表示');
g=real(ifft2(F.*H));
subplot(224),imshow(g,[]),title('巴特沃斯2階高通濾波');

代碼效果:

巴特沃斯低通

截止頻率位于距原點D0處的n階巴特沃斯低通濾波器(BLPF)的傳遞函數為:

具體實現代碼:

clc;
clear;
close all;img=imread('test.jpg');
F=fft2(img);
[M,N]=size(F);
subplot(221),imshow(img),title('原圖');
u=0:(M-1);v=0:(N-1);
idx = find(u > M/2);u(idx) = u(idx) - M;
idy = find(v > N/2);v(idy) = v(idy) - N;
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=0.1*M;
H=1-exp(-(D.^2)/(2*(D0)^2));
shiftH=fftshift(H);
subplot(222),mesh(shiftH(1:10:600,1:10:600)),title('高斯高通濾波透視圖');
subplot(223),imshow(fftshift(H),[]),title('高斯高通濾波器圖像表示');
g=real(ifft2(F.*H));
subplot(224),imshow(g,[]),title('高斯高通濾波');

代碼效果展示:

總結

以上是生活随笔為你收集整理的Matlab频域高/低通滤波的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。