资源描述:
《图像的代数运算(matlab编程实现,自己写的,有所不足,仅》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、图像的代数运算一、设计目的图像代数运算设计目的如下:一是运用图像代数运算的相关知识降低同一场景的多幅图像中所含叠加性质的随机噪声。二是掌握检测多幅图像间的变化及运动的物体的方法。三是知道如何屏蔽掉图像的某些部分。由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?二、设计要求1、自己编程实现所有算法,不得直接运用matlab函数,并与imadd、imsubtract、imdivide等函数进行效果比较。2、在处理过程中请考虑:处理结果图像的像素值很可能超过图像数据类型所支持的最大值,尤其对于uint8类型的图像,溢出的情况。三、设计内容1、降低同
2、一场景的多幅图像中所含叠加性质的随机噪声。2、检测多幅图像间的变化及运动的物体。3、屏蔽掉图像的某些部分。4、由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?四、设计方案图像代数运算设计,根据已知的设计内容和要求我的方案如下:根据内容一我的方案是:首先读入一幅图像并对图像添加多种不同的随机噪声来生成同一场景多幅含随机噪声的图像。其次将得到噪声图像累加起来得到同一场景的多幅含叠加性质的随机噪声图像。最后通过对多幅图像求平均值的方法来降低同一场景的多幅图像中所含叠加性质的随机噪声(这里可将编程得到的图像求平均处理效果与调用imlincomp函数得
3、到的处理效果比较)。根据内容二我的方案是:先读入一幅图像并做运动模糊以及添加随机噪声处理来生成多幅运动和变化的图像。然后将得到的多幅运动变化图像与原图像相减来检测多幅图像间的变化及运动的物体。最后将编程得到的处理效果与调用imsubtract函数得到的处理效果进行比较。根据内容三。。。。。。。。。五、实验结果1)降低同一场景的多幅图像中所含叠加性质的随机噪声源代码如下:%%降低同一场景的多幅图像中所含叠加性质的的随机噪声I=imread('1YZ`}4G}1A]07OF$TDW0)C2.jpg');noise1=0.1*randn(size(I));%添加随
4、机噪声m1=I+im2uint8(noise1);m2=imnoise(I,'gaussian',0.02);%添加高斯噪声m3=imnoise(I,'salt&pepper',0.02);%添加椒盐噪声noise2=fspecial('motion',20,45);%添加运动模糊噪声m4=imfilter(I,noise2,'circular','conv');k=0.25*(m1+m2+m3+m4);%将加有噪声的四幅图像求平均k1=imlincomb(0.25,m1,0.25,m2,0.25,m3,0.25,m4);%将加有噪声的四幅图像线性组合(求平
5、均)figure(1)subplot(231);imshow(I);title('原始图像')subplot(232);imshow(m1);title('添加随机噪声的图像')subplot(233);imshow(m2);title('添加高斯噪声的图像')subplot(234);imshow(m3);title('添加椒盐噪声的图像')subplot(235);imshow(m4);title('添加运动模糊噪声的图像')figure(2)imshow(k);title('自己编程均值去噪后的图像')figure(3)imshow(k1);title
6、('调用imlincomb去噪后的图像')运行结果如下:图一说明:对原始图像添加四种噪声后得到加噪后的四幅图像及原始图像。图二说明:将添加四种噪声的图像叠加后得到的图像,显然图像变亮了,且运动模糊,椒盐和高斯噪声没太大变化。图三说明:自己均值处理后图像没图2那么亮了,运动模糊,椒盐和高斯噪声较图1明显消减了。图四说明:图像亮度与原图无差异,且运动模糊,椒盐和高斯噪声较图1明显消减(自己写的程序存在不足)。2)检测多幅图像间的变化及运动的物体源代码如下:I=imread('1YZ`}4G}1A]07OF$TDW0)C2.jpg');psf=fspecial('
7、motion',20,45);%I1=imfilter(I,psf,'circular','conv');noise1=0.1*randn(size(I));%添加随机噪声m1=I+im2uint8(noise1);m2=imnoise(I,'salt&pepper',0.02);%添加椒盐噪声I2=I1-I;%自己写的图像减法I3=imsubtract(I1,I);%调用图像减法函数I4=m1-I;I5=imsubtract(m1,I);I6=m2-I;I7=imsubtract(m2,I);figure(1)subplot(221);imshow(I);
8、title('原始图像')subplot(222);