Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)
生活随笔
收集整理的這篇文章主要介紹了
Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
數(shù)字圖像處理第二次編程課后作業(yè)
理想低通(d=10,50,150):
close all; clear all;%% ---------Ideal Lowpass Filters (Fre. Domain)------------ f = imread('D:/testData/cameraman.tif'); f = mat2gray(f,[0 255]);[M,N] = size(f); P = 2*M; Q = 2*N; fc = zeros(M,N);for x = 1:1:Mfor y = 1:1:Nfc(x,y) = f(x,y) * (-1)^(x+y);end endF = fft2(fc,P,Q);H_0 = zeros(P,Q); H_1 = zeros(P,Q); H_2 = zeros(P,Q);for x = (-P/2):1:(P/2)-1for y = (-Q/2):1:(Q/2)-1D = (x^2 + y^2)^(0.5);if(D <= 10) H_0(x+(P/2)+1,y+(Q/2)+1) = 1; end if(D <= 50) H_1(x+(P/2)+1,y+(Q/2)+1) = 1; end if(D <= 150) H_2(x+(P/2)+1,y+(Q/2)+1) = 1; endend endG_0 = H_0 .* F; G_1 = H_1 .* F; G_2 = H_2 .* F;g_0 = real(ifft2(G_0)); g_0 = g_0(1:1:M,1:1:N);g_1 = real(ifft2(G_1)); g_1 = g_1(1:1:M,1:1:N);g_2 = real(ifft2(G_2)); g_2 = g_2(1:1:M,1:1:N); for x = 1:1:Mfor y = 1:1:Ng_0(x,y) = g_0(x,y) * (-1)^(x+y);g_1(x,y) = g_1(x,y) * (-1)^(x+y);g_2(x,y) = g_2(x,y) * (-1)^(x+y);end end%% -----show------- figure(); subplot(1,2,1); imshow(f,[0 1]); xlabel('1).原圖');subplot(1,2,2); imshow(log(1 + abs(F)),[ ]); xlabel('2).1圖的傅里葉光譜');figure(); subplot(1,2,1); imshow(H_0,[0 1]); xlabel('3).理想低通濾波(D=10)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_0(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_0)),[ ]); xlabel('4).3得到的濾波結(jié)果');subplot(1,2,2); imshow(g_0,[0 1]); xlabel('5).效果圖(D=10)');figure(); subplot(1,2,1); imshow(H_1,[0 1]); xlabel('6).理想低通濾波(D=50)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_1)),[ ]); xlabel('7).6得到的濾波結(jié)果');subplot(1,2,2); imshow(g_1,[0 1]); xlabel('8).效果圖(D=50)');figure(); subplot(1,2,1); imshow(H_2,[0 1]); xlabel('9).理想低通濾波(D=150)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_2)),[ ]); xlabel('10).9得到的濾波結(jié)果');subplot(1,2,2); imshow(g_2,[0 1]); xlabel('11).效果圖(D=150)');巴特沃斯低通(d=10,50,150):
close all; clear all;%% ---------Butterworth Lowpass Filters (Fre. Domain)------------ f = imread('D:/testData/cameraman.tif'); f = mat2gray(f,[0 255]);[M,N] = size(f); P = 2*M; Q = 2*N; fc = zeros(M,N);for x = 1:1:Mfor y = 1:1:Nfc(x,y) = f(x,y) * (-1)^(x+y);end endF = fft2(fc,P,Q);H_0 = zeros(P,Q); H_1 = zeros(P,Q); H_2 = zeros(P,Q);for x = (-P/2):1:(P/2)-1for y = (-Q/2):1:(Q/2)-1D = (x^2 + y^2)^(0.5);%n=1D_0 = 10;H_0(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D/D_0)^2);D_0 = 50;H_1(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D/D_0)^2); D_0 = 150;H_2(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D/D_0)^2);%H_2(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D/D_0)^6);end endG_0 = H_0 .* F; G_1 = H_1 .* F; G_2 = H_2 .* F;g_0 = real(ifft2(G_0)); g_0 = g_0(1:1:M,1:1:N);g_1 = real(ifft2(G_1)); g_1 = g_1(1:1:M,1:1:N);g_2 = real(ifft2(G_2)); g_2 = g_2(1:1:M,1:1:N); for x = 1:1:Mfor y = 1:1:Ng_0(x,y) = g_0(x,y) * (-1)^(x+y);g_1(x,y) = g_1(x,y) * (-1)^(x+y);g_2(x,y) = g_2(x,y) * (-1)^(x+y);end end%% -----show------- figure(); subplot(1,2,1); imshow(f,[0 1]); xlabel('1).原圖');subplot(1,2,2); imshow(log(1 + abs(F)),[ ]); xlabel('2).1圖的傅里葉光譜');figure(); subplot(1,2,1); imshow(H_0,[0 1]); xlabel('3).巴特沃斯低通濾波(D=10)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_0(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_0)),[ ]); xlabel('4).3得到的濾波結(jié)果');subplot(1,2,2); imshow(g_0,[0 1]); xlabel('5).效果圖(D=10)');figure(); subplot(1,2,1); imshow(H_1,[0 1]); xlabel('6).巴特沃斯低通濾波(D=50)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_1)),[ ]); xlabel('7).6得到的濾波結(jié)果');subplot(1,2,2); imshow(g_1,[0 1]); xlabel('8).效果圖(D=50)');figure(); subplot(1,2,1); imshow(H_2,[0 1]); xlabel('9).巴特沃斯低通濾波(D=150)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_2)),[ ]); xlabel('10).9得到的濾波結(jié)果');subplot(1,2,2); imshow(g_2,[0 1]); xlabel('11).效果圖(D=150)');高斯低通(d=10,50,150):
close all; clear all; clc; %% ---------Gaussian Lowpass Filters (Fre. Domain)------------ f = imread('D:/testData/cameraman.tif'); f = mat2gray(f,[0 255]);[M,N] = size(f); P = 2*M; Q = 2*N; fc = zeros(M,N);for x = 1:1:Mfor y = 1:1:Nfc(x,y) = f(x,y) * (-1)^(x+y);end endF = fft2(fc,P,Q);H_0 = zeros(P,Q); H_1 = zeros(P,Q); H_2 = zeros(P,Q);for x = (-P/2):1:(P/2)-1for y = (-Q/2):1:(Q/2)-1D = (x^2 + y^2)^(0.5);D_0 = 10;H_0(x+(P/2)+1,y+(Q/2)+1) = exp(-(D*D)/(2*D_0*D_0)); D_0 = 50;H_1(x+(P/2)+1,y+(Q/2)+1) = exp(-(D*D)/(2*D_0*D_0)); D_0 = 150;H_2(x+(P/2)+1,y+(Q/2)+1) = exp(-(D*D)/(2*D_0*D_0));end endG_0 = H_0 .* F; G_1 = H_1 .* F; G_2 = H_2 .* F;g_0 = real(ifft2(G_0)); g_0 = g_0(1:1:M,1:1:N);g_1 = real(ifft2(G_1)); g_1 = g_1(1:1:M,1:1:N);g_2 = real(ifft2(G_2)); g_2 = g_2(1:1:M,1:1:N); for x = 1:1:Mfor y = 1:1:Ng_0(x,y) = g_0(x,y) * (-1)^(x+y);g_1(x,y) = g_1(x,y) * (-1)^(x+y);g_2(x,y) = g_2(x,y) * (-1)^(x+y);end end%% -----show------- close all;figure(); subplot(1,2,1); imshow(f,[0 1]); xlabel('1).原圖');subplot(1,2,2); imshow(log(1 + abs(F)),[ ]); xlabel('2).1圖的傅里葉光譜');figure(); subplot(1,2,1); imshow(H_0,[0 1]); xlabel('3).高斯低通濾波(D=10)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_0(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_0)),[ ]); xlabel('4).3得到的濾波結(jié)果');subplot(1,2,2); imshow(g_0,[0 1]); xlabel('5).效果圖(D=10)');figure(); subplot(1,2,1); imshow(H_1,[0 1]); xlabel('6).高斯低通濾波(D=50)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_1)),[ ]); xlabel('7).6得到的濾波結(jié)果');subplot(1,2,2); imshow(g_1,[0 1]); xlabel('8).效果圖(D=50)');figure(); subplot(1,2,1); imshow(H_2,[0 1]); xlabel('9).高斯低通濾波(D=150)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_2)),[ ]); xlabel('10).9得到的濾波結(jié)果');subplot(1,2,2); imshow(g_2,[0 1]); xlabel('11).效果圖(D=150)');理想高通(d=10,50,150):
close all; clear all;%% ---------Ideal Lowpass Filters (Fre. Domain)------------ f = imread('D:/testData/cameraman.tif'); f = mat2gray(f,[0 255]);[M,N] = size(f); P = 2*M; Q = 2*N; fc = zeros(M,N);for x = 1:1:Mfor y = 1:1:Nfc(x,y) = f(x,y) * (-1)^(x+y);end endF = fft2(fc,P,Q);H_0 = zeros(P,Q); H_1 = zeros(P,Q); H_2 = zeros(P,Q);for x = (-P/2):1:(P/2)-1for y = (-Q/2):1:(Q/2)-1D = (x^2 + y^2)^(0.5);if(D > 10) H_0(x+(P/2)+1,y+(Q/2)+1) = 1; end if(D > 50) H_1(x+(P/2)+1,y+(Q/2)+1) = 1; end if(D > 150) H_2(x+(P/2)+1,y+(Q/2)+1) = 1; endend endG_0 = H_0 .* F; G_1 = H_1 .* F; G_2 = H_2 .* F;g_0 = real(ifft2(G_0)); g_0 = g_0(1:1:M,1:1:N);g_1 = real(ifft2(G_1)); g_1 = g_1(1:1:M,1:1:N);g_2 = real(ifft2(G_2)); g_2 = g_2(1:1:M,1:1:N); for x = 1:1:Mfor y = 1:1:Ng_0(x,y) = g_0(x,y) * (-1)^(x+y);g_1(x,y) = g_1(x,y) * (-1)^(x+y);g_2(x,y) = g_2(x,y) * (-1)^(x+y);end end%% -----show------- figure(); subplot(1,2,1); imshow(f,[0 1]); xlabel('1).原圖');subplot(1,2,2); imshow(log(1 + abs(F)),[ ]); xlabel('2).1圖的傅里葉光譜');figure(); subplot(1,2,1); imshow(H_0,[0 1]); xlabel('3).理想高通濾波(D=10)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_0(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_0)),[ ]); xlabel('4).3得到的濾波結(jié)果');subplot(1,2,2); imshow(g_0,[0 1]); xlabel('5).效果圖(D=10)');figure(); subplot(1,2,1); imshow(H_1,[0 1]); xlabel('6).理想高通濾波(D=50)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_1)),[ ]); xlabel('7).6得到的濾波結(jié)果');subplot(1,2,2); imshow(g_1,[0 1]); xlabel('8).效果圖(D=50)');figure(); subplot(1,2,1); imshow(H_2,[0 1]); xlabel('9).理想高通濾波(D=150)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_2)),[ ]); xlabel('10).9得到的濾波結(jié)果');subplot(1,2,2); imshow(g_2,[0 1]); xlabel('11).效果圖(D=150)');巴特沃斯高通(d=10,50,150):
close all; clear all;%% ---------Butterworth Lowpass Filters (Fre. Domain)------------ f = imread('D:/testData/cameraman.tif'); f = mat2gray(f,[0 255]);[M,N] = size(f); P = 2*M; Q = 2*N; fc = zeros(M,N);for x = 1:1:Mfor y = 1:1:Nfc(x,y) = f(x,y) * (-1)^(x+y);end endF = fft2(fc,P,Q);H_0 = zeros(P,Q); H_1 = zeros(P,Q); H_2 = zeros(P,Q);for x = (-P/2):1:(P/2)-1for y = (-Q/2):1:(Q/2)-1D = (x^2 + y^2)^(0.5);%n=1D_0 = 10;H_0(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D_0/D)^2);D_0 = 50;H_1(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D_0/D)^2); D_0 = 150;H_2(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D_0/D)^2);%H_2(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D/D_0)^6);end endG_0 = H_0 .* F; G_1 = H_1 .* F; G_2 = H_2 .* F;g_0 = real(ifft2(G_0)); g_0 = g_0(1:1:M,1:1:N);g_1 = real(ifft2(G_1)); g_1 = g_1(1:1:M,1:1:N);g_2 = real(ifft2(G_2)); g_2 = g_2(1:1:M,1:1:N); for x = 1:1:Mfor y = 1:1:Ng_0(x,y) = g_0(x,y) * (-1)^(x+y);g_1(x,y) = g_1(x,y) * (-1)^(x+y);g_2(x,y) = g_2(x,y) * (-1)^(x+y);end end%% -----show------- figure(); subplot(1,2,1); imshow(f,[0 1]); xlabel('1).原圖');subplot(1,2,2); imshow(log(1 + abs(F)),[ ]); xlabel('2).1圖的傅里葉光譜');figure(); subplot(1,2,1); imshow(H_0,[0 1]); xlabel('3).巴特沃斯高通濾波(D=10)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_0(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_0)),[ ]); xlabel('4).3得到的濾波結(jié)果');subplot(1,2,2); imshow(g_0,[0 1]); xlabel('5).效果圖(D=10)');figure(); subplot(1,2,1); imshow(H_1,[0 1]); xlabel('6).巴特沃斯高通濾波(D=50)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_1)),[ ]); xlabel('7).6得到的濾波結(jié)果');subplot(1,2,2); imshow(g_1,[0 1]); xlabel('8).效果圖(D=50)');figure(); subplot(1,2,1); imshow(H_2,[0 1]); xlabel('9).巴特沃斯高通濾波(D=150)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_2)),[ ]); xlabel('10).9得到的濾波結(jié)果');subplot(1,2,2); imshow(g_2,[0 1]); xlabel('11).效果圖(D=150)');高斯高通(d=10,50,150):
close all; clear all; clc; %% ---------Gaussian Lowpass Filters (Fre. Domain)------------ f = imread('D:/testData/cameraman.tif'); f = mat2gray(f,[0 255]);[M,N] = size(f); P = 2*M; Q = 2*N; fc = zeros(M,N);for x = 1:1:Mfor y = 1:1:Nfc(x,y) = f(x,y) * (-1)^(x+y);end endF = fft2(fc,P,Q);H_0 = zeros(P,Q); H_1 = zeros(P,Q); H_2 = zeros(P,Q);for x = (-P/2):1:(P/2)-1for y = (-Q/2):1:(Q/2)-1D = (x^2 + y^2)^(0.5);D_0 = 10;H_0(x+(P/2)+1,y+(Q/2)+1) = 1 - exp(-(D*D)/(2*D_0*D_0)); D_0 = 50;H_1(x+(P/2)+1,y+(Q/2)+1) = 1 - exp(-(D*D)/(2*D_0*D_0)); D_0 = 150;H_2(x+(P/2)+1,y+(Q/2)+1) = 1 - exp(-(D*D)/(2*D_0*D_0));end endG_0 = H_0 .* F; G_1 = H_1 .* F; G_2 = H_2 .* F;g_0 = real(ifft2(G_0)); g_0 = g_0(1:1:M,1:1:N);g_1 = real(ifft2(G_1)); g_1 = g_1(1:1:M,1:1:N);g_2 = real(ifft2(G_2)); g_2 = g_2(1:1:M,1:1:N); for x = 1:1:Mfor y = 1:1:Ng_0(x,y) = g_0(x,y) * (-1)^(x+y);g_1(x,y) = g_1(x,y) * (-1)^(x+y);g_2(x,y) = g_2(x,y) * (-1)^(x+y);end end%% -----show------- close all;figure(); subplot(1,2,1); imshow(f,[0 1]); xlabel('1).原圖');subplot(1,2,2); imshow(log(1 + abs(F)),[ ]); xlabel('2).1圖的傅里葉光譜');figure(); subplot(1,2,1); imshow(H_0,[0 1]); xlabel('3).高斯高通濾波(D=10)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_0(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_0)),[ ]); xlabel('4).3得到的濾波結(jié)果');subplot(1,2,2); imshow(g_0,[0 1]); xlabel('5).效果圖(D=10)');figure(); subplot(1,2,1); imshow(H_1,[0 1]); xlabel('6).高斯高通濾波(D=50)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_1)),[ ]); xlabel('7).6得到的濾波結(jié)果');subplot(1,2,2); imshow(g_1,[0 1]); xlabel('8).效果圖(D=50)');figure(); subplot(1,2,1); imshow(H_2,[0 1]); xlabel('9).高斯高通濾波(D=150)');subplot(1,2,2); h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q)); set(h,'EdgeColor','k'); axis([0 P 0 Q 0 1]); xlabel('u');ylabel('v'); zlabel('|H(u,v)|');figure(); subplot(1,2,1); imshow(log(1 + abs(G_2)),[ ]); xlabel('10).9得到的濾波結(jié)果');subplot(1,2,2); imshow(g_2,[0 1]); xlabel('11).效果圖(D=150)');總結(jié)
以上是生活随笔為你收集整理的Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 草晶华黄芪破壁草本 改善你的气虚体质
- 下一篇: Holt-Winters 方法进行时间序