資源簡介
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?????
????left?=?0;right?=?0;
????for?j?=?mark:max(YY)-1
????????ynum?=?0;
????????for?i?=?min(XX)+1?:?max(XX)-1
??????
- 上一篇:Matlab特征向量歸一化
- 下一篇:一個簡單的自適應控制matlab
評論
共有 條評論