zl数字图像处理实验报告926.docx
- 文档编号:6887724
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:21
- 大小:1.55MB
zl数字图像处理实验报告926.docx
《zl数字图像处理实验报告926.docx》由会员分享,可在线阅读,更多相关《zl数字图像处理实验报告926.docx(21页珍藏版)》请在冰豆网上搜索。
zl数字图像处理实验报告926
实验一:
数字图像的基本处理制作4
1.1:
实验追求4
1.2:
实验任务和要求4
1.3:
实验步骤和结果5
1.4:
结果分析8
实验二:
图像的灰度变换和直方图变换9
2.1:
实验追求9
2.2:
实验任务和要求9
2.3:
实验步骤和结果9
2.4:
结果分析13
实验三:
图像的平滑处理14
3.1:
实验追求14
3.2:
实验任务和要求14
3.3:
实验步骤和结果14
3.4:
结果分析18
实验四:
图像的锐化处理19
4.1:
实验追求19
4.2:
实验任务和要求19
4.3:
实验步骤和结果19
4.4:
结果分析21
实验一:
数字图像的基本处理制作
1.1:
实验追求
1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用。
2、实现图像的读取、显示、代数运算和简单变换。
3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。
1.2:
实验任务和要求
1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
.
2.对两幅不同图像执行加、减、乘、除制作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。
3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。
.
4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
.
1.3:
实验步骤和结果
1.对实验任务1的实现代码如下:
a=imread('d:
\tp.jpg');
i=rgb2gray(a);
I=im2bw(a,0.5);
subplot(1,3,1);imshow(a);title('原图像');
subplot(1,3,2);imshow(i);title('灰度图像');
subplot(1,3,3);imshow(I);title('二值图像');
subplot(1,3,1);imshow(a);title('原图像');
结果如图1.1所示:
图1.1原图及其灰度图像,二值图像
2.对实验任务2的实现代码如下:
a=imread('d:
\tp.jpg');
A=imresize(a,[800800]);
b=imread('d:
\tp2.jpg');
B=imresize(b,[800800]);
Z1=imadd(A,B);
Z2=imsubtract(A,B);
Z3=immultiply(A,B);
Z4=imdivide(A,B);
subplot(3,2,1);imshow(A);title('原图像A');
subplot(3,2,2);imshow(B);title('原图像B');
subplot(3,2,3);imshow(Z1);title('加法图像');
subplot(3,2,4);imshow(Z2);title('减法图像');
subplot(3,2,5);imshow(Z3);title('乘法图像');
subplot(3,2,6);imshow(Z2);title('除法图像');
结果如图1.2所示:
3.对实验任务3的实现代码如下:
s=imread('d:
\tp3.jpg');
i=rgb2gray(s);
i=double(i);
j=fft2(i);
k=fftshift(j);%直流分量移到频谱中心
I=log(abs(k));%对数变换
m=fftshift(j);%直流分量移到频谱中心
RR=real(m);%取傅里叶变换的实部
II=imag(m);%取傅里叶变换的虚部
A=sqrt(RR.^2+II.^2);
A=(A-min(min(A)))/(max(max(A)))*255;
b=circshift(s,[800450]);
b=rgb2gray(b);
b=double(b);
c=fft2(b);
e=fftshift(c);
I=log(abs(e));
f=fftshift(c);
WW=real(f);
ZZ=imag(f);
B=sqrt(WW.^2+ZZ.^2);
B=(B-min(min(B)))/(max(max(B)))*255;
subplot(2,2,1);imshow(s);title('原图像');
subplot(2,2,2);imshow(uint8(b));title('平移图像');
subplot(2,2,3);imshow(A);title('离散傅里叶变换频谱');
subplot(2,2,4);imshow(B);title('平移图像离散傅里叶变换频谱');
结果如图1.3所示:
4.对实验任务4的实现代码如下:
s=imread('d:
\tp3.jpg');
i=rgb2gray(s);
i=double(i);
j=fft2(i);
k=fftshift(j);
I=log(abs(k));
m=fftshift(j);
RR=real(m);
II=imag(m);
A=sqrt(RR.^2+II.^2);
A=(A-min(min(A)))/(max(max(A)))*255;
b=imrotate(s,-90);
b=rgb2gray(b);
b=double(b);
c=fft2(b);
e=fftshift(c);
I=log(abs(e));
f=fftshift(c);
WW=real(f);
ZZ=imag(f);
B=sqrt(WW.^2+ZZ.^2);
B=(B-min(min(B)))/(max(max(B)))*255;
subplot(2,2,1);imshow(s);title('原图像');
subplot(2,2,2);imshow(uint8(b));title('平移图像');
subplot(2,2,3);imshow(A);title('离散傅里叶频谱');
subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱');
结果如图1.4所示:
1.4:
结果分析
对MATLAB软件的制作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,学会了imread(),imshow(),rgb2gray()等函数。
.
实验二:
图像的灰度变换和直方图变换
2.1:
实验追求
1、熟悉及掌握图像的采样原理,实现图像的采样过程,进行图像的灰度转换。
2、理解直方图的概念及应用,实现图像直方图的显示,及通过直方图均衡对图像进行修正。
2.2:
实验任务和要求
1、对一幅图像进行2倍、4倍、8倍和16倍减采样,显示结果。
2、显示一幅灰度图像a,改变图像亮度使其整体变暗得到图像b,显示两幅图像的直方图。
3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。
.
4、对一副图像进行直方图均衡化,显示结果图像和对应直方图。
5、对一副图像进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。
2.3:
实验步骤和结果
1.对实验任务1的实现代码如下:
a=imread('d:
\tp2.jpg');
b=rgb2gray(a);
form=1:
4
figure
[width,height]=size(b);
quartimage=zeros(floor(width/(m)),floor(height/(2*m)));.
k=1;
n=1;
fori=1:
(m):
width
forj=1:
(2*m):
height
quartimage(k,n)=b(i,j);
n=n+1;
end
k=k+1;
n=1;
end
imshow(unit8(quartimage));
end
结果如图所示:
2.对实验任务2的实现代码如下:
a=imread('d:
\tp2.jpg');
c=rgb2gray(a);
b=c-46;
subplot(3,2,1);imshow(c);title('原图像')
subplot(3,2,2);imhist(c);title('原图像的直方图')
subplot(3,2,3);imshow(b);title('变暗后的图像')
subplot(3,2,4);imhist(b);title('变暗后的图像直方图');
d=imadjust(c,[0,1],[1,0]);
subplot(3,2,5);imshow(d);title('反转图像');
结果如图2.2所示:
3.对实验任务3的实现代码如下:
a=imread('d:
\tp.jpg');
m=imadjust(a,[,],[0.5;1]);%图像变亮
n=imadjust(a,[,],[0;0.5]);%图像变暗
g=255-a;%负片效果
subplot(2,2,1);imshow(a);title('原图像');
subplot(2,2,2);imshow(m);title('图像变亮');
subplot(2,2,3);imshow(n);title('图像变暗');
subplot(2,2,4);imshow(g);title('负片效果');
结果如图所示:
4.对实验任务4的实现代码如下:
b=imread('d:
\tp.jpg');
c=rgb2gray(b);
j=histeq(c);
subplot(2,2,1),imshow(c);
subplot(2,2,2),imshow(j);
subplot(2,2,3),imhist(c);
subplot(2,2,4),imhist(j);
结果如图2.4所示:
5.对实验任务5的实现代码如下:
x1=0:
0.01:
0.125;
x2=0.125:
0.01:
0.75;
x3=0.75:
0.01:
1;
y1=2*x1;
y2=0.25+0.6*(x2-0.125);
y3=0.625+1.5*(x3-0.75);
x=[x1,x2,x3];
y=[y1,y2,y3];
plot(x,y);
结果如图所示:
2.4:
结果分析
这次实验主要是对图像的灰度变换和直方图均衡化,实验内容包括灰度拉伸、图像反转、图像的二值化以及直方图均衡。
通过实验将课本上理论知识加以实践,实验过程中明白了图像处理的一些技巧。
但是以上几种方法采用的基本都是线性变换法,在实际应用中存在很多缺陷。
它只能处理一些黑白分明的图像,而对于一些颜色丰富或者处理比较复杂图像时,往往于心不足。
.
实验三:
图像的平滑处理
3.1:
实验追求
1、熟悉并掌握常见的图像噪声种类。
2、理解并掌握常用的图像的平滑技术,如邻域平均法和中值滤波的原理、特点、适用对象。
3.2:
实验任务和要求
1、读出lena.jpg这幅图像,给这幅图像分别加入椒盐噪声、高斯噪声和乘性噪声后并与前一张图显示在同一图像窗口中。
.
2、对受高斯噪声(模拟均值为0方差为0.02的高斯噪声)干扰的lena图像分别利用邻域平均法和中值滤波进行滤波去噪(窗口可变,可先取3*3,依次再取5*5,7*7),并显示滤波结果。
.
3、对受椒盐噪声(噪声方差为0.02)干扰的lena图像,选择合适的滤波器将噪声滤除。
4、对受乘性噪声(噪声方差为0.02)干扰的lena图像,选择合适的滤波器将噪声滤除。
3.3:
实验步骤和结果
1.对实验任务1的实现代码如下:
>>I=imread('d:
\tp.jpg');
>>i=rgb2gray(I);
>>J=imnoise(i,'gaussian',0,0.02);%高斯噪声
>>K=imnoise(i,'salt&pepper',0.02);%椒盐噪声
>>P=imnoise(i,'speckle',0.02);%乘性噪声
>>subplot(2,2,1);imshow(i);
>>xlabel('原图');
>>subplot(2,2,2);imshow(J);xlabel('高斯噪声');
>>subplot(2,2,3);imshow(K);xlabel('椒盐噪声');
>>subplot(2,2,4);imshow(P);xlabel('乘性噪声');
结果如图3.1所示:
2.对实验任务2的实现代码如下:
>>I=imread('d:
\tp.jpg');
>>i=rgb2gray(I);
>>J=imnoise(i,'gaussian',0,0.02);
>>K=im2double(J);
>>h=fspecial('average');
>>G1=filter2(h,K,'same');
>>G2=medfilt2(K);
>>subplot(2,2,1);imshow
(1);
>>subplot(2,2,1);imshow(i);
>>xlabel('原图');
>>subplot(2,2,2);imshow(J);
>>xlabel('添加高斯噪声');
>>subplot(2,2,3);imshow(G1);
>>xlabel('均值滤波');
>>subplot(2,2,4);imshow(G2);
>>xlabel('中指滤波');
结果如图3.2所示:
3.对实验任务3的实现代码如下:
>>I=imread('D:
\tp.jpg');
>>i=rgb2gray(I);
>>J=imnoise(i,'salt&pepper',0.02);
>>K=im2double(J);
>>h=fspecial('average');
>>G1=filter2(h,K,'same');
>>G2=medfilt2(K);
>>subplot(2,2,1);imshow(i);
>>xlabel('原图');
>>subplot(2,2,2);imshow(J);
>>xlabel('添加椒盐噪声');
>>subplot(2,2,3);imshow(G1);
>>xlabel('均值滤波');
>>subplot(2,2,4);imshow(G2);
>>xlabel('中值滤波');
结果如图3.3所示:
4.对实验任务4的实现代码如下:
>>i=imread('D:
\tp.jpg');
>>I=rgb2gray(i);
>>J=imnoise(I,'speckle',0.02);
>>K=im2double(J);
>>h=fspecial('average');
>>G1=filter2(h,K,'same');
>>G2=medfilt2(K);
>>subplot(2,2,1);imshow(I);
>>xlabel('原图');
>>subplot(2,2,2);imshow(J);
>>xlabel('添加乘性噪声');
>>subplot(2,2,3);imshow(G1);
>>xlabel('均值滤波');
>>subplot(2,2,4);imshow(G2);
>>xlabel('中值滤波');
结果如图3.4所示:
3.4:
结果分析
(1)采用均值滤波器对图像处理能达到去噪的效果,并且一般滤波器的模板越大去噪效果越好,但是应该适中,当模板选择的过大时,处理的效果就会下降,因此我们应该根据具体的要求选择合适的模板来处理图像。
.
(2)采用高斯滤波器对图像处理能达到去噪的效果,与均值滤波器相同,随着所用的滤波器尺寸的增大,图像的细节锐化程度相应降低图像变得模糊起来。
但相较于均值滤波器,其模糊程度较小。
但是高斯滤波同时受到标准差sigma的影响。
.
(3)中值滤波对去除“椒盐”噪声可以起到很好的效果,因为椒盐噪声只在画面中的部分点上随机出现,所以根据中值滤波原理可知,通过数据排序的方法,将图像中未被噪声污染的点代替噪声点的值的概率比较大,因此噪声的抑制效果很好。
中值滤波与均值滤波相比,在去除图像椒盐噪声的同时,还能够保持图像比较清晰的轮廓。
从实验结果可以看出,通过3*3的均值滤波器,图像中的噪声点有明显的消除。
但是3*3的非线性模板中值滤波器上对噪声的滤除效果更完美。
.
实验四:
图像的锐化处理
4.1:
实验追求
1、熟悉并掌握MATLAB图像处理工具箱的使用。
2、理解并掌握常用的图像的锐化技术。
4.2:
实验任务和要求
1、采用三种不同算子对图像进行锐化处理。
2、锐化空间滤波
1)采用3×3的拉普拉斯算子w=[1,1,1;1–81;1,1,1]滤波
2)编写函数w=genlaplacian(n),自动产生任一奇数尺寸n的拉普拉斯算子,如5×5的拉普拉斯算子:
.
w=[11111
11111
11-2411
11111
11111]
3)分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对blurry_moon.tif进行锐化滤波,并利用式
完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。
.
4.3:
实验步骤和结果
1.对实验任务1的实现代码如下:
>>i=imread('d:
\tp.jpg');
>>I=rgb2gray(i);
>>H=fspecial('sobel');
>>I1=filter2(H,I);
>>H=fspecial('prewitt');
>>I2=filter2(H,I);
>>H=fspecial('log');
>>I3=filter2(H,I);
>>subplot(2,2,1);imshow(i);title('原图像');
>>subplot(2,2,2);imshow(I1);title('sobel算子锐化图像');
>>subplot(2,2,3);imshow(I2);title('prewitt算子锐化图像');.
>>subplot(2,2,4);imshow(I3);title('log算子锐化图像');
结果如图所示:
2.对实验任务2的实现代码如下:
1)
>>i=imread('D:
\tp.jpg');
>>I=rgb2gray(i);
>>T=double(I);
>>subplot(1,2,1),imshow(T,[]);
>>w=[1,1,1;
1,-8,1;
1,1,1];
>>K=conv2(T,w,'same');
>>subplot(1,2,2),imshow(K,[]);
>>title('LalacianTransformation');
结果如图所示:
2)
functionw=genlaplacian(n)
w=ones(n);
x=ceil(n/2);
w(x,x)=-1*(n*n-1);
end
3)w1=genlaplcaian(5);
I=imread(‘d:
\tp.jpg’);
T=double(I);
K=conv2(T,w1’same’);
J=T-K;
4.4:
结果分析
通过对数字图像进行锐化处理,可以增强图像的边缘,使模糊的图像变得清晰起来,而以上几种方法都能很好的将图像的边缘变得清晰,但是要在不影响图像整体效果的情况下还是比较困难。
综上所述,根据不同的情况可以需要选用不同的方法。
在边缘检测中,常用的一种模板是Sobel算子。
Sobel算子有两个,一个是检测水平边缘的。
另一个是检测垂直边缘的。
与Prewitt算子相比,Sobel算子对于象素的位置的影响做了加权,可以降低边缘模糊程度,因此效果更好。
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- zl 数字图像 处理 实验 报告 926