Code covered by the BSD License

### Highlights from Fast Motion Detection(bugs fixed)

4.33333

4.3 | 3 ratings Rate this file 24 Downloads (last 30 days) File Size: 169 KB File ID: #15767

# Fast Motion Detection(bugs fixed)

01 Aug 2007 (Updated )

this script used a new fast block matching algorithm with dynamic search patterns to obtain motion v

File Information
Description

this script used a new fast block matching algorithm with dynamic search patterns to obtain motion vectors for each blocks.
[rep_motion motion_vector] = fastMV(im1, im2, w)
1. check with big diamond.
2. check with one of the hexagon subject to previous results.
3. check with small diamond.
'im1' is base frame of a video and 'im2' is the second frame. and 'w' is
the window size. 'rep_motion' is the representative motion vector and
'motion_vector' declare motion vectors for each block of image.
Example:
w = 16;
[rep_m m_vector] = fastMV(im1, im2, w);
files: fastMV.m, frame01.pgm, frame02.pgm

Required Products Image Processing Toolbox
MATLAB release MATLAB 7.4 (R2007a)
Tags for This File   Please login to tag files.
Comments and Ratings (3)
28 Feb 2012

and can i know how the above code works ??

08 Sep 2010

Analaozing this file, I found that the calculations of the differences between the reference Macro Block and his neihgborhoods, sometimes the difference between pixels are zero but the pixels are not the same. I explain it better in an example.

on line 77

diff.diam1{1, k} = abs(slice1{i, j}- im2(s_h_r + pat.diam1(1, k):...
i *w + pat.diam1(1, k),...
s_h_c + pat.diam1(2, k):...
j * w + pat.diam1(2, k)));

if for exemple slice{1,j} = [255 128]
and im2 of the seleced pixels is im2(...)=[255 255]
Then the difference in the fastMV.m file is
diff.diam1{1,k} = [0 0]
and if I'm not wrong this would be
diff.diam1{1,k} = [0 127]

I think that this happens because uint8 doesn't admit negative numbers and the difference (before the abs function) is negative and it aproximates it to 0.

I don't know if it is known and is correct for the algoritm or there is a mistake.

Thanks.

17 Jun 2010