实验一 图像变换
班级:11电科2 姓名:张俊为 学号:Xb11640218
一. 实验目的
1. 熟悉MATLAB中的图像处理工具箱。
2. 熟悉MATLAB中常用的图像处理函数。
3. 掌握图像傅里叶变换、离散余弦变换和小波变换的基本原理与实现方法。
二. 实验内容
1. 熟悉MATLAB图像处理工具箱的功能及常用的图像处理函数。
2. 验证课本中的例题,包括例3.4(图像选用lena_color_512.tif)。彩图像可以直接求傅里叶变换谱吗?为什么?
3. 参考例3.2结果图(d)的方法,分别求图像imgBw.png和imgBwR.png的傅里叶频谱。可以
得到什么结果?为什么?
4. 参考例3.9,分别求图像imgBw.png和imgBwR.png的拉东变换频谱。结果说明了什么?
5. imgBlurred.png是一幅有栅格的图像,请求出图像的傅里叶频谱,并通过对傅里叶频谱处理后达到去除栅格噪声的目的。提示:图像中的平坦区域对应低频部分,栅格可以认为是一种正弦波,其对应的频率在频谱图上会出现较高的值,滤去这部分值即可达到目的。同理,如果要给lena_gray_512.tif加上横向的波纹该如何实现?
6. 图chestXray_ori.tif是一幅胸部X光图像,由于X光不能像光学透镜那样聚焦,所以图像略显模糊,可以通过高通滤波来达到增强细节的目的。参考例4.15,1)实现原图的二阶巴特沃斯高通滤波,D0可选图像垂直尺寸的5%。2)实现原图的高频强调滤波,其传递函数为Hhfe(u, v)=a+bHhp(u, v)。其中Hhp(u, v)同1)。参数a的选择可参考例4.15,一般在区间[0,1]中选择。参数b大于1,可在区间[1,3]中选择不同的参数做测试,以观察不同的效果。3)对2)中的结果应用直方图均衡化提高图像的对比度,参见Matlab自带函数histeq。分析每个小题中所得结果图并比较,解释产生的原因?
三. 实验要求
1. 按照要求完成实验内容;
1. figure(1);
A=imread('lena_color_512.tif');
B=rgb2gray(A);
imshow(B);
C=fftshift(fft2(B));
figure(2);
imshow(log(abs(C)),[])
实验结果:
彩图像不可以直接求傅里叶变换谱
2.
figure(1); A=imread('imgBw.png'); B=rgb2gray(A); imshow(B); D=fft2(B); figure(2); DF=fftshift(D); DF2=log(abs(DF)); imshow(DF2,[],'notruesize'); | figure(1); A=imread('imgBwR.png'); B=rgb2gray(A); imshow(B); D=fft2(B); figure(2); DF=fftshift(D); imshow(log(abs(DF)), [],'notruesize'); |
实验结果:
3.
figure(1); A=imread('imgBwR.png'); B=rgb2gray(A); imshow(B); theta=0:180; [B,xp]=radon(B,theta); figure(2); imagesc(theta,xp,B); matlab直方图 | figure(1); A=imread('imgBw.png'); B=rgb2gray(A); imshow(B); theta=0:180; [B,xp]=radon(B,theta); figure(2); imagesc(theta,xp,B); |
4. clc;clear;
A=imread('imgBlurred.png');
B=rgb2gray(A);
subplot(221);
imshow(B);
d=fft2(double(B));
C=fftshift(d);
subplot(222);
imshow(log(abs(C)),[],'InitialMagnification','fit');
C(129,120)=(C(128,119)+C(128,120)+C(128,121)+C(129,119)+C(129,120)+C(129,121)+C(130,119)
+C(130,120)+C(130,121))/8;
C(129,138)=(C(128,137)+C(128,138)+C(128,139)+C(129,137)+C(129,138)+C(129,139)+C(130,137)
+C(130,138)+C(130,139))/8;;
D=log(abs(C));
subplot(223);
imshow(D,[]);
D=ifftshift(C);
D=uint8(real(ifft2(C)));
subplot(224);
imshow(D);
实验结果:
(2)%clc;clear;
B=imread('lena_gray_512.tif');
%B=rgb2gray(A);
subplot(221);
imshow(B);
d=fft2(double(B));
C=fftshift(d);
subplot(222);
imshow(log(abs(C)),[],'InitialMagnification','fit');
C(127,129)=(C(126,128)+C(127,128)+C(128,128)+C(126,129)+C(127,129)+C(128,129)+C(126,130)+C(126,130)+C(126,130))/2;
C(133,129)=(C(132,128)+C(133,128)+C(134,128)+C(132,129)+C(133,129)+C(134,129)+C(132,130)+C(133,130)+C(134,130))/2;
D=log(abs(C));
subplot(223);
imshow(D,[]);
D=ifftshift(C);
D=uint8(real(ifft2(C)));
subplot(224);
imshow(D);
实验结果:
5. clc;close all;clear;
J=imread('chestXray_ori.tif');
figure;
subplot(221);
%imshow(J);
imshow(uint8(J));title('模糊图像原图')
J=double(J);
f=fft2(J);
g=fftshift(f);
[M,N]=size(f);
n1=floor(M/2);
n2=floor(N/2);
n=2;d0=20;
%d0=size(f)/20;
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2);
if d==0
h1=0;
h2=0.5;
else
h1=0.5/(1+(d0/d)^(2*n));
h2=0.5/(1+(d0/d)^(2*n))+0.5;
end
gg1(i,j)=h1*g(i,j);
gg2(i,j)=h2*g(i,j);
end
end
gg2=ifftshift(gg2);
gg2=uint8(real(ifft2(gg2)));
subplot(223);imshow(gg2);
title('巴特沃斯高通加强滤波结果');
gg1=ifftshift(gg1);
gg1=uint8(real(ifft2(gg1)));
subplot(222);imshow(gg1);
title('巴特沃斯高通滤波结果');
%直方图均衡化,这是刚加的,差不多应该就是这个结果吧。
gghe=histeq(gg2);
subplot(224);imshow(gghe);
title('直方图均衡化结果');
实验结果:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论