《图像代数运算》PPT课件.ppt

上传人:牧羊曲112 文档编号:5484478 上传时间:2023-07-12 格式:PPT 页数:133 大小:5.62MB
返回 下载 相关 举报
《图像代数运算》PPT课件.ppt_第1页
第1页 / 共133页
《图像代数运算》PPT课件.ppt_第2页
第2页 / 共133页
《图像代数运算》PPT课件.ppt_第3页
第3页 / 共133页
《图像代数运算》PPT课件.ppt_第4页
第4页 / 共133页
《图像代数运算》PPT课件.ppt_第5页
第5页 / 共133页
点击查看更多>>
资源描述

《《图像代数运算》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图像代数运算》PPT课件.ppt(133页珍藏版)》请在三一办公上搜索。

1、第2章数字图像处理的数学基础及相关运算,2.1 线性系统,2.1.1 线性系统分析2.1.2 移不变系统分析,2.1.1 线性系统分析,任何一个实际系统,当给定一个输入信号u(t),则产生相应的输出信号y(t),系统的输入信号与输出信号之间实质上是一种数学运算,可以采用如图2-1所示的模型表示。,图2-1 应用系统模型,2.1.2 移不变系统分析,2.2 调用信号,2.2.1 调谐信号分析2.2.2 对调谐信号的响应分析2.2.3 系统传递函数分析,2.2.1 调谐信号分析,2.2.2 对调谐信号的响应分析,2.2.3 系统传递函数分析,1传递函数的形式,对于线性移不变系统,式(2-15)描述

2、了输入信号与输出信号之间的关系,其中H()称为系统的传递函数。传递函数H()包含了所表示系统的全部特征。,2线性移不变系统对余弦信号的输出,A()为系统的增益因子,代表系统对输入信号的缩放比例。为输出信号的相位,其作用是将调谐输入信号的时间坐标加以平移。综上所述,线性移不变系统具有以下性质:(1)调谐输入产生同频率的调谐输出;(2)系统的传递函数是一个仅依赖于频率的复函数,它包含了系统的全部特征信息;(3)传递函数对调谐输入信号仅产生幅值的缩放和相位的平移。,2.3 卷积和滤波,2.3.1 连续卷积分析2.3.2 离散卷积分析2.3.3 滤波分析,2.3.1 连续卷积分析,2.3.2 离散卷积

3、分析,2.3.3 滤波分析,卷积运算在信号处理和图像处理学科中通常称为滤波。一个线性移不变系统输入和输出之间的关系,既可以采用传递函数进行描述,也可以采用卷积的形式进行描述。也就是说,线性移不变系统的输出可通过输入信号与系统的冲击响应函数h(t)的卷积得到,即,2.4 关联函数,2.4.1 关联函数的定义分析2.4.2 关联与卷积的关系分析,2.4.1 关联函数的定义分析,1自关联函数,2互关联函数,2.4.2 关联与卷积的关系分析,2.5 运算类型,具有代表性的图像处理典型算法从功能上包括以下几种:(1)单幅图像单幅图像(2)多幅图像单幅图像(3)单幅图像或多幅图像数值/符号等,2.6 二维

4、系统,2.6.1 二维线性系统分析2.6.2 二维位置不变线性系统分析2.6.3 二维系统的梯度算子分析,2.6.1 二维线性系统分析,2.6.2 二维位置不变线性系统分析,2.6.3 二维系统的梯度算子分析,1连续系统梯度算子,由于无论是x方向还是y方向,离散系统的坐标值最小增量为1,因而以相邻点之差近似表示梯度分量。,2离散系统梯度算子,2.7 点运算,对于一幅输入图像,若输出图像的每个像素点的灰度值由输入像素来决定,则这样的图像变换称为图像的点运算(point operation),即该点像素灰度的输出值仅是本身灰度的单一函数。,点运算的结果由灰度变换函数(gray-scale tran

5、sformation,GST)确定,即:B(x,y)=A(x,y)式中,A(x,y)是运算前的图像像素值,B(x,y)是点运算后的图像值,是对A(x,y)的一种映射函数,即GST函数。,光度学标定:对光失真光学图像的校正。(例如:图像被非线性的仪器数字化,可以用点运算变换灰度级,使之反映光照强度的等步长增量。)对比度增强:使灰度级由窄变宽。显示标定:显示校正,突出感兴趣的局部特征(例如:如果图像像素的灰度值与屏幕上点的主观亮度呈非线性,就可用点运算校正。)轮廓线:为图像加上轮廓线,对图像阈值化。(例如:根据灰度线划分图像区域、等高线。)裁剪:将灰度级在0255之外的那些值裁剪掉。,点运算的应用

