第6章图像基本运算_第1页
第6章图像基本运算_第2页
第6章图像基本运算_第3页
第6章图像基本运算_第4页
第6章图像基本运算_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章图像基本运算第1页/共102页6.1图象算术运算加法运算减法运算乘法运算除法运算第2页/共102页

主要应用:

(1)对同一场景的多幅图像求平均值,降低加性噪声;

(2)一幅图像叠加到另一幅图像上去,达到二次暴光(Double-exposure)的效果。加法运算加法运算的定义第3页/共102页

原理:对于图像f(x,y)和其噪声图像集{gi(x,y)},i=1,2,...K。gi(x,y)=f(x,y)+ni(x,y)

其中ni(x,y)是第i帧图像的噪声分布,噪声分布n(x,y),均值为0,方差为,且n(x,y)中的不同位置(x,y)处的噪声分布互不相关。则M个图像的均值为:多幅图像求平均值,降低加性噪声。第4页/共102页M=1M=2M=4M=16多幅图像求平均值-举例第5页/共102页生成图像叠加效果。对于两个图像f1(x,y)和f2(x,y),二者均值有:则可以得到二次曝光的效果。第6页/共102页加运算生成图像叠加效果—举例第7页/共102页简单图像融合推广公式为:

可以得到各种图像合成的效果,也可以用于两张图片的衔接。第8页/共102页加运算生成图像叠加效果—举例第9页/共102页什么叫图像融合?

图像融合就是充分利用多幅图像信息,通过对观测信息的合理支配和使用,把多幅图像在空间或时间上的互补信息,依据某种准则进行综合处理。获得对场景的一致性解释或描述,使融合后的图像比参加融合的任意一幅图像更优越、更精确地反映客观实际。图像融合(Imagefusion)第10页/共102页(1)对应像素取最大值

(2)对应像素取最小值

(3)对应像素取平均值

(4)加权平均法

(5)高级融合技术

图像融合——一般规则第11页/共102页对应像素取小值融合图像融合效果展示第12页/共102页对应像素取平均融合图像融合效果展示第13页/共102页对应像素加权平均融合图像融合效果展示第14页/共102页小波多尺度分解融合图像融合效果展示第15页/共102页在MATLAB图像处理工具箱中,imadd函数实现图像相加运算,其调用格式如下Z=imadd(X,Y)对X和Y数组中对应元素相加,返回值Z和X、Y大小一致,若Y为标量,则对X数组中每个元素相加Y。第16页/共102页例图像相加操作I=imread('rice.png');J=imadd(I,50);subplot(1,2,1),imshow(I);title('原始图像');subplot(1,2,2),imshow(J);title('图像与数据相加');K=imread('cameraman.tif');H=imadd(I,K,'uint16');%转换数据类型相加图像数据第17页/共102页figure;subplot(1,3,1);imshow(I);title('原始rice图像');subplot(1,3,2);imshow(K);title('原始cameraman图像');subplot(1,3,3);imshow(H,[]);title('两图像进行相加操作效果');第18页/共102页第19页/共102页第20页/共102页

主要应用:

(1)去除一幅图像中不需要的加性图案,如缓慢变化的背景阴影,周期性噪声等;

(2)检测同一场景的两幅图像之间的变化;

(3)运动检测。

图像相减即在两幅图像之间对应像素做减法运算。减法运算第21页/共102页原始图像背景图像差图像图像相减—消除背景第22页/共102页图像相减—检测同一场景两幅图像之间的变化设:时间1的图像为f1(x,y), 时间2的图像为f2(x,y)g(x,y)=f2(x,y)-f1(x,y)=-第23页/共102页左上:某序列图像的第100帧;下:某序列图像的第300帧;右上:两幅图像相减并取绝对值显示的结果图像相减—运动检测第24页/共102页在MATLAB中,图像的减法运算用imsubtract和imabsdiff函数可以完成,其调用格式为:Z=imsubtract(a,b)%差值结果小于0的赋值为0Z=imabsdiff(a,b)%差值结果取绝对值第25页/共102页例图像相减运算clear;a=imread('rice.png');%读取图像subplot(131);imshow(a);title('原始图像');background=imopen(a,strel('disk',15));%在a上进行形态学运算;ap=imsubtract(a,background);%减法运算函数subplot(132);imshow(background);title('输出背景');subplot(133);imshow(ap,[]);title('减法运算结果');第26页/共102页第27页/共102页

图像相乘即在两幅图像之间对应像素做乘法运算。乘法运算第28页/共102页图像相乘—局部显示第29页/共102页在MATLAB中,图像乘运算的函数是immultiply,其调用方法如下:Z=immultiply(X,Y)第30页/共102页例图像乘法运算。I=imread('rice.png');%读取图像I16=uint16(I);%转换图像数据类型J=immultiply(I16,I16);%同一幅图像相乘L=immultiply(I,0.5);%图像乘以一个常数figure;%依次显示四幅图像subplot(131);imshow(I);title('原始图像');subplot(132);imshow(J);title('图像自乘');subplot(133);imshow(L);title('图像与数据相乘');第31页/共102页第32页/共102页主要应用

