基于MATLAB的图像处理函数及其用法(精华)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一些图像处理函数用法(精华)
% imshow
imshow是用来显示图片的,如
>> I = imread('moon.tif');
>> figure,imshow(I);
而有时为了数据处理,要把读取的图片信息转化为更高的精度, >> I = double(imread('moon.tif'));
为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8型变成double型。如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。
有两个解决方法:
1> imshow(I/256); -----------将图像矩阵转化到0-1之间
2> imshow(I,[]); -----------自动调整数据的范围以便于显示.
从实验结果看两种方法都解决了问题,但是从显示的图像看,第二种方法显示的图像明暗黑白对比的强烈些!
+++++++++++++++++++++++++++++++++++++++ IMSHOW(I) displays the grayscale image I.
IMSHOW(I,[LOW HIGH]) displays the grayscale image I, specifying the display range for I in [LOW HIGH]. The value LOW (and any value less than LOW) displays as black, the value HIGH (and any value greater than HIGH) displays as white. Values in between are displayed as intermediate shades of gray,using the default number of gray levels.
If you use an empty matrix ([]) for[LOW HIGH], IMSHOW uses [min(I(:)) max(I(:))]; that is, the minimum value in I is displayed as black, and the maximum value is displayed as white.
+++++++++++++++++++++++++++++++++++++++ 图像为y,为何用imshow(uint8(y))和imshow(y,[])时的图像显示结果不同?
回答:
imshow(uint8(y))是按照256级灰度显示y得绝对数据。0表示黑色,255表示白色,y中大于255的值强制为255。
imshow(y,[]),将y中的最小值看作0(black),最大值看作
255(white) -->增加图像的对比度。
所以两者不同。
% padarray
功能:填充图像或填充数组。
用法:B = padarray(A,padsize,padval,direction)
A为输入图像,B为填充后的图像,
padsize给出了给出了填充的行数和列数,通常用[r c]来表示, padval和direction分别表示填充方法和方向。
它们的具体值和描述如下:
padval:'symmetric' 表示图像大小通过围绕边界进行镜像反射来扩展;
'replicate' 表示图像大小通过复制外边界中的值来扩展;
'circular' 图像大小通过将图像看成是一个二维周期函数的一个周期来进行扩展。
direction:'pre' 表示在每一维的第一个元素前填充;
'post' 表示在每一维的最后一个元素后填充;
'both' 表示在每一维的第一个元素前和最后一个元素后填充,此项为默认值。
若参量中不包括direction,则默认值为'both';若参量中不包含padval,则默认用零来填充。若参量中不包括任何参数,则默认填充为零且方向为'both'。在计算结束时,图像会被修剪成原始大小。举例:
A = [1 2; 3 4];
B = padarray(A,[3 2],'replicate','post')
imfinfo
imfinfo函数用于读取图象文件的有关信息,其语法格式为
imfinfo(filename,fmt)
imfinfo函数返回一个结构info,它反映了该图象的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图象的类型等。
imhist
MATLAB图象处理工具箱提供了imhist函数来计算和显示图象的直方图,imhist函数的语法格式为:
imhist(I,n)
imhist(X,map)
其中imhist(I,n)计算和显示灰度图象I的直方图,n为指定的灰度级数目,默认值为256。imhist(X,map)计算和显示索引色图象X的直方图,map为调色板。
例:
I = imread('rice.tif');
imshow(I)
figure, imhist(I)
imadjust —>对比度增强
如果原图象f(x,y)的灰度范围是[m,M],我们希望调整后的图象
g(x,y)的灰度范围是[n,N],那么下述变换就可以实现这一要求。 MATLAB图象处理工具箱中提供的imadjust函数,可以实现上述的