6、,2.7.1 线性点运算分析,当灰度变换GST函数为线性时,即B=(A)=A+,此时的变换称为线性点运算。显然,当=1,=0时,原图像不发生变化;当=1,0时,图像灰度值增加或降低;当1时,输出图像对比度增大;当01时,输出图像对比度减小;当0时,图像亮区域变暗,暗区域变亮,即图像求补。,线性点运算,输出灰度级与输入灰度级呈线性关系的点运算。即:,255,255,DA,DB,0,f(DA)=aDA+b,b,如果a1,输出图像的对比度增大,255,218,48,提高对比度,255,0,提高对比度举例,如果a1,输出图像的对比度减小,255,255,142,0,降低对比度,降低对比度举例,如果a1

7、,b0,操作仅使所有像素的灰度值上移或下移,其效果是使整个图像更暗或更亮,0,255,255,整个图像更亮,0,255,255,整个图像更暗,亮度调整属于典型的点运算,每个输出像素的灰度值由相应位置的输入像素的灰度值加上一个常数得到。假设DA为输入点的灰度值,DB为相应输出点的灰度值,则图(b)亮度调整算法可表示为:,例:增加一幅图像的亮度,如果a1,b0时,输出、输入图像相同,0,255,255,如果a为负值,暗区域将变亮,亮区域将变暗,0,255,255,0,255,255,线性点运算,输出灰度级与输入灰度级呈线性的点运算,a 1 输出对比度加大(扩)a 1 输出对比度减小(压)a 1、b

8、 0 复制a 1、b 0 灰度值上移或下移(平抬)a 0 图像求补(亮/、输出越低)。,图2-2 cameraman图像经过不同的线性点运算后的结果,例2-1a=imread(cameraman.tif);%读入cameraman图像figure(1);imshow(a);b1=a+50;%b1=a+45图像灰度值增加50figure(2);imshow(b1);b2=1.2*a;%b=1.2*a图像对比度增大figure(3);imshow(b2);b3=0.65*a;%b=0.65*a图像对比度减少figure(4);imshow(b3);b4=-double(a)+255;%b4=-1*

