-
Notifications
You must be signed in to change notification settings - Fork 0
/
extract_motion.m
36 lines (32 loc) · 1.34 KB
/
extract_motion.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function [pt_1,br,len,rec_flag]=extract_motion(img_o,img_l)
global sensitivity
pt_1=[];
br=[];
len=[];
th=20;
a=size(img_o);
if(length(a)>2)
img_o=rgb2gray(img_o);
img_l=rgb2gray(img_l);
end
d=abs(double(img_l) - double(img_o));
d=d>th;
d=bwareaopen(d,10);
d=imfill(d,'holes');
se=strel('disk',3);
d=imdilate(d,se);
s=round((1-(sensitivity/100))*200);
d=bwareaopen(d,s);
[r,c]=find(d==1);
rec_flag=0;
if ~(isempty(r))
[lab,num]=bwlabel(d);
for i=1:num
[r,c]=find(lab==i);
pt_1(i,:)=[min(c) min(r)];
len(i,1)=max(r)-min(r);
br(i,1)=max(c)-min(c);
rec_flag=1;
end
end
end