可产生对颜色和多光谱图像分析十分重要的比率图像。

图像相除即在两幅图像之间对应像素做除法运算。除法运算第33页/共102页左上:遥感图像f1(x,y);右上:遥感图像f2(x,y);下:f1与f2之比。图像相除—比率图像第34页/共102页在MATLAB中,图像除运算的函数是individe,其调用方法如下:Z=individe(X,Y)第35页/共102页a=imread('lena.bmp');background=imopen(a,strel('disk',15));a1=imdivide(a,background);subplot(131);imshow(a);%原始图像subplot(132);imshow(background);%Background结果subplot(133);imshow(a1,[]);%除法运算结果第36页/共102页第37页/共102页6.2图像逻辑运算求反异或或与第38页/共102页求反的定义

g(x,y)=255-f(x,y)主要应用举例获得一个阴图象获得一个子图像的补图像绘制区别于背景的、可恢复的图形第39页/共102页获得一个阴图象第40页/共102页获得一个子图像的补图像255-=第41页/共102页绘制区别于背景的、可恢复的图形原图求反画图求反恢复原图第42页/共102页异或运算的定义g(x,y)=f(x,y)h(x,y)主要应用举例获得相交子图象绘制区别于背景的、可恢复的图形第43页/共102页获得相交子图象=第44页/共102页绘制区别于背景的、可恢复的图形原图异或画图异或恢复原图第45页/共102页或运算的定义

g(x,y)=f(x,y)vh(x,y)主要应用举例合并子图像=第46页/共102页与运算的定义

g(x,y)=f(x,y)h(x,y)主要应用举例求两个子图像的相交子图=第47页/共102页按位进行逻辑运算STNOT(S)S

AND

TS

OR

TS

XOR

T黑=11111111白=00000000第48页/共102页STNOT(S)S

AND

TS

OR

TS

XOR

T第49页/共102页I=imread('cameraman.tif');J=imread('rice.png');I1=im2bw(I);%转化为二值图像J1=im2bw(J);K1=I1&J1;%逻辑与运算K2=I1|J1;%逻辑或运算K3=~I1;%逻辑非运算K4=xor(I1,J1);%异或运算第50页/共102页figure(1);%依次显示四幅图像subplot(221);imshow(I);subplot(222);imshow(J);subplot(223);imshow(I1);subplot(224);imshow(J1);figure(2);%依次显示四幅图像subplot(221);imshow(K1);subplot(222);imshow(K2);subplot(223);imshow(K3);subplot(224);imshow(K4);第51页/共102页第52页/共102页第53页/共102页6.3图像的几何变换我们知道,图像是对三维实际景物的平面投影。为了观测需要,常常需要进行各种不同的几何变换。注意一点,实际上几何变换不改变像素值,而是改变像素所在的位置。第54页/共102页6.3.1.图像的位置变换一、图像的平移注意:平移后的景物与原图像相同,但“画布”一定是扩大了。否则就会丢失信息。用齐次矩阵表示:第55页/共102页A=imread('lena.jpg');figure;subplot(121);imshow(A);A=double(A);A_move=zeros(size(A));H=size(A);A_x=50;A_y=50;I_movesult(A_x+1:H(1),A_y+1:H(2),1:H(3))=A(1:H(1)-A_x,1:H(2)-A_y,1:H(3));subplot(122);imshow(uint8(I_movesult));第56页/共102页第57页/共102页二、图像的镜像

注意:做镜像时,实际上需要对坐标先进行平移,否则将出错。因为矩阵的下标不能为负。水平镜像垂直镜像第58页/共102页水平镜像

设:

a(x,y)=-x;b(x,y)=y;

用齐次矩阵表示:

第59页/共102页0,0xy第60页/共102页第61页/共102页垂直镜像

设:

a(x,y)=x; b(x,y)=-y;

用齐次矩阵表示:第62页/共102页0,0xy第63页/共102页垂直镜像第64页/共102页I=imread('lena.jpg')subplot(221);imshow(I);I=double(I);h=size(I);I_fliplr(1:h(1),1:h(2),1:h(3))=I(1:h(1),h(2):-1:1,1:h(3));%水平镜像变换I1=uint8(I_fliplr);subplot(222);imshow(I1);I_flipud(1:h(1),1:h(2),1:h(3))=I(h(1):-1:1,1:h(2),1:h(3));%垂直镜像变换I2=uint8(I_flipud);subplot(223);imshow(I2);I_fliplr_flipud(1:h(1),1:h(2),1:h(3))=I(h(1):-1:1,h(2):-1:1,1:h(3));%对角镜像变换I3=uint8(I_fliplr_flipud);subplot(224);imshow(I3);第65页/共102页第66页/共102页三、图像的旋转

