图像代数运算matlab编程实现自己写有所不足仅供参考.docx
《图像代数运算matlab编程实现自己写有所不足仅供参考.docx》由会员分享,可在线阅读,更多相关《图像代数运算matlab编程实现自己写有所不足仅供参考.docx(7页珍藏版)》请在冰豆网上搜索。
图像代数运算matlab编程实现自己写有所不足仅供参考
图像的代数运算
一、设计目的
图像代数运算设计目的如下:
一是运用图像代数运算的相关知识降低同一场景的多幅图像中所含叠加性质的随机噪声。
二是掌握检测多幅图像间的变化及运动的物体的方法。
三是知道如何屏蔽掉图像的某些部分。
由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?
b5E2RGbCAP
二、设计要求
1、自己编程实现所有算法,不得直接运用matlab函数,并与imadd、imsubtract、imdivide等函数进行效果比较。
p1EanqFDPw
2、在处理过程中请考虑:
处理结果图像的像素值很可能超过图像数据类型所支持的最大值,尤其对于uint8类型的图像,溢出的情况。
DXDiTa9E3d
三、设计内容
1、降低同一场景的多幅图像中所含叠加性质的随机噪声。
2、检测多幅图像间的变化及运动的物体。
3、屏蔽掉图像的某些部分。
4、由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?
四、设计方案
图像代数运算设计,根据已知的设计内容和要求我的方案如下:
根据内容一我的方案是:
首先读入一幅图像并对图像添加多种不同的随机噪声来生成同一场景多幅含随机噪声的图像。
其次将得到噪声图像累加起来得到同一场景的多幅含叠加性质的随机噪声图像。
最后通过对多幅图像求平均值的方法来降低同一场景的多幅图像中所含叠加性质的随机噪声<这里可将编程得到的图像求平均处理效果与调用imlincomp函数得到的处理效果比较)。
RTCrpUDGiT
根据内容二我的方案是:
先读入一幅图像并做运动模糊以及添加随机噪声处理来生成多幅运动和变化的图像。
然后将得到的多幅运动变化图像与原图像相减来检测多幅图像间的变化及运动的物体。
最后将编程得到的处理效果与调用imsubtract函数得到的处理效果进行比较。
5PCzVD7HxA
根据内容三。
。
。
。
。
。
。
。
。
五、实验结果
1)降低同一场景的多幅图像中所含叠加性质的随机噪声
源代码如下:
%%降低同一场景的多幅图像中所含叠加性质的的随机噪声
I=imread('1YZ`}4G}1A]07OF$TDW0>C2.jpg'>。
noise1=0.1*randn(size(I>>。
%添加随机噪声
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>。
%将加有噪声的四幅图像线性组合<求平均)jLBHrnAILg
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('调用imlincomb去噪后的图像'>
运行结果如下:
图一
说明:
对原始图像添加四种噪声后得到加噪后的四幅图像及原始图像。
图二
说明:
将添加四种噪声的图像叠加后得到的图像,显然图像变亮了,且运动模糊,椒盐和高斯噪声没太大变化。
图三
说明:
自己均值处理后图像没图2那么亮了,运动模糊,椒盐和高斯噪声较图1明显消减了。
图四
说明:
图像亮度与原图无差异,且运动模糊,椒盐和高斯噪声较图1明显消减<自己写的程序存在不足)。
2)检测多幅图像间的变化及运动的物体
源代码如下:
I=imread('1YZ`}4G}1A]07OF$TDW0>C2.jpg'>。
psf=fspecial('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>。
title('原始图像'>
subplot(222>。
imshow(I1>。
title('运动模糊图像'>
subplot(223>。
imshow(m1>。
title('随机噪声图像'>
subplot(224>。
imshow(m2>。
title('椒盐噪声图像'>
figure(2>
subplot(221>。
imshow(I2>。
title('对运动模糊图像自己处理后的图像'>
subplot(222>。
imshow(I4>。
title('对随机噪声图像自己处理后的图像'>
subplot(223>。
imshow(I6>。
title('对椒盐噪声图像自己处理后的图像'>
figure(3>
subplot(221>。
imshow(I3>。
title('调用imsubtract函数对运动模糊图像处理后的图像'>xHAQX74J0X
subplot(222>。
imshow(I5>。
title('调用imsubtract函数对随机噪声图像处理后的图像'>LDAYtRyKfE
subplot(223>。
imshow(I7>。
title('调用imsubtract函数对椒盐噪声图像处理后的图像'>Zzz6ZB2Ltk
运行结果如下:
图五
说明:
对原始图像添加随机噪声<运动模糊、随机噪声、椒盐噪声)得到的加噪图像及原图。
图六
说明:
自己对加噪后的三幅图像与原始图像减法处理后生成的图像。
显然减法处理后显示的部分即为运动和变化的部分。
图六较图五由于图像灰度值没有发生改变,相减后图像变成了黑色,图六中留下的图像表明了原始图像发生的运动和变化<留下了发生位移的图像和噪声)。
dvzfvkwMI1
图7
说明:
图7是调用imsubstract图像减法函数得到的处理结果实验证明与图六自己处理的效果相同。
3)屏蔽掉图像的某些部分。
源代码如下:
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。