• 大小: 2KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: 人体识别  

资源简介

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
      

评论

共有 条评论