MATLAB图像处理模块心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB图像处理模块学习心得
【摘要】
通过学习MATLAB后,深刻体会到MA TLAB是一款基于矩阵数学运算的仿真综合处理软件,图像处理模块是在Simulink 的基础上,对图像进行了处理。主要功能模块既是Simulink .可以应用于航空,国防,影像通讯等各个图像处理应用方面。
Image Processing Toolbox 提供了很多高层次的图像处理函数,这些函数包括排列、变换和锐化等操作,同样利用这些函数能够完成裁减图像和尺寸变换等操作。
图像处理模块其中运用了许多图像处理原理,利用matlab的设计理念,用矩阵的运算出发,对图像进行处理,其中涵盖很广,内容涉及全面,能使我们对图像处理技术有一个更加深刻的认识,从本质出发看待问题。
下面让我总结下在学习MATLAB图像处理模块中体会到的一些心得,以及一些经验。【关键词】图像处理;计算原理;MA TLAB;2值形态学。
灰度的变换与增强
为什么要进行图像啊的增强变换呢?
一般来说图像增强是数字图像处理的一种常用方法,为了让我们改善视觉效果亦有利于去分析一副图像,而特意去加强这个图像的某一个特征,某一个方面。例如:图像信号变弱会使得人们无法看清楚图像的细节,而采用增强对比的方法,改善图像质量使图像更清晰些。图像的噪声干扰也会使图像的细节变差,我们就可以用平滑技术可以减少这个危害。
什么是图形的灰度呢?
我们在MA TLAB中,图像时按照像素储存的,由于MA TLAB的运算原理就是执行矩阵运算,这就给了我们图形处理一个极大的方便。MATLAB中的数字图像由一个或多个矩阵表示,比如,我们常见的真彩图像,真彩图像就是RGB图像,这种图像具有高像素,真实性高,误差小。通过学习后,我得知它在我们的MA TLAB中就是以一个三维矩阵储存的,该矩阵的每一维代表了一种颜色,一副200行300列的RGB图像就需要一个200×300×3的一个矩阵来表示。
RGB图像的意思就是 red green bule的意思是每个字母的缩写,它是有三种颜色的组合来合成任意的色彩,这里是光的合成原理。
例如我所说的的三维矩阵
Matrix1(red)
0.34340.3123 0.4534 0.1234….
0.34350.3456 0.7876 0.9087….
………. ….
Matrix2(green)
0.6676 0.7876 0.3245 0.9087….
0.34360.3123 0.4534 0.1234….
…. …. ….. …..
Matrix3(bule)
0.8765 0.5435 0.1234 0.6643….
0.7865 0.3432 0.4324 0.7866….
…. ….. ….. …..
三维矩阵
灰度图像就是只有强度信息,而没有色彩信息的图像,你可以简单叫他黑白图像。在数字图像技术还不完善的时候,很多图像都是以灰度图像的形式处理的。刚才所说,由于灰度图像只是一个光线的强度信息,在MATLAB中的就是用一个矩阵来储存的。矩阵中的每一个值都代表对应相应位置的像素的灰度值。
图1 经过灰度处理的后的图像
在教材中,是运用contrast adjustment(对比度灰度调节模块)进行的调整。
平滑处理
这里首先介绍一些函数
Image是MATLAB提供的最原始的图像显示函数,学习它后知道它是这样使用的:image(x);colormap(map);
使用原理:把当前的数字图像转换成MA TLAB语言——矩阵。此类的还有一些函数,比如imagesc是一个与image差不多的函数但它可以自动调整值域范围,教材中的函数都是用的imagesc;imshow—显示,colorbar显示颜色条等等
什么事平滑处理呢?
平滑技术就是用于平滑图像中的噪声,基本方法就是求灰度的平均值,这样既平滑了噪声又保护了信号。常用方法去噪:线性滤波中值滤波自适应滤波三种方法,教材中所用到的就是线性滤波,用到模块——Median Filter。
下图就是通过教材所述方法所得的前后图像对比,通过对比我们发现,图像前后的平滑度有了显著的改善,经过处理后的图像明显具有连续,柔和的特点。这就是因为它平衡了前后灰度的结果。
图2 经过平滑处理后的图像对比
图像的几何变换
在现实中处理图像的经验告诉我们,我们在研究一个图像时候,往往只对其中的某一部分信息进行分析,而忽略了很多其他非重要信息,图像理解是图像处理的一个重要的内容,通过MATLAB对图像进行形态上的处理。即是对图形进行几何变换。
通过对MA TLAB的学习,尤其是对函数的学习后,我体会到,只要是缩放,旋转都要对图像进行插值处理,插值的好坏直接影响到了你做出图像的水平,做得不好图像就会严重失真。
在教材提及的模块Resize可以从左边对图像进行缩放处理,该方法简单,若果用函数就得利用插值函数,缩放插值函数imresize来实现图形的放大或缩小。在MATLAB中如果要对一幅图像进行旋转处理,可以直接用模块Rotate,这个模块的功能就是用方便的手段直接调节图像的旋转角度。如果用函数写入,又必须用插值函数imrotate这个函数中插入你想要的角度,就可以得到你想要的旋转效果。这两者实际上都是用的一个原理,只不过后者用函数的形式写出,我介绍一下它的用法和格式
I=imread(‘eight.tif’)
I=imrotate(I,30,’bilinear,’’crop’);
Inshow(I);
语句解释:I就是所操作的图像,imrotate函数对其进行插值处理,插入的角度就是30度bilinear是双线性插值的意思,处理双线性插值法,还有一些插值法也有异曲同工的作用,比如,最邻近插值‘nearest’,双三插值函数‘bicubic’根据学习,我发现三种函数的用法都是上面的一种格式。以上语句的开头imread是读入图像,再转换为MATLAB的矩阵格式以进行后面的运算,末尾Inshow(I)就是显示函数,在前文我已经对其进行说明,这里不再赘述。
图3经过旋转45度后的图像对比
图4经过剪切后图像对比