9、a+255,图像求补,注 意把a的类型转换为doublefigure(5);imshow(uint8(b4);%再把double类型转换为unit8,输出灰度级与输入灰度级呈非线性关系的点运算。,255,255,0,输入,输出,非线性点运算,255,128,255,218,255,128,255,32,加亮、减暗图像,亮度调整,加暗、减亮图像,对比度拉伸,非线性拉伸实例,拉伸效果:图像加亮、减暗,2.7.2 非线性点运算分析,非线性点运算,右图为几种单调非减灰度变换函数,它们都有正斜率,因而可以保留图像的基本外貌,但图像局部对比度会发生变化。,C0:中间灰度增加C0:中间灰度减小C0:无变化D

10、m:灰度级上限,降低较亮及较暗物体的对比度,加强中间灰度级物体的对比度。01,压低中间灰度级物体的对比度,加强较亮及较暗物体的对比度。01,2.7.3 直方图修正分析,1点运算对直方图的影响 下面通过一个示例来说明点运算对直方图的影响。【例2-3】cameraman图像f(x)=1.25x+45的直方图变化情况。,clear;a=imread(cameraman.tif);Subplot(1,2,1);imhist(a);title(原始cameraman图像的直方图);b1=1.25*double(a)+45;Subplot(1,2,2);imhist(uint8(b1);title(变换后

11、的直方图);,直方图均衡化又称为直方图平坦化。直方图均衡化的基本思想是将原始图像的不均衡的直方图变化为均匀分布的形式。即将输入图像转换为在每一灰度级上都有相同的像素点数(即输出的直方图是平坦的,其分布为均匀分布)。直方图均衡化的结果扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果。直方图均衡化参考以下示例。,2直方图均衡化,I=imread(cameraman.tif);J=histeq(I);H=adapthisteq(I);subplot(1,3,1),imshow(I);xlabel(原始图像);subplot(1,3,2),imshow(J);xlabel(histeq均衡化

12、);subplot(1,3,3),imshow(H);xlabel(adapthisteq均衡化);,2.8 代数运算,2.8.1 代数运算的意义2.8.2 加法运算2.8.3 减法运算2.8.4 乘法运算2.8.5 除法运算,2.8.1 代数运算的意义,在数字图像处理技术中,代数运算具有非常广泛的应用和重要的意义。图像相加也可用于将一幅图像的内容叠加到另一幅图像上,从而实现二次曝光(double-exposure)。图像相减运算可用于消除一幅图像中所不需要的加性图案,加性图案可能是缓慢变化的背景阴影、周期性噪声,或在图像上每一像素点均已知的附加污染等。减法运算还可用于检测同一场景的两幅图像之

13、间的变化。,在数字图像处理中,虽然乘、除运算应用得相对少一些,但它们也具有很重要的应用。例如,在获取数字化图像过程中,图像数字化设备对一幅图像各点的敏感程度不可能完全相同,乘、除运算可用于纠正这方面的不利影响。此外,乘法运算在获取图像的局部图案时发挥作用,用一幅掩膜图像(mask image)乘以某一图像可遮住该图像中的某些部分,使其仅保留图像中感兴趣的部分,而除法运算还可以产生对颜色和多光谱图像分析十分重要的比率图像。,代数运算是指两幅输入图像之间进行点对点的加、减、乘、除运算得到输出图像的过程。如果记输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则有如下四种形式:,加法运算

14、,C(x,y)=A(x,y)+B(x,y)主要应用举例去除“叠加性”随机噪音生成图像叠加效果,生成图象叠加效果:可以得到各种图像合成的效果,也可以用于两张图片的衔接,2.8.2 加法运算,加法运算通常用于平均值降噪等多种场合。图像相加一般用于对同一场景的多幅图像求平均,以便有效地降低加性噪声。若有一静止场景的图像被加性随机噪声污染,且已获得由幅该静止场景图像组成的图像集合,则图像可表示为,S(x,y)为静止场景的理想图像,Ni(x,y)表示由于胶片的颗粒或数字化系统中的电子噪声所引起的噪声图像。集合中的每幅图像被不同的噪声图像所污染。设P(x,y)表示功率信噪比,对于图像中的任意像素点,则P(

15、x,y)可定义为,M=1,M=2,M=4,M=16,Addition:averaging for noise reduction,同时在MATLAB中提供函数imadd实现图像的加法运算,其语法格式为:z=imadd(A,B)其中A为图像,若B是一幅图像,则z为两个图像的求和,此时要求B的大小必须和A相等;若B是一个标量(双精度),则z表示对图像A整体加上某个值,即图像的亮度调整。,I=imread(rice.png);j=50;K=imadd(I,j);/等价于 k=i+50;figure(1);imshow(K);imwrite(k,f:wymaddshu.bmp);,I=imread(r

16、ice.png);J=imread(cameraman.gif);K=imadd(I,J);figure(1);imshow(K);imwrite(k,f:addimage.bmp);,a=imread(leaf.bmp);a1=imnoise(a,gaussian,0,0.006);%对原始图像加高斯噪声,a2=imnoise(a,gaussian,0,0.006);a3=imnoise(a,gaussian,0,0.006);a4=imnoise(a,gaussian,0,0.006);k=imlincomb(0.25,a1,0.25,a2,0.25,a3,0.25,a4);%线性组合su

17、bplot(131);imshow(a);subplot(132);imshow(a1);subplot(133);imshow(k,);imwrite(a4,f:wymmyleaf.bmp);imwrite(k,f:wymmyleaf1.bmp);,图像相减常用于检测变化及运动的物体,图像相减运算又称为图像差分运算。差分方法可以分为可控制环境下的简单差分方法和基于背景模型的差分方法。,2.8.3 减法运算,C(x,y)=A(x,y)-B(x,y)主要应用举例消除背景影响差影法(检测同一场景两幅图像之间的变化),2.8.3 减法运算,消除背景影响,差影法,指把同一景物在不同时间拍摄的图像或同一

18、景物在不同波段的图像相减;差值图像提供了图像间的差异信息,能用于指导动态监测、运动目标检测和跟踪、图像背景消除及目标识别等。,在银行金库内,摄像头每隔一固定时间拍摄一幅图像,并与上一幅图像做差影,如果图像差别超过了预先设置的阈值,则表明可能有异常情况发生,应自动或以某种方式报警;用于遥感图像的动态监测,差值图像可以发现森林火灾、洪水泛滥,监测灾情变化等;也可用于监测河口、海岸的泥沙淤积及监视江河、湖泊、海岸等的污染;利用差值图像还能鉴别出耕地及不同的作物覆盖情况。,(a)差影法可以用于混合图像的分离,-,=,(b)检测同一场景两幅图像之间的变化 设:时刻1的图像为T1(x,y),时刻2的图像为

19、T2(x,y)g(x,y)=T2(x,y)-T1(x,y),T1(x,y),T2(x,y),g(x,y),(c)图像的减法运算也可应用于求图像梯度函数 梯度定义形式:梯度幅度,梯度幅度的近似计算:,梯度幅度图像,梯度幅度在边缘处很高;在均匀的肌肉纤维的内部,梯度幅度很低。,在MATLAB中,图像的减法用imsubtract和imabsdiff函数可以完成,其语法格式为:z=imsubtract(a,b);%差值结果小于0的赋值为0;a、b大小相等。z=imabsdiff(a,b)%差值结果取绝对值,减法的MATLAB实现,clear;a=imread(rice.png);%读取图像figure

20、(1);imshow(a);%显示原始图像background=imopen(a,strel(disk,15);%在a上进行形态学运算;ap=imsubtract(a,background);%减法运算函数figure(2);imshow(background);%图像输出背景figure(3);imshow(ap,);%减法运算结果,消除背景后图像,i=imread(rice.png);j=imread(cameraman.tif);k=imsubtract(i,j);l=imsubtract(i,83);figure;subplot(221);imshow(i);subplot(222);

21、imshow(j);subplot(223);imshow(k,);subplot(224);imshow(l,);,乘法运算,C(x,y)=A(x,y)*B(x,y)主要应用举例图像的局部显示,一般的图像增强处理都是对整幅图像进行操作,而且在确定变换或转移函数时也是基于整个图像的统计量。但在实际应用中,往往需要仅对图像的某一局部区域进行增强,以突出某一具体的目标。要进行局部增强的前提是能够将某一个(或几个)局部区域从整个图像上剥离,然后单独对其进行处理,常用的剥离方法一般是掩膜技术(Mask),这就需要用到乘法运算。,图像的局部显示,步骤:l)新建一个与原始图像大小相同的图层,图层的类型仍然

22、是一个图像文件,而且一般要求是一个二值图像。2)在新建图层上,由用户在屏幕上人工勾绘出要进行增强处理的局部区域,这个区域可以是点、线、面(闭合区域)或三者的组合。区域的确定也可以由其它二值图像文件导入或由计算机图形文件(矢量)经转换生成。,3)在确定局部区域后,将整个图层保存为二值图像。选定区域内的像元值为1(白色),而区域外的像元值为0(黑色)。4)将待处理的原始图像与3)中的二值图像进行乘法操作,即可将原始图像选定区域外像元的灰度值置0,而区域内像素的灰度值保持不变,得到与原始图像分离的局部图像,即掩膜图像。5)对掩膜图像进行增强处理,生成最终的结果图像。,a=imread(hill.jp

23、g);b=imread(bom.jpg);s=size(a);m=s(1);n=s(2);b1=imresize(b,m n);a=double(a);c=double(b1);d=a.*c/256;%MATLAB实现乘法运算函数d=uint8(d);subplot(131);imshow(a);subplot(132);imshow(b);subplot(133);imshow(d);,乘法的matlab实现,i=imread(moon.tif);j=immultiply(i,i);k=imread(rice.png);l=immultiply(k,0.5);figure;subplot(2

24、21);imshow(i);subplot(222);imshow(j);subplot(223);imshow(k);subplot(224);imshow(l);,除法运算,C(x,y)=A(x,y)/B(x,y),主要应用举例-常用于遥感图像处理中,遥感图像处理举例,图a、b分别是陆地卫星的TM3、TM4波段,图c是对两个波段进行比值处理(除法运算)的结果。所采用的公式为,式中,C为比例因子,用于增加比值图像的对比度。,如图,比值处理前,两个波段的阴影(十字光标附近)都非常严重,阴、阳坡无法区分,当然更无法识别不同的地物类型。比值处理后,图像的阴影部分基本消失,可以很明显的区分不同坡向上

