#基于matlab的数字图像处理Word下载.docx
《#基于matlab的数字图像处理Word下载.docx》由会员分享,可在线阅读,更多相关《#基于matlab的数字图像处理Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
Imshow函数用于显示工作区或图像文件中的图像,在显示的同时可控制部分效果,常用的调用形式如下。
Imshow(I,[lowhigh],param1,value1,param2,value2,...);
Imshow(I,MAP);
Imshow(filename);
二.灰度直方图的使用
Matlab中的imhist函数可以进行图像的灰度直方图运算,调用语法如下。
imhist(I);
imhist(I,n);
[counts,s]=imhist(...);
4.一般直方图
下面使用了Matlab中的一张内置示例图片演示灰度直方图的生成和显示,程序如下。
I=imread('
pout.tif'
);
figure;
imshow(I);
title('
Source'
imhist(I);
Histogram'
上述程序的运行结果如图所示。
5.归一化直方图
在imhist函数的返回值中,counts保存了落入每个区间的像素个数,通过计算counts和图像中像素总数的商可以得到归一化直方图。
绘制有32个灰度区间的归一化直方图的Matlab程序如下。
[M,N]=size(I);
[counts,x]=imhist(I,32);
counts=counts/M/N;
stem(x,counts);
三.图像增强的练习:
3.1空间域图像增强
3.1.1线性平滑滤波器
例题:
对一个图像进行不同大小模板的均值滤波,并比较结果。
eight.tif'
J=imnoise(I,'
salt&
pepper'
0.02);
subplot(2,2,1)
imshow(J);
噪声图像'
K1=filter2(fspecial('
average'
3),J)/255;
K2=filter2(fspecial('
5),J)/255;
K3=filter2(fspecial('
7),J)/255;
subplot(2,2,2)
imshow(K1);
3x3模板均值滤波'
subplot(2,2,3)
imshow(K2);
5x5模板均值滤波'
subplot(2,2,4)
imshow(K3);
7x7模板均值滤波'
其显示结果如图所示。
3.1.2非线性平滑滤波器
对一个图像实现不同模板的中值滤波,并比较结果。
K1=medfilt2(J,[33]);
K2=medfilt2(J,[55]);
K3=medfilt2(J,[77]);
3x3模板中值滤波'
5x5模板中值滤波'
7x7模板中值滤波'
3.1.3线性锐化滤波器
对图像pout.tif进行线性高通滤波。
h=fspecial('
laplacian'
I2=filter2(h,I);
subplot(1,2,1);
原始图像'
subplot(1,2,2);
imshow(I2);
滤波后图像'
3.1.4非线性锐化滤波器
sobel算子,prewitt算子,log算子对图像滤波。
cameraman.tif'
subplot(2,2,1);
h1=fspecial('
sobel'
I1=filter2(h1,I);
subplot(2,2,2);
imshow(I1);
sobel算子滤波'
prewitt'
subplot(2,2,3);
prewitt算子滤波'
log'
subplot(2,2,4);
log算子滤波'
3.2频域图像增强
3.2.1低通滤波
对图像eight.tif加入椒盐噪声后,实现Butterworth低通滤波。
clear
I1=imread('
I2=imnoise(I1,'
f=double(I2);
g=fft2(f);
g=fftshift(g);
[N1,N2]=size(g);
n=2;
d0=50;
n1=fix(N1/2);
n2=fix(N2/2);
fori=1:
N1
forj=2:
N2
d=sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+0.414*(d/d0)^(2*n));
result1(i,j)=h*g(i,j);
if(g(i,j)>
50)
result2(i,j)=0;
else
result2(i,j)=g(i,j);
end
end
result1=ifftshift(result1);
result2=ifftshift(result2);
X2=ifft2(result1);
X3=uint8(real(X2));
imshow(X3);
Btterworth滤波图像'
X4=ifft2(result2);
X5=uint8(real(X4));
imshow(X5);
理想低通滤波图像'
3.2.2高通滤波
对图像eight.tif实现Butterworth高通滤波。
ifd==0
h=0;
h=1/(1+(d0/d)^(2*n));
if(g(i,j)<
理想高通滤波图像'
四.图像的几何变换
4.1图像平移
程序:
functionI_out=imMove(I,Tx,Ty)
tform=maketform('
affine'
[100;
010;
TxTy1]);
I_out=imtransform(I,tform,'
XData'
[1size(I,2)],'
YData'
[1size(I,1)]);
subplot(1,2,1),imshow(I);
原图像'
subplot(1,2,2),imshow(I_out);
平移图像'
其中I=imread('
4.2图像镜像
A=imread('
[height,width,dim]=size(A);
[-100;
width01]);
B=imtransform(A,tform,'
nearest'
tform2=maketform('
0-10;
0height1]);
C=imtransform(A,tform2,'
subplot(1,3,1),imshow(A);
subplot(1,3,2),imshow(B);
水平镜像'
subplot(1,3,3),imshow(C);
竖直镜像'
4.3图像转置
[010;
100;
001]);
subplot(1,2,1),imshow(A);
subplot(1,2,2),imshow(B);
图像转置'
4.4图像缩放