数字图像处理预热(一)
图像增强
直方图均衡化的MATLAB实现
imhist函数
功能:计算和显示图像的色彩直方图。
格式:
imhist(I,n);
% n为指定的灰度级数目,缺省值为256;
imhist(X,map);% 计算和显示索引色图像X的直方图,map为调色板
imcontour函数
功能:显示图像的等灰度值图。
格式:
imcontour(I,n);
imcontour(I,v);
% n为灰度级个数,v是由用户指定所选的等灰度级向量
imadjust函数
功能:通过直方图变换调整对比度。
格式:
J=imadjust(I,[low,high],[bottom,top],gamma);
newmap=imadjust(map,[low,high],[bottom,top],gamma);
% gamma为校正量r,[low,high]为原图像中要变换的灰度范围;
% [bottom,top]指定了变换后对的灰度范围
% 若[low,high]和[bottom,top]都为2*3矩阵,则分别调整R、G、B
% 三个分量
histeq函数
功能:直方图均衡化。
格式:
J=histeq(I,hgram);
J=histeq(I,n);
[J,T]=histeq(I,...);
newmap=histeq(X,map,hgram);
newmap=histeq(X,map);
[new,T]=histeq(X,...);
% J=histeq(I,hgram)实现了所谓“直方图规定化”,即将原是图像I的直方图变换
% 成用户指定的向量hgram,其中的每一个元素都在[0,1]中;
% J=histeq(I,n);指定了均衡化后的灰度级数n,缺省值为64;
% [J,T]=histeq(I,...);返回从能将图像I的灰度直方图变换成图像J的直方图的变换T;
% newmap=histeq(X,map);
% [new,T]=histeq(X,...)是针对索引色图像调色板的直方图均衡。
噪声
J=imnoise(I,type);
J=imnoise(I,type,parameter);
% J=imnoise(I,type)返回对图像I添加典型噪声后的有噪图像J,参数type和
% parameter用于确定噪声的类型和相应的参数。
图像滤波
conv2函数
功能:计算二维卷积。
C=conv2(A,B);
C=conv2(Hcol,Hrow,A);
C=conv2(...,'shape');
说明:对于C=conv2(A,B),conv2计算矩阵A和B的卷积,若[Ma,Na]=size(A),[Mb,Nb]=size(B),则size©=[Ma+Mb-1,Na+Nb-1];
C=conv2(Hcol,Hrow,A)中,矩阵A分别与Hcol向量在列方向和Hrow向量在行方向上进行卷积;
C=conv2(…,‘shape’);用来指定conv2返回二维卷积结果部分,参数shape可取值如下:
full为缺省值,返回二维卷积的全部结果;
same返回二维卷积结果中与A大小相同的中间部分;
valid返回在卷积过程中,未使用边缘补0部分进行计算的卷积结果部分,当size(A)>size(B)时,size©=[Ma-Mb+1,Na-Nb+1]
conv函数
功能:计算多维卷积。
格式与conv2函数相同。
filter2函数
功能:计算二维线性数字滤波,它与函数fspecial连用
Y=filter2(B,X);
Y=filter2(B,X,'shape');
说明:对于Y=filter2(B,X),filter2使用矩阵B中的二维FIR滤波器对数据X进行滤波,结果Y是通过二维互相关计算出来的,其大小与X一样;对于Y=filter2(B,X,‘shape’),返回的Y是通过二维互相关计算出来的,其大小由参数shape确定,其取值如下:
‘full’:返回二维相关的全部结果,size(Y)>size(X);
‘same’返回二维互相关结果的中间部分,Y与X大小相同;
'valid’返回在二维互相关过程中,未使用边缘补0部分进行计算的结果部分,有size(Y)<size(X)。
fspecial函数
功能:产生预定义滤波器。
H=fspecial(type);
H=fspecial('gaussian',n,sigma);% 高斯低通滤波器
H=fspecial('sobel');%sobel水平边缘增强滤波器
H=fspecial('prewitt');% Prewitt水平边缘增强滤波器
H=fspecial('laplacian',alpha);%近似二维拉普拉斯运算滤波器
H=fspecial('log',n,sigma);%高斯拉普拉斯运算滤波器
H=fspecial('average',n);%均值滤波器
H=fspecial('unsharp',alpha);%模糊对比增强滤波器
说明:对于形式H=fspecial(type),函数产生一个由type指定的二维滤波器H,返回的H常与其它滤波器搭配使用。
彩色增强
imfilter函数
功能:真彩色增强。
B=imfilter(A,h);
说明:将原始图像A按照指定的滤波器h进行滤波增强处理,增强后的图像B与A的尺寸和类型相同。