25、的地物类型。,i=imread(rice.png);j=imread(cameraman.tif);lp=imdivide(i,j);k=imdivide(i,2);figure;subplot(221);imshow(i);subplot(222);imshow(j,);subplot(223);imshow(lp,);subplot(224);imshow(k);,除法的matlab实现,2.9 特定区域处理,2.9.1 指定感兴趣区域2.9.2 特定区域滤波2.9.3 特定区域填充,2.9.1 指定感兴趣区域,MATLAB中对特定区域的处理是通过二值掩模来实现的。MATLAB图像处理工具

26、箱提供了3个函数用于生成二值掩模,从而选择特定区域,下面分别介绍。,roipoly函数用于选择图像中的多边形区域。roipoly函数返回二值图像BW,选中区域的像素值为1,其余部分的值为0。这个二值图像可以作为掩模,通过与原图的运算选择目标或背景。其语法格式如下:BW=roipoly(I,c,r)BW=roipoly(I)BW=roipoly(x,y,I,xi,yi)BW,xi,yi=roipoly(.)x,y,BW,xi,yi=roipoly(.),(1)roipoly,i=imread(eight.tif);c=222 272 300 270 221 194;r=21 21 75 121

27、121 75;bw=roipoly(i,c,r);figure;imshow(i);figure;imshow(bw);d=immultiply(i,bw);figure;imshow(d);,MATLAB图像处理工具箱提供了roicolor函数可以对RGB图像和灰度图像实现按灰度或亮度选择区域,其语法格式为:BW=roicolor(A,low,high)BW=roicolor(A,v)其中BW=roicolor(A,low,high)表示按指定的灰度范围分割图像,返回二值掩模BW,low high为所要选择区域的灰度范围。如果low大于high,则返回为空矩阵;BW=roicolor(A,v

28、)是按向量v中指定的灰度值为选择区域。,(2)roicolor,i=imread(rice.png);bw=roicolor(i,100,255);Subplot(1,3,1);imshow(i);Subplot(1,3,2);imshow(bw);d=immultiply(i,bw);Subplot(1,3,3);figure;imshow(d);,该函数可以转化指定的多边形区域为二值掩模。其语法格式为:BW=poly2mask(x,y,m,n)x和y表示两个向量,指定一个多边形区域,BW的大小为mn,在BW中指定区域内的像素为1,指定区域外的像素为0。如果x和y指定的区域不封闭,则poly

