wikidot网站怎么做,无锡模板建站多少钱,德阳做网站,学影视后期去哪培训好MATLAB实现图像变换和滤波方法对具有不同特征的灰度图像进行处理
图像变换方法包括#xff1a;DFT及IDFT#xff0c;DCT及IDCT
图像滤波方法包括低通滤波和高通滤波
图像变换
DFT/IDFT
图像一般是二维的#xff0c;根据二维离散傅里叶变换公式DFT#xff0c;可以将图片…MATLAB实现图像变换和滤波方法对具有不同特征的灰度图像进行处理
图像变换方法包括DFT及IDFTDCT及IDCT
图像滤波方法包括低通滤波和高通滤波
图像变换
DFT/IDFT
图像一般是二维的根据二维离散傅里叶变换公式DFT可以将图片从空间域转换到频率域内对其进行一些处理再通过离散傅里叶反变换IDFT转换回原空间域达到一些特殊处理效果。 DCT/IDCT
离散余弦变换(Discrete Cosine Transform)本质上也是离散傅里叶变换(Discrete Fourier Transform)但是只有实数部分。有这样一个性质如果信号x[n]在给定区间内满足狄利赫里条件且为实对称函数则可以展开成仅含有余弦项的傅里叶级数即离散余弦变换。所以我们在构造离散信号的周期函数的时候要对其进行偶延拓。 图像滤波
图像滤波即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制是图像预处理中不可缺少的操作其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。常见的滤波方法有低通滤波和高通滤波。
图像是一个二维的信号其中像素点灰度值的高低代表信号的强弱。图像中的高频是指图像中灰度变化剧烈的点一般是图像轮廓或者是噪声图像中的低频是指图像中平坦的灰度变化不大的点图像中的大部分区域。
根据图像的高频与低频特征我们可以设计相应的高通与低通滤波器高通滤波可以检测图像中尖锐、变化明显的地方低通滤波可以让图像变得光滑滤除图像中的噪声。
MATLAB代码实现
% 1.读取图片
ximread(.\BMP_images\lena256.BMP);
yimread(.\BMP_images\cman256.BMP);% 2.将两图分别转换成灰度图像
% xrgb2gray(x);
% yrgb2gray(y);% 3.FFT变换并将中心平移
dftxchange fftshift(fft2(x));
dftychange fftshift(fft2(y));% 4.将平移后矩阵取实部显示频谱图在窗口中。使用angle函数求相位角显示相位图
figure(1)
subplot(1,2,1);imshow(x);title(原图1);
subplot(1,2,2);imshow(y);title(原图2);
figure(2)
subplot(2,2,1);imshow(log(abs(dftxchange)),[8 10]);title(图1的DFT频谱图);
subplot(2,2,3);imshow(angle(dftxchange));title(图1的DFT相位图);
subplot(2,2,2);imshow(log(abs(dftychange)),[8 10]);title(图2的DFT频谱图);
subplot(2,2,4);imshow(angle(dftychange));title(图2的DFT相位图);% 5.DCT变换
dctadct2(x);
dctbdct2(y); % 6.显示频谱图和相位图
figure(3)
subplot(2,2,1);imshow(log(abs(dcta)),[]);title(图1的DCT变换幅度图);
subplot(2,2,2);imshow(angle(dcta),[]);title(图1的DCT变换相位图);
subplot(2,2,3);imshow(log(abs(dctb)),[]);title(图2的DCT变换幅度图);
subplot(2,2,4);imshow(angle(dctb),[]);title(图2的DCT变换相位图); % 7.对图1和图2的频谱图和相位图分别进行IDFT重建对图1图2的频谱图和图2图1的频谱图、相位图分别进行IDFT重建显示重建后图片。
Afft2(double(x)); Bfft2(double(y));
Afabs(A); phaseAangle(A);
Bfabs(B); phaseBangle(B);rAAf.*cos(phaseA)Af.*sin(phaseA).*1i;
rBBf.*cos(phaseB)Bf.*sin(phaseB).*1i;
xchangeuint8(abs(ifft2(rA)));
ychangeuint8(abs(ifft2(rB)));
figure(4);
subplot(2,1,1);imshow(xchange,[]);title(图1的幅度和1相位DFT重建);
subplot(2,1,2);imshow(ychange,[]);title(图2的幅度和2相位DFT重建);% % 8.对图1和图2的频谱图和相位图分别进行IDFT重建对图1图2的频谱图和图2图1的频谱图、相位图分别进行IDFT重建显示重建后图片。
% rab0Af.*cos(phaseB)Af.*sin(phaseB).*1i;
% rab1Bf.*cos(phaseA)Bf.*sin(phaseA).*1i;
% xyuint8(abs(ifft2(rab0)));
% xy1uint8(abs(ifft2(rab1)));
% subplot(2,2,2);imshow(xy,[]);title(图1幅谱与2相谱IDFT重建);
% subplot(2,2,4);imshow(xy1,[]);title(图2幅谱与1相谱IDFT重建);% 7.对图1和图2的频谱图和相位图分别进行IDCT重建对图1图2的频谱图和图2图1的频谱图、相位图分别进行IDCT重建显示重建后图片。
dctxchange1abs(dcta);dctxapangle(dcta);
dctyychange2abs(dctb);dctybpangle(dctb);
dctxxchange4dctxchange1.*cos(dctxap)dctxchange1.*sin(dctxap).*1i;
dctyychange5dctyychange2.*cos(dctybp)dctyychange2.*sin(dctybp).*1i;
dctxxchange4uint8(abs(idct2(dctxxchange4)));
dctyychange5uint8(abs(idct2(dctyychange5)));
figure(5)
subplot(2,1,1);imshow(dctxxchange4,[]);title(图1幅度与1相位IDCT重建);
subplot(2,1,2);imshow(dctyychange5,[]);title(图2幅度与2相位IDCT重建);
% dctxxchange4dctxchange1.*cos(dctybp)dctxchange1.*sin(dctybp).*1i;
% dctyychange5dctyychange2.*cos(dctxap)dctyychange2.*sin(dctxap).*1i;
% dctxchanger1uint8(abs(idct2(dctxxchange4)));
% dctychanger1uint8(abs(idct2(dctyychange5)));
% subplot(2,2,2);imshow(dctxchanger1,[]);title(图1幅度与2相位IDCT重建);
% subplot(2,2,4);imshow(dctychanger1,[]);title(图2幅度与1相位IDCT重建);更多详细代码发布在https://github.com/JeremyChou28/digital_image_processing/tree/main/project1