绕原点旋转度

设:

a(x,y)=x*cos()-y*sin(); b(x,y)=x*sin()+y*cos();

用齐次矩阵表示:第67页/共102页0,0xy几何变换——旋转第68页/共102页几何变换——旋转第69页/共102页6.3.2.图像的形状变换一、图像的缩小

图像的缩小一般分为按比例缩小和不按比例缩小两种。图像缩小之后,因为承载的信息量小了,所以画布可相应缩小。第70页/共102页1.图像按比例缩小:

最简单的是减小一半,这样只需取原图的偶(奇)数行和偶(奇)数列构成新的图像。第71页/共102页图像的减半缩小效果返回第72页/共102页

如果图像按任意比例缩小,则需要计算选择的行列。

M*N大小的图像缩小为:kM*kN大小,(k<1)

设旧图像是F(x,y),新图像是I(x,y)

则:I(x,y)=F(int(c*x),int(c*y))c=1/kK=1/3第73页/共102页图像的按比例缩小效果

返回第74页/共102页2.图像不按比例缩小:

这种操作因为在x方向和y方向的缩小比例不同,一定会带来图像的几何畸变。第75页/共102页图像的不按比例任意缩小返回第76页/共102页图像不按比例缩小方法:

M*N大小的图像缩小为:k1M*k2N大小,(k1<1,k2<1)。

设旧图像是F(x,y),新图像是I(x,y)

则:I(x,y)=F(int(c1*x),int(c2*y))c1=1/k1c2=1/k2第77页/共102页

二、图像的放大

图像的缩小操作中,是在现有的信息里如何挑选所需要的有用信息。图像的放大操作中,则需对尺寸放大后所多出来的空格填入适当的值,这是信息的估计问题,所以较图像的缩小要难一些。第78页/共102页

如果放大倍数太大,按照前面的方法处理会出现马赛克效应。第79页/共102页图像大比例放大时的马赛克效应放大10倍返回第80页/共102页

1.按比例放大图像

如果需要将原图像放大k倍,则将一个像素值添在新图像的k*k的子块中。放大5倍第81页/共102页图像的成倍放大效果返回第82页/共102页2.图像的任意不成比例放大:这种操作由于x方向和y方向的放大倍数不同,一定带来图像的几何畸变。放大的方法是:将原图像的一个像素添到新图像的一个

k1*k2的子块中去。第83页/共102页图像的不按比例放大返回第84页/共102页三、图像的错切变换图像的错切变换实际上是景物在平面上的非垂直投影效果。第85页/共102页图像的错切效果返回第86页/共102页可以看到,错切之后原图像的像素排列方向改变。与前面旋转不同的是,x方向与y方向独立变化。第87页/共102页四、几何畸变的矫正

受到错切变换效果的启发,将其进行简单的延伸,当景物在图像上是非垂直投影时,可以通过几何变换将其进行矫正。矫正方法为:变换参数可通过对应点的坐标来确定。第88页/共102页6.4邻域处理滑动邻域处理

输入图像将以像素为单位进行处理,对于输入图形的每一个像素,指定的操作将决定输出图像相应的像素值。分离邻域处理

输入图像一次处理一个邻域,即图像被划分为矩阵邻域,分离邻域操作将分别对每一个邻域进行操作,求取相应输出邻域的像素值。第89页/共102页滑动邻域处理滑动邻域是一组像素,操作对象为邻域中心的像素。对于m×n的滑块邻域,其中心像素的位置为:floor(([m,n]+1)/2)例m=2,n=3floor(([2,3]+1)/2)=floor([3,4]/2)=[1,2]第90页/共102页目的:对图像进行平滑、去噪等相关的像素操作;滑动邻域操作的步骤:1)选择像素;2)确定滑动邻域的大小;3)根据需要,选择函数对邻域内像素操作;4)计算结果作为输出图像的该点像素值;5)按1-4遍历原图像中的所有像素;第91页/共102页1.nlfilter函数在MATLAB中,函数nlfilter是基本邻域处理函数,其调用的方式如下:B=nlfilter(A,[m,n],fun)其中A是要处理的图像,[m,n]规定了邻域块的大小,fun是指定的函数。邻域操作函数第92页/共102页A=imread('cameraman.tif');fun=@(x)median(x(:));B=nlfilter(A,[33],fun);subplot(1,2,1);imshow(A),title('原始图像');subplot(1,2,2),imshow(B);title('邻域操作效果');第93页/共102页第94页/共102页2.colfilt函数在MATLAB中,进行快速的邻域操作的函数是colfilt,为每一个像素建立一个列向量,向量元素对应于该像素邻域的元素,其调用方式如下B=colfilt(A,[mn],b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论