资源简介
MATLAB实现人体识别,MATLAB实现人体识别,MATLAB实现人体识别,MATLAB实现人体识别,
代码片段和文件信息
%直接帧间差分,计算阈值并进行二值化处理(效果不好)
clc;
clear;
Im1 = double(imread(‘MOV4_1.bmp‘)); %读取背景图片
Im2 = double(imread(‘MOV4_3.bmp‘)); %读取当前图片
[X Y Z] = size(Im2); %当前图片的各维度值
DIma = zeros(XY);
for i = 1:X
for j = 1:Y
DIma(ij) =Im1(ij) - Im2(ij); %计算过帧间差分值
end
end
figureimshow(uint8(DIma)) %显示差分图像
title(‘DIma‘)
med = median(DIma); %计算二值化阈值:差值图像中值
mad = abs(mean(DIma) - med); %中值绝对差
T = mean(med + 3*1.4826*mad) %初始阈值
Th =5*T; %调整阈值
BW = DIma <= Th; %根据阈值对图像进行二值化处理
figureimshow(BW)
%se = strel(‘disk‘2); %膨胀处理
%BW = imopen(BWse);
%figureimshow(BW)
%title(‘BW‘)
[XX YY] = find(BW==0); %寻找有效像素点的最大边框
handle = rectangle(‘Position‘[min(YY)min(XX) max(YY)-min(YY)max(XX)-min(XX)]);
set(handle‘EdgeColor‘[0 0 0]);
hei = max(XX)-min(XX); %边框高度
mark = min(YY)+1;
while mark < max(YY)-1 %从边框左边开始到右边物质循环,寻找各个人体边缘
left = 0;right = 0;
for j = mark:max(YY)-1
ynum = 0;
for i = min(XX)+1 : max(XX)-1
- 上一篇:Matlab特征向量归一化
- 下一篇:一个简单的自适应控制matlab
评论
共有 条评论