Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)
来源:互联网 发布:gallery3d源码分析 编辑:程序博客网 时间:2024/06/05 21:03
数字图像处理第二次编程课后作业
理想低通(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:M for y = 1:1:N fc(x,y) = f(x,y) * (-1)^(x+y); endendF = 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)-1 for y = (-Q/2):1:(Q/2)-1 D = (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; end endendG_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:M for y = 1:1:N g_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); endend%% -----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得到的滤波结果');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得到的滤波结果');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得到的滤波结果');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:M for y = 1:1:N fc(x,y) = f(x,y) * (-1)^(x+y); endendF = 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)-1 for y = (-Q/2):1:(Q/2)-1 D = (x^2 + y^2)^(0.5); %n=1 D_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); endendG_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:M for y = 1:1:N g_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); endend%% -----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得到的滤波结果');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得到的滤波结果');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得到的滤波结果');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:M for y = 1:1:N fc(x,y) = f(x,y) * (-1)^(x+y); endendF = 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)-1 for y = (-Q/2):1:(Q/2)-1 D = (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)); endendG_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:M for y = 1:1:N g_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); endend%% -----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得到的滤波结果');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得到的滤波结果');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得到的滤波结果');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:M for y = 1:1:N fc(x,y) = f(x,y) * (-1)^(x+y); endendF = 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)-1 for y = (-Q/2):1:(Q/2)-1 D = (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; end endendG_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:M for y = 1:1:N g_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); endend%% -----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得到的滤波结果');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得到的滤波结果');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得到的滤波结果');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:M for y = 1:1:N fc(x,y) = f(x,y) * (-1)^(x+y); endendF = 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)-1 for y = (-Q/2):1:(Q/2)-1 D = (x^2 + y^2)^(0.5); %n=1 D_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); endendG_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:M for y = 1:1:N g_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); endend%% -----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得到的滤波结果');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得到的滤波结果');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得到的滤波结果');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:M for y = 1:1:N fc(x,y) = f(x,y) * (-1)^(x+y); endendF = 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)-1 for y = (-Q/2):1:(Q/2)-1 D = (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)); endendG_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:M for y = 1:1:N g_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); endend%% -----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得到的滤波结果');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得到的滤波结果');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得到的滤波结果');subplot(1,2,2);imshow(g_2,[0 1]);xlabel('11).效果图(D=150)');
阅读全文
0 0
- Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)
- 理想低通滤波器
- 理想低通滤波器
- 理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器
- 理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器
- 理想高通滤波器
- 理想的低通滤波器、巴特沃斯滤波器、高斯滤波器
- matlab理想带通滤波
- 基于opencv的理想低通滤波器和巴特沃斯低通滤波器
- 【转】理想低通滤波器、巴特沃斯低…
- 第27章 无失真系统与理想低通
- 使用理想低通滤波器对图像进行处理显示
- VTK修炼之道41:频域处理_低通滤波(理想+巴特沃兹)
- 理想
- 理想
- 理想
- 理想
- 理想
- nginx 常用命令
- Android学习之搞搞7.0和6.0uri的不同
- 欢迎使用CSDN-markdown编辑器
- 四元数与复数之间的关系
- 回文判断
- Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)
- 深度递归学习
- Linux 命令
- 1.笔记 5.7.10MySQL——安装
- leetcode题解-38. Count and Say
- 4. 卷2(进程间通信)---管道和FIFO
- 隐马尔科夫模型(二)
- centos安装golang、protobuf
- 1、IT学习班——流程图制作之安装与下载