数字图像处理报告
姓 名: cugycy 学 院: 机械与电子信息学院 班 级: 071112-13 指导老师: 傅华明
摘要
研究目标:
本文主要研究在背景维持不变的环境下,对运动目标检测。在固定空间场中获得的运动目标的运动的一系列图像称为运动图像。我们主要研究的是在一个固定场景中,目标对象位置发生变化的情况。
采用方法:
为了分析在固定场景中目标的运动变化,首先考虑到在一系列的运动图像序列中,空间场的位置、灰度变化是非常微小的,基本上可以认为是固定不变的;而运动对象却在空间位置上发生了明显的改变,所以我们可以用背景减法来研究这一情况。 背景减法通过逐像素比较与背景图像的差别,在背景基本不变的条件下,在差图像的不为零处表明该处出现运动目标,通过求差的方法就可以将运动目标的位置和形状表现出来。在实际情况中,由于镜头的物理抖动造成的图像的移动,旋转,以及光线明暗的变化,所造成的图像背景改变,从而难以与背景图做差形成清晰,无噪声的差分图像。
完成以下编程:
为了减小误差影响,增强图像质量,在认为无镜头的旋转,先后移动情况影响下,只考虑镜头产生了上下平移变化,用相关匹配在其他图像中寻找与模板(图像1部分)最相似的子块,并剪切其他图像使其他图像与图像1的背景一致。 在不考虑处理的实时情况下,同时图像的数量较少(5张),运动目标在多幅图像叠加中不会有重叠部分,采用去除最大最小值后求均值法求得背景图像。 将图像与背景图像做差值处理,采用二维自适应维纳滤波对差值图形滤波减小噪声影响。 将滤波后差值图,设定阈值进行二值化,同时采用形态学的腐蚀膨胀,使二值图像中目标轮廓边缘更加平滑,减小图像内部空隙,符合实际目标。
取得成果:
由此我们的得到了五幅二值目标图像。通过图像位置的比较明显看到人从右到左的运动,图像的间距看出运动的距离也是不一样的,图像的大小看出距离镜头的距离也是不一样的。
未解决问题:
没能考虑镜头旋转带来的图像背景移动,从而使差值图像噪声减小更多,同时背景图像的生成不够准确,影响差值图像的质量。 未能采用更为合适的滤波,减小噪声。
图像的二值化的阈值选取,不能基于图像自身的的数据自动随之改变。 未对二值图像进行滤波,去除小的噪声点。 未对二值图像和原图像进行更进一步的匹配。 未采用彩色图像处理。
详细报告:
以图像1的部分为模板在其他图像中匹配相似的位置,从而适当剪裁其他图像使背景尽可能一致。
模板
匹配
最佳匹配处
原图与剪裁图
通过图像直观分析,发现多幅图像上的运动目标没有位置重合,从而可以采用去除图像相同位置数据中的最大值和最小值,然后取均值的方法获得背景图像。
背景图
将图像与背景图做差值计算,获得图像差图。
差值图像
采用二维自适应维纳滤波对差值图形滤波减小噪声影响。
将滤波后差值图,设定阈值进行二值化,同时采用形态学的腐蚀膨胀,使二值图像中目标轮廓边缘更加平滑,减小图像内部空隙,符合实际目标。
其他工作:
不同滤波效果中,纳维滤波的能更好的保留目标的轮廓信息,噪点可采用形态学处理去除噪点。
不同滤波效果
源代码:
clc clear all
%--------------------------------------------------------------------- % 批量获取文件
%---------------------------------------------------------------------
file=dir('G:\\study\\大四上\\数字图像处理\\m4\\p6-0*.bmp') %列出当前目录下符合正则表达式的文件夹和文件 数据结构
for n=1:length(file) %获取以名字为命名的图片数据 tmp=rgb2gray(imread(['G:\\study\\大四上\\数字图像处理\\m4\\',file(n).name]));
str_a1=[file(n).name(1:end-8),file(n).name(end-4),'=tmp;']; eval(str_a1); end
%-------------------------------------------------------------------------- %通过匹配返回坐标,保存到ppn中
%用相关匹配在图像a中寻找与模板c最相似的子块,给出代码和相关系数图 %--------------------------------------------------------------------------
for n=2:length(file) %获取以名字为命名的图片数据 b=p1;
a=eval(['p',num2str(n),';']); c=b(30:230,30:630); % imshow(c); g=dftcorr(a,c); gs=gscale(g); % figure,imshow(gs); [I,J]=find(g==max(g(:))); % figure,imshow(gs>2);
% figure,imshow(b),title(['灰度' num2str(i)]) d=a(I:I+400,J:J+600);
eval(['pp',num2str(n),'=d;']);%获取图像的相对位置
end
pp1=p1(30:430,30:630);
%-------------------------------------------------------------------------- %通过五幅图进行取去最大最小后,平均值作为被背景图层
%-------------------------------------------------------------------------- for n=1:5
eval(['pp_5(n,:,:)=pp',num2str(n),';']);%获取图像的相对位置 end
pp_max=max(pp_5);%最大 pp_max1(:,:)=pp_max(1,:,:); pp_max1=pp_max1;
pp_min=min(pp_5);%最小 pp_min1(:,:)=pp_min(1,:,:); pp_min1=pp_min1;
pp_sum=uint16(pp1)+uint16(pp2)+uint16(pp3)+uint16(pp4)+uint16(pp5);%和 pp_sum=uint8((pp_sum-uint16(pp_min1)-uint16(pp_max1))/3);%去大去小 取均值为背景图
%-------------------------------------------------------------------------- %背景减法运算 二维自适应维纳滤波 二值化
%--------------------------------------------------------------------------
for n=1:5 figure,
eval(['temp=pp',num2str(n),';']);%获取图像的相对位置 z=imabsdiff(temp,pp_sum);%取绝对值 两个图像之差 J=z; K1= z;
K2= medfilt2(J);%采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波 K3=wiener2(J,[9 9]); %对加噪图像进行二维自适应维纳滤波 K4= filter2(fspecial('average',9),J)/255; %模板尺寸为9 cs=0.15;
K1=im2bw(K1,cs);%二值化
K2=im2bw(K2, cs);%二值化
K3=im2bw(K3 ,cs);%二值化
K4=im2bw(K4, cs);%二值化 subplot(2,2,1),
imshow(eval(['pp',num2str(n),])); title(['原图像' num2str(n)]) %————-————腐蚀开运算—————— foc=imclose(K3,strel('square',10));
subplot(2,2,2),
imshow(z);title('差值图像'); f=foc;
se=strel('square',2); fo=imopen(f,se); subplot(2,2,3),
imshow(K4);title('二值化');
%————-————腐蚀运算—————— f=fo;
se=strel('disk',2); fo=imopen(f,se); subplot(2,2,4),
imshow(fo);title('形态学处理'); end
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务