欢迎来到天天文库
浏览记录
ID:78506190
大小:15.00 KB
页数:2页
时间:2022-02-03
《图像特征提取matlab程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除%直接帧间差分,计算阈值并进行二值化处理(效果不好)clc;clear;Im1=double(imread('lena.TIF'));%读取背景图片Im2=double(imread('lena.TIF');%读取当前图片[XYZ]=size(Im2);%当前图片的各维度值DIma=zeros(X,Y);fori=1:Xforj=1:YDIma(i,j)=Im1(i,j)-Im2(i,j);%计算过帧间差分值endendfigure,imshow(uint8(DIma))%显示差分图像title('DIma')med=median(DI
2、ma);%计算二值化阈值:差值图像中值mad=abs(mean(DIma)-med);%中值绝对差T=mean(med+31.4826mad)%初始阈值Th=5T;%调整阈值BW=DIma<=Th;%根据阈值对图像进行二值化处理figure,imshow(BW)%se=strel('disk',2);%膨胀处理%BW=imopen(BW,se);%figure,imshow(BW)%title('BW')[XXYY]=find(BW==0);%寻找有效像素点的最大边框handle=rectangle('Position',[min(YY),min(XX),max(YY)-min(YY
3、),max(XX)-min(XX)]);set(handle,'EdgeColor',[000]);hei=max(XX)-min(XX);%边框高度mark=min(YY)+1;whilemark0.1hei%如果该列上像素点个数大于边框高度的某个阈值left=j%认为找到了左边界mark=j;breakende
4、nd【精品文档】第2页精品文档,仅供学习与交流,如有侵权请联系网站删除ifleft~=0%如果找到了左边界forj=left+1:max(YY)-1%则从左边界到边框右边界寻找人体右边界ynum=0;fori=min(XX)+1:max(XX)-1ifBW(i,j)==0;ynum=ynum+1;endendifynum<0.1hei%如果该列上像素点个数小于边框高度的某个阈值right=j%认为找到了左边界mark=j;breakendendifleft~=right%如果左右边界值不相等,即同时找到了左右边界,继续以左右边界为界寻找上下边界[top,bottom]=Find_ed
5、ge(BW,min(XX)+1,max(XX),left,right,0.1);handle=rectangle('Position',[left,top,right-left,bottom-top]);set(handle,'EdgeColor',[000]);%显示图像中人体有效边界endendmark=mark+1;end%while【精品文档】第2页
此文档下载收益归作者所有