29、2mask自动封闭这个多边形。,(3)poly2mask,2.9.2 特定区域滤波,MATLAB图像处理工具箱中提供了一个区域滤波函数roifilt2,其语法格式为:J=roifilt2(h,I,BW)J=roifilt2(h,I,BW,fun)J=roifilt2(h,I,BW,fun,P1,P2,.)其中J=roifilt2(h,I,BW)为使用滤波器h对图像I中用二值掩模BW选中的区域进行滤波;J=roifilt2(h,I,BW,fun)和J=roifilt2(h,I,BW,fun,P1,P2,.)对图像I中用二值掩模BW选中的区域作函数运算fun,其中fun是描述函数运算的字符串,,i

30、=imread(eight.tif);c=222 272 300 270 221 194;r=21 21 75 121 121 75;bw=roipoly(i,c,r);h=fspecial(unsharp);j=roifilt2(h,i,bw);Subplot(1,2,1);imshow(i);Subplot(1,2,2);imshow(j);,2.9.3 特定区域填充,MATLAB图像处理工具箱中提供了函数roifill用于对特定区域的填充,其语法格式为:J=roifill(I,c,r)J=roifill(I)J=roifill(I,BW)J,BW=roifill(.)J=roifill(

31、x,y,I,xi,yi)x,y,J,BW,xi,yi=roifill(.),其中,J=roifill(I,c,r)填充由向量c、r指定的多边形,c和r分别为多边形各顶点的x、y坐标。它是通过求解边界的拉普拉斯方程,利用多边形边界点的灰度平滑的插值得到多边形内部的点。通常可以利用对指定区域的填充来“擦”掉图像中的小块区域。,i=imread(eight.tif);g=222 272 300 270 221 194;f=21 21 75 121 121 75;j=roifill(i,g,f);Subplot(1,2,1);imshow(i);Subplot(1,2,2);imshow(j);,J=

32、roifill(I)表示由用户交互选取填充的区域。选择多边形的角点后,按Enter键表示结束,空格键或Del键表示取消一个选择。J=roifill(I,BW)用掩模图像BW选择区域。J,BW=roifill(.)在填充区域的同时还返回掩模图像BW。J=roifill(x,y,I,xi,yi)和x,y,J,BW,xi,yi=roifill(.)表示在指定的坐标系xy下填充由向量xi和yi指定的多边形区域。,k1=i1,逻辑运算二值图像,a=zeros(128);a(40:67,60:100)=1;subplot(2,3,1);imshow(a);b=zeros(128);b(50:80,40:7

33、0)=1;subplot(2,3,2);imshow(b);c=and(a,b);subplot(2,3,3);imshow(c);d=or(a,b);subplot(2,3,4);imshow(d);e=xor(a,b);subplot(2,3,5);imshow(e);,i=imread(rice.png);j=imread(cameraman.tif);i1=im2bw(i);j1=im2bw(j);im2bw convert image to binary image by thresholding.Im2bw produces binary images from indexed,intensity,or RGB images.k1=i1,逻辑运算二值图像,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号