




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能图像处理与分析识别
《智能图像处理与分析识别》图像预处理技术4.1图像的灰度变换4.2图像的几何变换4.3空间过滤增强4.4形态学处理4.1图像的灰度变换图像灰度变换(Gray-ScaleTransformation,GST)是图像增强的一种重要手段,它常用于改变图像的灰度范围及其分布,使图像的动态范围增大及对比度扩展,是图像数字化及图像显示的重要工具之一。灰度变换的作用是为了改变图像的质量,使图像的显示效果更加清晰,并且有选择地突出图像中感兴趣的特征或者抑制图像中某些不需要的特征,使图像与视觉响应特性相匹配。4.1图像的灰度变换线性灰度变换的变换函数满足:4.1.1线性变换灰度变换4.1图像的灰度变换4.1.1线性变换在Matlab环境中,采用函数imadjust()对图像进行灰度值线性变换,常用语法有:J=imadjust(I)J=imadjust(I,[low_inhigh_in],[low_outhigh_out])J=imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma)4.1图像的灰度变换I=imread('mengwa.jpg');%载入图像I1=rgb2gray(I);figure,imshow(I1);%显示图像figure,imhist(I1);xlim([0255]);%规定横纵坐标ylim([010000]);xlim([0255]);ylim([010000]);%将图像通过线性变换映射到0~255之间J=imadjust(I1,[0.3,0.7]);%对灰度图像进行线性变换figure,imshow(J);figure,imhist(J);xlim([0255]);ylim([010000]);4.1.1线性变换【代码示例】:不同的分段线性变换4.1.1线性变换4.1图像的灰度变换4.1.2分段线性变换在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸分段线性灰度变换4.1图像的灰度变换4.1.2分段线性变换通过调整折线拐点的位置以及控制分段直线的斜率,可以实现对任意灰度区间的扩展和压缩不同的分段线性变换4.1图像的灰度变换4.1.3灰度对数变换对数变换不是对图像的整个灰度范围进行扩展,而是有选择地对低灰度值范围进行扩展,其他范围的灰度值则有可能被压缩,也就是说它主要用来将图像暗的部分进行扩展,而将亮的部分进行抑制。4.1图像的灰度变换4.1.3灰度对数变换I=imread('mengwa2.jpg');%载入图像figure,imshow(I)J=double(I);J=40*(log(J+1));H=uint8(J);%将图像数组转换成uint8类型,即8位图figure,imshow(H)figure,imhist(I);figure,imhist(H);4.1图像的灰度变换灰度对数变换【代码示例】:4.1.4直方图均衡化直方图均衡化是一种图像对比度增强技术,它可以改变图像整体偏暗或偏亮,或灰度层次不丰富的情况,使得到的直方图占据整个灰度范围且均匀分布。直方图均衡化通过使用累积函数对灰度值进行“调整”以实现对比度的增强,
直方图均衡化映射函数为:N
是图像的像素总数,
nk是图像中第k个灰度级的像素总数,fk为原图第k个灰度级的灰度值,gk为均衡化后第k个灰度级的灰度值。
4.1图像的灰度变换4.1.4直方图均衡化实现步骤:原始图像的灰度情况进行统计分析,并计算出原直方图分布然后根据计算出的累计直方图分布求出到的灰度映射关系。重复上述步骤得到原图像所有灰度级到目标图像灰度级的映射关系根据上述映射关系对原图像各点像素进行灰度转换
4.1图像的灰度变换4.1.4直方图均衡化Matlab中采用histeq()函数对图像进行均衡化处理,调用形式如下:I=imread('mengwa.jpg');%载入原始图像I1=rgb2gray(I);figure,imshow(I1);hgram=[0:255];%规定化函数J=histeq(I1,hgram);%直方图均衡化figure,imshow(J);figure,imhist(I1,256);
figure,imhist(J,256);
图像直方图均衡化4.1图像的灰度变换《智能图像处理与分析识别》图像预处理技术4.1图像的灰度变换4.2图像的几何变换4.3空间过滤增强4.4形态学处理4.2图像的几何变换图像几何变换是指用数学建模的方法来描述图像位置、大小、形状等变化的方法,通过对变形的图像进行几何校正,可以得出准确的图像。图像几何变换只改变像素所在的几何位置,而不改变图像的像素值。平移旋转镜像比例缩放插值4.2图像的几何变换4.2.1平移图像的平移是几何变换中最简单的变换之一,是将一幅图像上的所有点都按照给定的偏移量在水平方向沿x轴、在垂直方向沿y轴移动。发生平移时,遵循以下公式:4.2图像的几何变换I=imread('mengwa.jpg');%载入原图figure,imshow(I);se=translate(strel(1),[4040]);%向右向下平移40个像素J=imdilate(I,se);figure,imshow(J);4.2.1平移原图平移图像【代码示例】:4.2图像的几何变换4.2.2旋转图像旋转变换是指以图像的中心为原点,将图像中的所有像素(即整幅图像)旋转一个相同角度。4.2图像的几何变换4.2.2旋转Matlab中采用imrotate()函数对图像进行旋转操作,调用形式如下:B=imrotate(A,angle)B=imrotate(A,angle,method)B=imrotate(A,angle,method,bbox)A是旋转的图像矩阵,angle是旋转角度,-45是顺时针。method是插值的方法(如,nearest,bilinear,bicubic,注意:要打单引号,‘nearest’)。bbox是指旋转后的显示方式(两种:crop,旋转后的图像跟原图像大小一样,超过边框的舍去;loose,旋转后的图像不变,随框大小而变化)。4.2图像的几何变换4.2.2旋转I=imread('mengwa.jpg’)%载入原图figure,imshow(I);J1=imrotate(I,45);%将图像旋转45°J2=imrotate(I,90);%将图像旋转90°J3=imrotate(I,135);%将图像旋转135°figure,imshow(J1);figure,imshow(J2);figure,imshow(J3);原图旋转45度旋转90度旋转135度【代码示例】:4.2图像的几何变换4.2.3镜像图像的镜像变换不改变图像的形状。图像的水平镜像操作是将图像的左半部分和右半部分以图像垂直中轴线为中心镜像进行对换;图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线镜像进行对换。可以单个像素进行镜像,也可以利用位图存储的连续性进行整行复制。水平镜像垂直镜像4.2图像的几何变换4.2.3镜像I=imread('mengwa.jpg');figure,imshow(I);[R,C,color]=size(I);J=zeros(R,C,color);fori=1:Rforj=1:Cx=i;y=C-j+1;J(x,y,:)=I(i,j,:);endendfigure,imshow(uint8(J));原图镜像图像【代码示例】:4.2图像的几何变换4.2.4比例放缩图像比例缩放(imagescaling)是指对数字图像的大小进行调整的过程。图像缩放需要在处理效率以及结果的平滑度和清晰度上做一个权衡。图像的缩放操作将会改变图像的大小,产生的图像中的像素可能在原图中找不到相应的像素点,这样就必须进行近似处理。一般的方法是直接赋值为和它最相近的像素值,也可以通过一些插值算法来计算。4.2图像的几何变换4.2.4比例放缩Matlab中采用imresize()函数对图像进行缩放处理,其常用的调用格式如下:B=imresize(A,scale)B=imresize(A,[numrowsnumcols])scale大于1,则放大图像;scale小于1,缩小图像。numrows和numcols分别指定目标图像的高度和宽度。4.2图像的几何变换4.2.4比例放缩I=imread('mengwa1.jpg');%载入原图figure,imshow(I);J1=imresize(I,2);%缩放J2=imresize(I,0.5);figure,imshow(J1);figure,imshow(J2);【代码示例】:4.2图像的几何变换4.2.5插值图像插值是图像处理中较常用的一种提高分辨率的方法,它利用已知邻近像素点的灰度值(或RGB图像中的三色值)来产生未知像素点的灰度值,以便由原始低分辨图像再生出具有更高分辨率的图像。(1)最近邻插值将一张M×N的图像I放大为m×n的图像J,则图像I中任一点(i,j)的映射到图像J的坐标(x,y),类比相似三角形的相似性质计算图像J中坐标(x,y)的像素值为:4.2图像的几何变换4.2.5插值(2)双线性插值该方法中输出像素的值是它在输入图像中2×2的邻域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。(3)双三次插值该插值的邻域大小为4×4,它的插值效果比较好,但相应的计算量较大。4.2图像的几何变换4.2.5插值在Matlab中提供的图像缩放函数imresize()可以实现对图像的缩放,在使用该函数时,可以选择图像缩放所采用的插值方法。其调用形式如下:B=imresize(A,scale,method)'nearest':这个参数也是默认的,即改变图像尺寸时采用最近邻插值算法;'bilinear':采用双线性插值算法;'bicubic':采用双三次插值算法;4.2图像的几何变换4.2.5插值I=imread('mengwa1.jpg');%载入原图figure,imshow(I);J1=imresize(I,1.5,'nearest');%最近邻插值缩放J2=imresize(I,1.5,'bilinear');%双线性插值缩放J3=imresize(I,1.5,'bicubic');%双三次插值缩放figure,imshow(J1);figure,imshow(J2);figure,imshow(J3);【代码示例】:4.2图像的几何变换4.2.5插值原图最近邻插值放大双线性插值放大双三次插值放大《智能图像处理与分析识别》图像预处理技术4.1图像的灰度变换4.2图像的几何变换4.3空间过滤增强4.4形态学处理4.3空间滤波增强空间滤波器是由一个邻域(通常是较小的矩形),对该邻域所包围图像像素执行的预定义操作组成。滤波产生一个新像素,新像素的坐标等于邻域中心的坐标,像素的值是滤波操作的结果。滤波后的像素值通常会赋给新创建图像中的对应位置,以容纳滤波的结果。均值滤波中值滤波对比度增强使用大小为3×3的滤波器模板的线性空间滤波机理4.3.1空间滤波机理4.3空间滤波增强4.3.2均值滤波均值滤波法也叫邻域平均法,是一种局部空间域处理的算法,邻域平均法具有良好的噪声平滑效果,是最简单的一种平滑方法。f(i,j)为图像信号h(i,j)为噪声S为点(x,y)邻域内的点集4.3空间滤波增强4.3.2均值滤波在Matlab图像处理工具箱中提供了fspecial()函数用来创建预定义的滤波器模板,并提供了filter2()函数用指定的滤波器模板对图像进行均值滤波运算。filter2()的调用格式为:Y=filter2(h,X);Y=filter2(h,X,shape);h为指定的滤波器模板X为原始图像。Y为滤波后的图像。4.3空间滤波增强4.3.2均值滤波I=imread('mengwa1.jpg');%载入图像I1=rgb2gray(I);J=imnoise(I1,'salt&pepper',0.02);%添加椒盐噪声K1=filter2(fspecial('average',3),J)/255;%进行3×3模板均值滤波(默认值)K2=filter2(fspecial('average',5),J,'full')/255;%进行5×5模板均值滤波K3=filter2(fspecial('average',7),J,'same')/255;%进行7×7模板均值滤波K4=filter2(fspecial('average',9),J,'valid')/255;%进行9×9模板均值滤波4.3空间滤波增强【代码示例】:4.3空间滤波增强4.3.2均值滤波灰度图
3×3均值滤波加噪声图像5×5均值滤波7×7均值滤波9×9均值滤波4.3.3中值滤波中值滤波法也是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。4.3空间滤波增强中值滤波法是一种减少边缘模糊的非线性平滑技术,在一定条件下,可以克服邻域平均所带来的图像细节模糊,能保存完整的边缘信息,而且能对滤除脉冲干扰及图像扫描噪声最为有效。4.3.3中值滤波4.3空间滤波增强在Matlab图像处理工具箱中提供了medfilt2()函数用指定的滤波器模板对图像进行中值滤波运算。medfilt2()的调用格式为:J=medfilt2(I);J=medfilt2(I,[mn]);J=medfilt2(___,padopt);4.3空间滤波增强I=imread('mengwa1.jpg');I1=rgb2gray(I);figure,imshow(I1);%title('灰度图','fontsize',14)J=imnoise(I1,'salt&pepper',0.02);figure,imshow(J);%title('加噪声图像','fontsize',14)K1=medfilt2(J,[3,3]);%进行3×3模板中值滤波(默认)K2=medfilt2(J,[5,5]);%进行5×5模板中值滤波K3=medfilt2(J,[7,7]);%进行7×7模板中值滤波K4=medfilt2(J,[9,9]);%进行9×9模板中值滤波figure,imshow(K1);%title('3×3中值滤波','fontsize',14)figure,imshow(K2);%title('5×5中值滤波','fontsize',14)figure,imshow(K3);%title('7×7中值滤波','fontsize',14)figure,imshow(K4);%title('9×9中值滤波','fontsize',14)【代码示例】:4.3空间滤波增强灰度图
3×3中值滤波加噪点图像5×5中值滤波7×7中值滤波9×9中值滤波4.3.3中值滤波《智能图像处理与分析识别》图像预处理技术4.1图像的灰度变换4.2图像的几何变换4.3空间过滤增强4.4形态学处理4.4形态学处理形态学,即数学形态学(MathematicalMorphology),是图像处理中应用最为广泛的技术之一。其主要应用是从图像中提取对于表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质的形状特征,如边界和连通区域等;同时图像细化、像素化和修剪毛刺等技术也常常应用于图像的预处理和后处理中,成为图像增强技术的有力补充。4.4形态学处理4.4.1腐蚀腐蚀运算的基本过程是,把结构元素作为一个卷积模板,遍历原图像的每个像素,然后用结构元素的中心点对准当前正在遍历的像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最小值,用最小值替换当前像素值。4.4形态学处理Matlab中和腐蚀相关的两个常用函数为imerode()和strel()(1)imerode函数用于完成图像腐蚀,其常用调用形式如下: J=imerode(I,SE)(2)strel()函数可以为各种常见形态学运算生成结构元素SE,当生成二值形态学使用的结构元素时,其调用形式入下。 SE=strel(shape,parameters)4.4.1腐蚀4.4形态学处理I=imread('jianzhiYFFS.jpg');I1=rgb2gray(I);figure,imshow(I1);%title('灰度图','fontsize',14)se1=strel('disk',1);%生成圆形结构元素,半径r=1se2=strel('disk',2);%生成圆形结构元素,半径r=2se3=strel('disk',3);%生成圆形结构元素,半径r=3J1=imerode(I1,se1);%用生成的结构元素对图像进行腐蚀J2=imerode(I1,se2);J3=imerode(I1,se3);figure,imshow(J1);%title('腐蚀r=1','fontsize',14)figure,imshow(J2);%title('腐蚀r=2','fontsize',14)figure,imshow(J3);%title('腐蚀r=3','fontsize',14)【代码示例】:4.4形态学处理4.4.1腐蚀4.4形态学处理4.4.1膨胀膨胀运算的基本过程是,把结构元素作为一个卷积模板,遍历原图像的每个像素,然后用结构元素的中心点对准当前正在遍历的像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最大值,用最大值替换当前像素值。4.4形态学处理4.4.2膨胀在Matlab中和膨胀相关的俩个常用函数为imdilate()和strel()。imdilate函数用于完成图像膨胀,其常用调用形式如下:J=imdilate(I,SE);参数说明:
I为原始图像,可以是二值或灰度图像(对应于灰度膨胀)。
SE是由strel()函数返回的自定义或者预设的结构元素对象。
J为膨胀后的输出图像。4.4形态学处理I=imread('jianzhiYFFS.jpg');%载入图像se1=strel('disk',1);%生成圆形结构元素,半径r=1se2=strel('disk',2);%生成圆形结构元素,半径r=2se3=strel('disk',3);%生成圆形结构元素,半径r=3I1=rgb2gray(I);%转化为灰度图figure,imshow(I1);%title('灰度图','fontsize',14)J1=imdilate(I1,se1);%用生成的结构元素对图像进行膨胀J2=imdilate(I1,se2);J3=imdilate(I1,se3);figure,imshow(J1);%title('膨胀r=1','fontsize',14)figure,imshow(J2);%title('膨胀r=2','fontsize',14)figure,imshow(J3);%title('膨胀r=3','fontsize',14)【代码示例】:4.4形态学处理4.4.2膨胀4.4形态学处理4.4.3开运算先对图像进行腐蚀运算,再进行膨胀运算,称为开运算。一般来说,开运算使图像的轮廓变得光滑,断开狭窄的连接和消除细毛刺。Matlab中直接提供了开运算函数imopen(),调用形式如下: J=imopen(I,SE);参数说明:
I为原始图像,可以是二值或灰度图像。
SE是由strel()函数返回的自定义或者预设的结构元素对象。
J为开运算后的输出图像。4.4形态学处理4.4.3开运算I=imread('jianzhiYFFS1.jpg');figure,imshow(I);%title('原图','fontsize',14);I1=im2bw(I,0.55);%二值化figure,imshow(I1);%title('二值图','fontsize',14);se=strel('disk',1);%采用半径为1的圆作为结构元素se=strel('disk',3);%采用半径为3的圆作为结构元素J=imopen(I1,se);%开启操作figure,imshow(J);%title('开运算图像','fontsize',14);【代码示例】:4.4形态学处理4.4.3开运算4.4形态学处理4.4.4闭运算先对图像进行膨胀运算,再进行腐蚀运算,称为闭运算。闭运算同样使轮廓变得光滑,但与开运算相反,它通常能够弥合狭窄的间断。Matlab中直接提供了闭运算函数imclose(),其调用形式如下:
J=imclose(I,SE);参数说明:
I为原始图像,可以是二值或灰度图像。
SE是由strel()函数返回的自定义或者预设的结构元素对象。
J为闭运算后的输出图像。4.4形态学处理I=imread('jianzhiYFFS1.jpg');figure,imshow(I);%title('原图','fontsize',14)I1=im2bw(I);%二值化figure,imshow(I1);%title('二值图','fontsize',14)se=strel('disk',1);%采用半径为1的圆作为结构元素J=imclose(I1,se);%闭合操作figure,imshow(J);%title('闭运算图像','fontsize',14)【代码示例】:4.4形态学处理4.4.4闭运算4.4形态学处理4.4.5细化图像处理中物体的形状信息是十分重要的,为了便于描述和抽取图像特定区域的特征,对那些表示物体的区域通常需要采用细化算法处理,得到与原来物体区域形状近似的由简单的弧或曲线组成的图形,这些细线处于物体的中轴附近,这就是所谓的图像的细化。4.4形态学处理4.4.5细化Matlab中直接提供了细化运算函数bwmorph()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育机构网络课程版权分成协议
- 顶级游艇配备智能卫星导航系统租赁协议
- 研发团队竞业限制补偿金支付及项目交接协议
- 现代智能家居智能门锁云管理合作协议
- 司法鉴定机构合伙人业务培训与发展协议
- 目标管理理论体系框架
- 人体组织管理员工培训计划
- 《智能康复助手》课件
- 《智能交通管理与安全技术课件》
- 创业公司高效入职培训体系设计
- 2025年智慧城市建设相关知识考试试卷及答案
- (三模)合肥市2025届高三年级5月教学质量检测英语试卷(含答案)
- 2025年采煤机司机技能比赛理论考试题库(共400题含答案)
- 中国网络广告行业十四五发展分析及投资前景与战略规划研究报告2025-2028版
- 2024-2025学年福建省泉州市晋江市安海中学等五校七年级(下)期中数学试卷
- 2025-2030中国建筑智能化工程行业市场发展分析及发展趋势前景研究报告
- 和医院签运营合同协议
- 2025-2030有机肥料产业市场深度调研及发展趋势与投资前景研究报告
- 2025年人教版小学五年级下册奥林匹克数学竞赛测试卷(附参考答案)
- 2024年高考数学真题(北京卷)试题试卷原卷答案解析
- 2025年安全生产月主题培训课件:如何查找身边安全隐患
评论
0/150
提交评论