实验四 图像的频率域滤波(综合性)
一、实验目的
1.掌握数字图像傅里叶变换;
2.掌握基于频率域的图像滤波算法;
3.能够基于MATLAB实现基于频率域的图像滤波;
4.能够根据实验结果分析各种算法的特点以及应用场合,培养处理实际图像的能力。
二、实验准备
1.新建一个文件夹:shiyan4
2.在文件夹里添加需要的图片和其他文件
(1)man.png
(2)women.png
(3)a.tif和b.tif
(4)Fig0313(a).tif和house.tif
(5)dftfilt.m
%dftfilt()函数为自定义函数,实现傅里叶变换并滤波
function g = dftfilt(f,H)
% 此函数可接受输入图像和一个滤波函数,可处理所有的
% 滤波细节并输出经滤波和剪切后的图像
% 将此.m文件保存在一个文件夹
% file->set path->add with subfolder
% 将你函数所在文件夹添加到搜索路径
% save就可以将其添加到你的函数库了
F=fft2(f,size(H,1),size(H,2));
g=real(ifft2(H.*F));
g=g(1:size(f,1),1:size(f,2));
(6)gausshigh.m
%高斯高通滤波器
function [image_result] =gausshigh (image_orign,D0)
% D0为截至频率的(相当于设置在傅里叶谱图的半径值)
%将零频率成分(坐标原点)变换到傅里叶频谱图中心
image_fft = fft2(image_orign);%用傅里叶变换将图象从空间域转换为频率域
image_fftshift = fftshift(image_fft);
%将零频率成分(坐标原点)变换到傅里叶频谱图中心
[width,high] = size(image_orign);
D = zeros(width,high);
%创建一个width行,high列数组,用于保存各像素点到傅里叶变换中心的距离
for i=1:width
for j=1:high
D(i,j) = (i-width/2)^2+(j-high/2)^2; %像素点(i,j)到傅里叶变换中心的距离
H(i,j) = 1.0-exp(-D(i,j)/(2*D0^2));
%高斯高通滤波函数
image_fftshift(i,j)= H(i,j)*image_fftshift(i,j);
%将滤波器处理后的像素点保存到对应矩阵
end
end
image_result = ifftshift(image_fftshift);%将原点反变换回原始位置
image_result = uint8(real(ifft2(image_result)));
%real函数用于取复数的实部;
%uint8函数用于将像素点数值转换为无符号8位整数;ifft函数反傅里叶变换
(7)gausslow.m
% 高斯低通滤波器
function [image_result] =gausslow (image_orign,D0)
% D0为截至频率的(相当于设置在傅里叶谱图的半径值)
%将零频率成分(坐标原点)变换到傅里叶频谱图中心
image_fft = fft2(image_orign);%用傅里叶变换将图象从空间域转换为频率域
image_fftshift = fftshift(image_fft);
%将零频率成分(坐标原点)变换到傅里叶频谱图中心
[width,high] = size(image_orign);
D = zeros(width,high);
%创建一个width行,high列数组,用于保存各像素点到傅里叶变换中心的距离
for i=1:width
for j=1:high
D(i,j) = (i-width/2)^2+(j-high/2)^2;
%像素点(i,j)到傅里叶变换中心的距离
H(i,j) = exp(-D(i,j)/(2*D0^2)); %高斯低通滤波函数
image_fftshift(i,j)= H(i,j)*image_fftshift(i,j);
%将滤波器处理后的像素点保存到对应矩阵
end
end
image_result = ifftshift(image_fftshift);%将原点反变换回原始位置
image_result = uint8(real(ifft2(image_result)));
%real函数用于取复数的实部;
%uint8函数用于将像素点数值转换为无符号8位整数;ifft函数反傅里叶变换
(8)idealhigh.m
%理想高通滤波器
function [image_result] =idealhigh (image_orign,D0)
% D0为截至频率的(相当于设置在傅里叶谱图的半径值)
image_fft = fft2(image_orign);%用傅里叶变换将图象从空间域转换为频率域
image_fftshift = fftshift(image_fft);
%将零频率成分(坐标原点)变换到傅里叶频谱图中心
[width,high] = size(image_orign);
D = zeros(width,high);
width_mid=fix(width/2); %是不是可以有其他取整方式?
high_mid=fix(high/2);
for i=1:width
for j=1:high
D=sqrt((i-width_mid)^2+(j-high_mid)^2); %理想高通滤波,求距离
if D<=D0
H(i,j)=0;
else
H(i,j)=1;
end %理想高通滤波函数
image_fftshift(i,j)= H(i,j)*image_fftshift(i,j);
%将滤波器处理后的像素点保存到对应矩阵
end
end
image_result = ifftshift(image_fftshift);%将原点反变换回原始位置
image_result = uint8(real(ifft2(image_result)));
%real函数用于取复数的实部;
%uint8函数用于将像素点数值转换为无符号8位整数;ifft函数反傅里叶变换
(9)ideallow.m
%理想低通滤波器
function [image_result] =ideallow (image_orign,D0)
% D0为截至频率的(相当于设置在傅里叶谱图的半径值)
image_fft = fft2(image_orign);%用傅里叶变换将图象从空间域转换为频率域
image_fftshift = fftshift(image_fft);
%将零频率成分(坐标原点)变换到傅里叶频谱图中心
[width,high] = size(image_orign);
D = zeros(width,high);
width_mid=fix(width/2); %是不是可以有其他取整方式?
high_mid=fix(high/2);
for i=1:width
for j=1:high
D=sqrt((i-width_mid)^2+(j-high_mid)^2); %理想低通滤波,求距离
if D<=D0
H(i,j)=1;
else
H(i,j)=0;
end %理想低通滤波函数
image_fftshift(i,j)= H(i,j)*image_fftshift(i,j);
%将滤波器处理后的像素点保存到对应矩阵
end
end
image_result = ifftshift(image_fftshift);%将原点反变换回原始位置
image_result = uint8(real(ifft2(image_result)));
%real函数用于取复数的实部;
%uint8函数用于将像素点数值转换为无符号8位整数;ifft函数反傅里叶变换
(10)paddedsize.m
% 计算填充尺寸以供基于FFT的滤波器
function PQ = paddedsize(AB, CD, ~)
%PADDEDSIZE Computes padded sizes useful for FFT-based filtering.
% PQ = PADDEDSIZE(AB), where AB is a two-element size vector, computes the
% two-element size vecter PQ = 2*AB.
%
% PQ = PADDEDSIZE(AB, 'PWR2') computes the vector PQ such that PQ(1) =
% PQ(2) = 2^nextpow2(2*m), where m is MAX(AB).
%
% PQ = PADDEDSIZE(AB, CD), where AB and CD are two-element size vectors,
% computes the two-element size vector PQ. The elements of PQ are the
% smallest even integers greater than or equal to AB + CD -1.
%
% PQ = PADDEDSIZE(AB, CD, 'PWR2') computes the vector PQ such that PQ(1) =
% PQ(2) = 2^nextpow2(2*m), where m is MAX([AB CD]).
%
% Function rewritten from Gonzalez, Woods, Eddins; Digital Image Processing using Matlab
% Prentice Hall, 2004
if nargin ==1
PQ = 2*AB;
elseif nargin == 2 && ~ischar(CD)
PQ = AB +CD -1;
PQ = 2*ceil(PQ/2);
elseif nargin ==2
m= max(AB); %Maximum dimension
%Find power-of-2 at least twice m.
P = 2^nextpow2(2*m);
PQ = [P, P];
elseif nargin == 3
m=max([AB CD]); % Maximum dimension.
P = 2^nextpow2(2*m);
PQ = [P, P];
else
error('Wrong number of inputs')
end
二、实验内容(每一个内容编写一个*.m文件)
1.用MATLAB函数对图像(house.tif)完成傅立叶变换;
(1)读入,在图形窗口显示输入图像;
(2)完成傅立叶变换,显示变换后的频谱图;
(3)对频谱图采用对数变换,将变换后的图像在图形窗口显示;
(4)对变换后的频谱进行频移,将零频率部分移到图形的中心位置,并在图形窗口显示;
(5)对频谱图采用对数变换,将变换后的图像在图形窗口显示;
(6)获取傅里叶变换后的相位谱图,并在图形窗口显示;
(7)对相位谱图采用对数变换,将变换后的图像在图形窗口显示;
(8)通过傅里叶反变换得到输入的图像,显示反变换得到的图像。
% 清空工作空间
clear all
close all
clc
% 读入图像
I = imread('house.tif');
% 绘制原图
subplot(2,4,1),imshow(I),title('原图')
% 进行二维傅里叶变换并显示频谱图
F = fft2(I); % F为double型
subplot(2,4,3),I1=imshow(abs(F),[]),title('频谱图1');
% 对频谱图进行对数变换并显示
K=log2(1+abs(F));
subplot(2,4,4),imshow(K,[]),title('频谱图2');
% 对频谱图进行中心化并显示
Fc = fftshift(F);
subplot(2,4,5),imshow(abs(Fc),[]),title('频谱图3');
% 对中心化后的频谱图进行对数变换并显示
Kc=log2(1+abs(Fc));
subplot(2,4,6),imshow(Kc,[]),title('频谱图4');
% 显示相位谱图
subplot(2,4,7),imshow((angle(Fc)*180/pi),[]),title('相位谱图1');
% 对相位谱图进行对数变换并显示
phase=log2(angle(Fc)*180/pi);
subplot(2,4,8),imshow(phase,[]),title('相位谱图2');
% 频率域反变换到空间域,并取实部
f = real(ifft2(ifftshift(Fc)));
% 更改图像类型并显示反变换后的图像
ret = im2uint8(mat2gray(f));
subplot(2,4,2),imshow(ret),title('反变换图');
2.用MATLAB生成如下的两幅图像(图a:黑白线竖线8条,图b: 黑白线横线32条),图像的大小为,对这两幅图像进行傅里叶变换,并分别进行频移和对数变换,在一个图形窗口显示:原图像、傅里叶变换后的频谱图和相位图、频移后的频谱图及相位图。

