您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > matlab《数字图像处理》第5章算术运算(计科).
第5章图像的算术运算2学习重点数字图像的算术运算3学习内容5.1图像的点运算5.2图像的算术运算5.3图像的位逻辑运算5.4图像的简单应用例子45.1、图像的点运算点运算将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的值决定。点运算常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。点运算因其作用性质有时也称为对比度增强、对比度拉伸或灰度变换。直方图均衡化和直方图规范化都是点运算的典型应用。55.1.1线性点运算在线性点运算中,灰度变换函数在数学上就是线性函数:f(r)=ar+ba1时,输出图像对比度增大;a1时,输出图像对比度降低;a=1,b~=0时,仅使输出图像的灰度值上移或下移,其效果是使整个图像更亮或更暗。线性点运算的典型应用是灰度分布标准化。65.1.2非线性点运算非线性点运算对应与非线性映射函数,典型的映射函数包括平方函数、对数函数、截取(窗函数)、阈值函数等785.2、图像的算术运算算术运算是指两幅或多幅输入图像之间进行点对点的加、减、乘、除运算得到输出图像的过程。算术运算可以简单理解成数组的运算。9算术运算是指两幅或多幅输入图像之间。算术运算的结果很容易超出数据类型允许的范围。如uint8能够存储最大数是255,乘法运算很容易超过这个数值;还有除法运算会产生分数结果。所以超过范围的都按数据范围的极值截取,分数结果将被四舍五入。无论哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同10图像相加一般用于对同一场景的多幅图像求平均效果(此处的平均是指效果而言,并非算术平均),以便有效地降低具有加性的随机噪声。直接采集的图像品质一般都较好,不需要进行加法运算处理,但是对于那些经过长距离模拟通讯方式传送的图片(如卫星图像),这种处理是必不可少的。5.2.1加法运算11在Matlab图像处理工具箱中,imadd函数实现图像相加运算。可以是一副图像与另一幅图像相加;也可以是一副图像加上一个常数。Z=imadd(X,Y)12注意类型处理X=uint8([255075;44225100]);Y=uint8([505050;505050]);Z=imadd(X,Y)结果:Z=2555012594255150饱和处理13I=imread('rice.png');J=imread('cameraman.tif');K=imadd(I,J,'uint16');imshow(K,[])14一般选8幅取平均1516和imadd一样,matlab还提供了一个噪声添加函数imnoise,以方便模拟噪声信息。这个函数也相当于图像相加运算。调用格式:J=imnoise(I,type)J=imnoise(I,type,parameters)Docimnoise17I=imread('eight.tif');J=imnoise(I,'salt&pepper',0.02);imshow(I)figure,imshow(J)18I=imread('eight.tif');[m,n]=size(I);J=imnoise(I,'gaussian',0,0.02);figure,imshow(I)figure,imshow(J)k=zeros(m,n);fori1=1:100J1=imnoise(I,'gaussian',0,0.02);J2=im2double(J1);k=k+J2;endk=k/100;figure;imshow(k);1920生成图象叠加效果:可以得到各种图像合成的效果,也可以用于两张图片的衔接。21RGB=imread(‘peppers.png’);RGB2=imadd(RGB,150);Subplot(121);imshow(RGB);Subplot(122);imshow(RGB2);给图像的每个像素加上一个常数,可以使亮度增加22),(),(),(yxByxAyxC主要应用举例:差影法(检测同一场景两幅图像之间的变化)混合图像的分离;梯度幅度的应用将同一景物在不同时间拍摄的图像或同一景物在不同波段的图像相减,这就是图像的减法运算。实际中常称为差影法。差值图像提供了图像间的差值信息,能用于指导动态监测、运动目标的检测和跟踪、图像背景的消除及目标识别等。5.2.2减法运算23在Matlab图像处理工具箱中,imsubtract函数和imabsdiff函数实现图像减法运算。Z=imsubtract(X,Y):小于0的置零Z=imabsdiff(X,Y):相减后取绝对值241)检测同一场景两幅图像之间的变化设:时刻1的图像为T1(x,y),时刻2的图像为T2(x,y)g(x,y)=T2(x,y)-T1(x,y)=-T2(x,y)T1(x,y)g(x,y)2526差影法在自动现场监测中的应用1、在银行金库内,摄像头每隔一固定时间拍摄一幅图像,并与上一幅图像做差影,如果图像差别超过了预先设置的阈值,则表明可能有异常情况发生,应自动或以某种方式报警;2、用于遥感图像的动态监测,差值图像可以发现森林火灾、洪水泛滥,监测灾情变化等;27差影法在自动现场监测中的应用4、利用差值图像还能鉴别出耕地及不同的作物覆盖情况。3、也可用于监测河口、海岸的泥沙淤积及监视江河、湖泊、海岸等的污染;28差影法进行混合图像的分离(a)混合图像(b)被减图像(c)差影图像2)混合图像的分离293)消除背景影响设:背景图像b(x,y),前景背景混合图像f(x,y)g(x,y)=f(x,y)–b(x,y)g(x,y)为去除了背景图像即去除不需要的叠加性图案背景图像差值图像(a)从病人头顶向下拍摄的X光照片(b)碘元素注入后拍摄的X光照片与背景图像的差值30314)求梯度幅度图像的减法运算也可应用于求图像梯度函数梯度定义形式:梯度幅度yfjxfiyxf),(22)()(|),(|yfxfyxf32梯度幅度的近似计算:|])1,(),(||,),1(),(max[||),(|yxfyxfyxfyxfyxf33梯度幅度图像梯度幅度在边缘处很高;在均匀的肌肉纤维的内部,梯度幅度很低。34两幅图像进行乘法运算可以实现掩膜操作,即屏蔽掉图像的某些部分。一幅图像乘一个常数通常被称为缩放,这是一种常见的图像处理操作。如果使用的缩放因素大于1,那么将增强图像的亮度,反之则图像变暗。缩放通常产生比简单添加像素偏移量自然得多的明暗效果,这是因为这种操作能够更好地维持图像的相关对比度。由于时域的卷积或相关运算与频域的乘积运算对应,因此乘法运算有时也被作为一种技巧来实现卷积或相关处理。5.2.3乘法运算35在Matlab图像处理工具箱中,immultiply函数实现图像乘法运算。Z=immultiply(X,Y)类似矩阵点乘运算(.*)36I=imread('moon.tif');I16=uint16(I);J=immultiply(I16,I16);imshow(I);figure,imshow(J)373839I=imread('moon.tif');J=I*1.2;%J=immultiply(I,2);imshow(I);figure,imshow(J)40(a)原图(b)乘以1.2(c)乘以2改变图像的灰度级41I=imread('moon.tif');J=imnoise(I,'gaussian',0,0.02);k=imsubtract(I,J);k1=255-k;figure(),imshow(I)figure(),imshow(J)figure(),imshow(k1)42除法运算可以用于校正成像设备的非线性影响;在特殊形态的图像(如CT等医学图像)处理中常常用到。图像像素点的除法运算可以检测图像间的差别,但是除法运算结果主要是像素值的比率变化,而不是每个像素的绝对差异,因此也成为比率变换。5.2.4除法运算43在Matlab图像处理工具箱中,imdivide函数实现图像除法运算。Z=imdivide(X,Y)类似矩阵点除运算44I=imread('rice.png');J=imdivide(I,2);imshow(I)figure(2),imshow(J)45在Matlab图像处理工具箱中,imlincomb函数实现图像四则运算。Z=imlincomb(A,X,B,Y,C),其中Z=A*X+B*Y+C按照双精度执行所有代数运算操作,而且仅对最后的输出结果进行截取5.2.5四则运算46例:计算两幅图像的均值I=imread('rice.png');J=imread('cameraman.tif');k=imdivide(imadd(I,J),2);imshow(k)47I=imread('rice.png');J=imread('cameraman.tif');L=imlincomb(.5,I,.5,J);imshow(L)48在Matlab图像处理工具箱中,imcomplement函数实现图像求补运算。Z=imcomplement(I),其中5.2.6图像求补运算49bw=imread('text.png');bw2=imcomplement(bw);imshow(bw);figure,imshow(bw2)50515.3图像的位逻辑运算图像的位逻辑运算在图像增强、图像识别、图像复原和区域分割等领域有着广泛的应用。它和图像算术运算的差别在于,位逻辑运算不仅关注图像像素点的数值的变换,而且更着于位变换的情况。525.3.1非运算53获得一个阴图像54获得一个子图像的补图像55函数说明bitand位与bitcmp位补bitor位或bitxor位异或bitshift位移位565.3.2与运算57585.3.3或运算59605.3.4异或运算61I=imread('rice.png');J=imdivide(I,2);K1=bitand(I,J);imshow(K1)title('图像的位与运算')K2=bitcmp(I,8);figure(2)imshow(K2);title('图像的位补运算')K3=bitor(I,J);figure(3)imshow(K3);title('图像的位或运算')62K4=bitxor(I,J);figure(4)imshow(K4);title('图像的位异或运算')K5=bitshift(I,2);figure(5)imshow(K5);title('图像的位移位运算')635.4.1一个简单的图像叠加隐写5.4.2图像三维重建5.4图像的简单应用例子645.4.1一个简单的图像叠加隐写图像隐藏是指媒体信息的相互隐藏,常见的有数字水印和图像的信息伪装等。在一幅图像中隐藏一个信息,并可以通过一种方式将图像信息解码出来。A(原始图像)B(需要隐藏的信息)C(加入信息的图像)要求:A与C尽量相近,没有差别65介绍的目的:体会matlab中关于imread和imshow的用法。算法思想采用一种原始的图像叠加的简单思想处理1隐写算法1)将原始图像A和隐写信息B读入matlab2)将隐写信息B扩充到与A有相同大小的点阵3)将矩阵A和B中的数据转换成uint8型664)对矩阵B的数据做如下处理:B(i,j,k)/100;i,j分别是点阵的大小,k=1,2,3;5)将矩阵A和B做叠加处理得到带有隐写信息的图像C2解码算法是隐写算法的逆过程67xoyz210153620481x1yrgbAyz2048Bo21015361x1y1bx1g1ryz2048Co21015361x1y1bbx1gg1rr叠加算法的具体图形表达68算法可成立的支持理由对于隐写信息B由于将象素点的RGB值减小100倍,再叠加到原始图像A中,这样基本看不出隐写信息;在解码中将处理后带有隐写信息的图像C减去A并将象素点扩大100倍可以得到隐写信息B。69算法的实现结果1)隐写结果+702)解码结果71算法中
本文标题:matlab《数字图像处理》第5章算术运算(计科).
链接地址:https://www.777doc.com/doc-2886922 .html