图a:黑白线竖线8条 图b: 黑白线横线32条
% 清空工作空间
clear all
close all
clc
% 生成a图
figure(1)
lines = 8; % 黑白线数
m = 16; % 黑或白线宽度(像素),黑白宽度一致
n = 256; % 图像高度
S = zeros(1,2*m);
S(1:m) = ones(1,m);
A = repmat(S,n,lines); % repmat()返回一个数组,该数组在其行维度和列维度包含 A 的 n 个副本。
imwrite(A,'a.tif','tif');
subplot(1,2,1),imshow(A),title('a图')
% 生成b图
lines = 32; % 黑白线对数
m = 4; % 黑或白线宽度(像素),黑白宽度一致
n = 256; % 图像高度
S = zeros(2*m,1);
S(1:m,1) = ones(1,m);
A = repmat(S,lines,n);
imwrite(A,'b.tif','tif');
subplot(1,2,2),imshow(A),title('b图')
% 对a图进行傅里叶变换和相位谱分析
figure(2)
Ia = imread('a.tif'); % 读取图片
F = fft2(Ia); % 傅里叶变换
Fs = fftshift(F); % 将频谱中心移到中心位置
phase1=log(angle(F)*180/pi); % 图像相位谱
phase2=log(angle(Fs)*180/pi); % 移位图像相位谱
subplot(3,2,[1,2]),imshow(Ia),title('原图')
subplot(3,2,3),imshow(log(abs(F)+1),[]),title('频谱图')
subplot(3,2,4),imshow(phase1,[]),title('相位谱')
subplot(3,2,5),imshow(log(abs(Fs)+1),[]),title('移位频谱图')
subplot(3,2,6),imshow(phase2,[]),title('移位相位谱')
% 对b图进行傅里叶变换和相位谱分析
figure(3)
Ib = imread('b.tif'); % 读取图片
F = fft2(Ib); % 傅里叶变换
Fs = fftshift(F); % 将频谱中心移到中心位置
phase1=log(angle(F)*180/pi); % 图像相位谱
phase2=log(angle(Fs)*180/pi); % 移位图像相位谱
subplot(3,2,[1,2]),imshow(Ib),title('原图')
subplot(3,2,3),imshow(log(abs(F)+1),[]),title('频谱图')
subplot(3,2,4),imshow(phase1,[]),title('相位谱图')
subplot(3,2,5),imshow(log(abs(Fs)+1),[]),title('移位频谱图')
subplot(3,2,6),imshow(phase2,[]),title('移位相位谱')
3.比较傅里叶变换后图像的频谱图和相位图所起的作用。
(1)读入并显示两幅不同的彩色人体图像(man.png和woman.png),大小相同;
(2)分别对上述两幅图像进行傅里叶变换并频移,得到他们的频谱图和相位图;
(3)根据第一个人员图像的频谱图和第二个人员图像的相位图恢复图像;
(4)根据第一个人员图像的相位图和第二个人员图像的频谱图恢复图像;
(5)比较分析图像与原图的差别。
-
图像大小:原始图像与调整后的图像相比,尺寸发生了变化,调整后的图像更大。
-
图像内容:原始图像与重构图像相比,内容可能有所不同。重构图像是根据原始图像的幅度和另一张图像的相位进行生成的,因此可能会产生一些变化。
-
频谱图和相位谱图:原始图像的频谱图进行了模拉伸,使其更清晰可见。相位谱图显示了图像中的相位信息。
-
重构图像:通过交换幅度和相位信息,得到了两张图像的重构图像。重构图像可能与原始图像略有不同。
% 清除环境中的变量,关闭所有图形窗口,清空命令窗口
clear all
close all
clc
% 读取两张图片
I1= imread('man.png');
I2= imread('woman.png');
% 获取图片尺寸
[m1,n1]=size(I1);
[m2,n2]=size(I2);
% 显示原始图片
figure(1)
subplot(2,2,1),imshow(I1),title('man.png')
subplot(2,2,2),imshow(I2),title('woman.png')
% 调整图片大小,使两幅图保持一致,并保存为新的文件
K1 = imresize(I1,[2000,3000]);
K2 = imresize(I2,[2000,3000]);
imwrite(K1,'man.tif','tif');
imwrite(K2,'woman.tif','tif');
x = imread('man.tif');
y = imread('woman.tif');
subplot(2,2,3),imshow(x),title('man.tif')
subplot(2,2,4),imshow(y),title('woman.tif')
% 显示频谱图和相位谱图
figure(2)
x1 = rgb2gray(x);
y1 = rgb2gray(y);
% 进行傅里叶变换
xf = fft2(x1); % 对 man.tif 进行傅里叶变换
yf = fft2(y1); % 对 woman.tif 进行傅里叶变换
% 平移频谱
xfs = fftshift(xf); % 将 man.tif 的频谱中心移到中心位置
yfs = fftshift(yf); % 将 woman.tif 的频谱中心移到中心位置
% 获取频谱图和相位谱图
Fc1 = log(abs(xfs)+1); % 对 man.tif 的频谱图进行模拉伸
phase1=angle(xfs)*180/pi; % 获取 man.tif 的相位谱
Fc2 = log(abs(yfs)+1); % 对 woman.tif 的频谱图进行模拉伸
phase2=angle(yfs)*180/pi; % 获取 woman.tif 的相位谱
% 显示结果
subplot(3,2,1),imshow(x1),title('man')
subplot(3,2,2),imshow(y1),title('woman')
subplot(3,2,3),imshow(Fc1,[]),title('man频谱图(拉伸)')
subplot(3,2,4),imshow(Fc2,[]),title('woman频谱图(拉伸)')
subplot(3,2,5),imshow(phase1,[]),title('man相位谱图')
subplot(3,2,6),imshow(phase2,[]),title('woman相位谱图')
% 双谱重构
figure(3)
% 取幅度和相位信息
xf1=abs(xf);
xf2=angle(xf);
yf1=abs(yf);
yf2=angle(yf);
% 交换相位信息
xfr=xf1.*cos(yf2)+xf1.*sin(yf2).*1i;
yfr=yf1.*cos(xf2)+yf1.*sin(xf2).*1i;
% 进行逆傅里叶变换
xr=abs(ifft2(xfr));
yr=abs(ifft2(yfr));
% 显示结果
subplot(2,2,1);imshow(x);title('x 原图');
subplot(2,2,2);imshow(y);title('y 原图');
subplot(2,2,3);imshow(xr,[]);title('x的 幅度谱 与 y的相位谱');
subplot(2,2,4);imshow(yr,[]);title('y的 幅度谱 与 x的相位谱');
4.低通滤波和高通滤波的效果比较
(1)读入并显示图像Fig0313(a).tif;
(2)分别对图像进行理想低通滤波和高斯低通滤波,D0=20,60,将以上结果在一个图形窗口显示;
(3)分别对图像进行理想高通滤波和高斯高通滤波,D0=20,60,将以上结果在一个图形窗口显示;
(4)比较分析滤波结果的区别。
-
低通滤波:观察D0=20和D0=100两种情况下,理想滤波器和高斯滤波器处理的图像有何不同。考虑图像的模糊程度和细节保留情况。
-
高通滤波:同样观察D0=20和D0=100两种情况下,理想滤波器和高斯滤波器处理的图像有何不同。关注图像的边缘和纹理细节。
% 清除环境中的变量,关闭所有图形窗口,清空命令窗口
clear all;
close all;
clc;
% 读取图片
figure;
x = imread('Fig0313(a).tif');
% 设置滤波器参数
D01 = 20;
D02 = 100;
% 低通滤波
x_result11 = ideallow(x, D01);
x_result12 = ideallow(x, D02);
x_result21 = gausslow(x, D01);
x_result22 = gausslow(x, D02);
% 显示结果
figure(1);
subplot(3,2,[1 2]);imshow(x);title('原图');
subplot(3,2,3);imshow(x_result11);title('理想低通滤波处理D0=20图片');
subplot(3,2,4);imshow(x_result12);title('理想低通滤波处理D0=100图片');
subplot(3,2,5);imshow(x_result21);title('高斯低通滤波处理D0=20图片');
subplot(3,2,6);imshow(x_result22);title('高斯低通滤波处理D0=100图片');
% 高通滤波
x_result11 = idealhigh(x, D01);
x_result12 = idealhigh(x, D02);
x_result21 = gausshigh(x, D01);
x_result22 = gausshigh(x, D02);
% 显示结果
figure(2);
subplot(3,2,[1 2]);imshow(x);title('原图');
subplot(3,2,3);imshow(x_result11);title('理想高通滤波处理D0=20图片');
subplot(3,2,4);imshow(x_result12);title('理想高通滤波处理D0=100图片');
subplot(3,2,5);imshow(x_result21);title('高斯高通滤波处理D0=20图片');
subplot(3,2,6);imshow(x_result22);title('高斯高通滤波处理D0=100图片');
5.空间域滤波和频率域滤波的比较
(1)读入图像house.tif,对其进行傅里叶变换,显示原图像和傅里叶变换后的频谱图像;
(2)用MATLAB函数fspecial()生成空间滤波器(sobel,laplacian),对图像进行滤波,显示滤波后的图像;
(3)用MATLAB函数将空间滤波器转化为频率域滤波器,对图像进行频率域的滤波;
(4)比较空间滤波和频率域滤波速度和滤波后图像的区别。
-
空间域滤波是指对原始图像的像素值进行操作,通过一定的算法或卷积核来改变像素值,从而达到滤波的目的。在本例中,使用了 laplacian 和sobel滤波器对图像进行了空间域滤波。在进行空间域滤波时,需要遍历所有的像素点,因此计算速度较慢。但是,空间域滤波可以保留图像的空间分辨率,从而得到更好的细节。
-
频率域滤波则是在将图像进行傅里叶变换后,在频率域进行滤波。通过计算傅里叶变换后的频谱,设计相应的频率域滤波函数,再将滤波函数反变换回空间域,最后使用IDFT 将滤波函数应用到原始图像上。在本例中,使用了自定义的 dftfilt函数对图像进行了频域滤波。相比于空间域滤波,频域滤波更快,并且能够有效地去除高频噪声和低频噪声,从而达到更好的平滑效果。但是,频域滤波可能会降低图像的空间分辨率,导致一些细节丢失。
% 清除工作区、关闭所有图形窗口、清空命令行窗口
clear all;
close all;
clc;
%% 读取原始图像并进行傅里叶变换
figure(1)
I = imread('house.tif'); % 读取原始图像
F = fft2(I); % 对图像进行傅里叶变换
subplot(2,2,1), imshow(I), title('原始图像')
subplot(2,2,2), imshow(log(abs(F)+1),[]), title('傅里叶变换')
%% 使用 fspecial 函数创建 laplacian 和 sobel 滤波器,并对图像进行空间域滤波
h1 = fspecial('laplacian',0); % 创建 laplacian 滤波器
h2 = fspecial('sobel'); % 创建 sobel 滤波器
tic % 开始计时
g1 = imfilter(I,h1,'replicate'); % 对图像进行 laplacian 滤波
g2 = imfilter(I,h2,'replicate'); % 对图像进行 sobel 滤波
toc % 停止计时
disp(['空间域滤波运行时间: ',num2str(toc)]);
subplot(2,2,3), imshow(I-g1), title('laplacian filter 函数空间域滤波增强')
subplot(2,2,4), imshow(I-g2), title('sobel filter 函数空间域滤波增强')
%% 使用 freqz2 函数计算滤波器的频率响应,并显示滤波器形状
figure(2)
subplot(2,3,1), freqz2(h1), title('laplacian filter')
subplot(2,3,4), freqz2(h2), title('sobel filter')
PQ = paddedsize(size(I)); % 计算填充尺寸以供基于 FFT 的滤波器
H1 = freqz2(h1,PQ(1),PQ(2)); % 对 laplacian 滤波器进行傅里叶变换并计算频谱
H2 = freqz2(h2,PQ(1),PQ(2)); % 对 sobel 滤波器进行傅里叶变换并计算频谱
H11 = ifftshift(abs(H1)); % 频移,得到频域滤波函数频谱。
H22 = ifftshift(abs(H2));
subplot(2,3,2), imshow(abs(H1),[]) % 显示频谱
subplot(2,3,3), imshow(abs(H11),[]) % 频移后,显示频谱
subplot(2,3,5), imshow(abs(H2),[])
subplot(2,3,6), imshow(abs(H22),[])
%% 使用自定义的 dftfilt 函数对图像进行频域滤波
figure(3)
tic % 开始计时
gf1 = dftfilt(I, H11); % 对图像进行 laplacian 滤波
gf2 = dftfilt(I, H22); % 对图像进行 sobel 滤波
toc % 停止计时
disp(['频域滤波运行时间: ',num2str(toc)]);
subplot(2,3,[1,4]), imshow(I), title('原始图像')
subplot(2,3,2), imshow(g1,[]), title('空间域滤波(laplacian)')
subplot(2,3,3), imshow(g2,[]), title('空间域滤波(sobel)')
subplot(2,3,5), imshow(gf1,[]), title('频率域滤波(laplacian)')
subplot(2,3,6), imshow(gf2,[]), title('频率域滤波(sobel)')
%% 显示原始图像和经过空间域滤波增强及频域滤波增强后的图像
figure(4)
subplot(2,3,[1,4]), imshow(I), title('原始图像')
subplot(2,3,2), imshow(I-g1,[]), title('空间域滤波(laplacian)增强')
subplot(2,3,3), imshow(I-g2,[]), title('空间域滤波(sobel)增强')
subplot(2,3,5), imshow(I-uint8(gf1),[]), title('频率域滤波(laplacian)增强')
subplot(2,3,6), imshow(I-uint8(gf2),[]), title('频率域滤波(sobel)增强')
四、问题与讨论
1.为什么要在频率域对图像进行滤波?
在频率域对图像进行滤波的主要原因是可以利用傅里叶变换将图像转换到频域,使我们能够更方便地分析和处理图像的频率信息。频域滤波可以通过调整频率域上的滤波器来实现对图像的去噪、增强、边缘检测等操作。
2.根据题1的实验结果分析(1)移频前后的频谱图有什么区别?(2)对数变换对频谱图的影响怎样?
(1) 移频前后的频谱图在外观上没有明显的区别。移频后,频谱图中心从左上角移到了图像的中心位置。
(2) 对数变换对频谱图的影响是将原始的线性幅度值转换为对数尺度,这样可以增强低幅度的频率成分,并减小高幅度的频率成分。
3.根据题3的实验结果,分析频谱图和相位图的作用。
频谱图表示了图像在频率域上的信息分布情况,可以帮助我们分析图像的频率特征,如低频和高频成分。相位图表示了图像的相位信息,可以用于重建原始图像。频谱图和相位图一起构成了图像的傅里叶变换表示,通过对频谱图进行滤波操作,可以改变图像的频率特征,而相位图则保持不变,通过将滤波后的频谱图与原始相位图进行逆傅里叶变换,可以得到滤波后的图像。
4.根据题4的实验结果,分别分析(1)低通滤波和高通滤波对图像的影响,(2)截止频率对低通滤波的影响,(3)相同截止频率时,理想低通滤波器和高斯低通滤波器对图像的影响有什么不同。
(1) 低通滤波器对图像起到平滑和模糊的效果,可以去除高频细节,保留低频部分。高通滤波器则对图像起到边缘检测和细节增强的效果,可以增强图像中高频部分,去除低频部分。
(2) 截止频率决定了低通滤波器的截止频率,即在该频率以下的频率成分将被保留,而在该频率以上的频率成分将被抑制。当截止频率较小时,保留的低频成分较多,图像会更加平滑。当截止频率较大时,保留的低频成分较少,图像中的细节更多。
(3) 理想低通滤波器在频域上呈现出明确的截止频率,对高于截止频率的频率成分进行完全抑制,而对低于截止频率的频率成分不进行抑制。高斯低通滤波器则以连续的方式减小频率成分的幅度,没有明确的截止频率。因此,理想低通滤波器在频域上呈现出明显的边缘,而高斯低通滤波器具有平滑的过渡效果。
】&spm=1001.2101.3001.5002&articleId=134855697&d=1&t=3&u=53fa7393ec4c4cccb31db5a5e37f6ab9)
7177

被折叠的 条评论
为什么被折叠?



