forked from Qortal/Brooklyn
40 lines
1004 B
Markdown
40 lines
1004 B
Markdown
|
Post-processing example programs to play with the imv buffer:
|
||
|
=============================================================
|
||
|
|
||
|
Compile:
|
||
|
--------
|
||
|
gcc imv2pgm.c -o imv2pgm -lm
|
||
|
|
||
|
gcc imv2txt.c -o imv2txt
|
||
|
|
||
|
Record and split buffer:
|
||
|
------------------------
|
||
|
raspivid -x test.imv -o test.h264
|
||
|
|
||
|
We need to split the buffer first using split:
|
||
|
|
||
|
split -a 4 -d -b $(((120+1)\*68\*4)) test.imv frame-
|
||
|
|
||
|
Play:
|
||
|
-----
|
||
|
Now we can transform the velocity magnitues to a pgm image
|
||
|
|
||
|
./imv2pgm frame-0001 120 68 frame-0001.pgm
|
||
|
|
||
|
Or loop over all frames and create a movie
|
||
|
|
||
|
for i in frame-????; do ./imv2pgm $i 120 68 $i.pgm;convert $i.pgm $i.png; rm $i.pgm; done
|
||
|
|
||
|
avconv -i frame-%04d.png motion.avi
|
||
|
|
||
|
And we can create a text file for easy plotting
|
||
|
|
||
|
./imv2txt frame-0001 120 68 frame-0001.dat
|
||
|
|
||
|
This textfile has in each line the center position x y of the macro block and
|
||
|
the velocities u and v and the sum of differences sad.
|
||
|
|
||
|
These can be plot with xmgrace
|
||
|
|
||
|
xmgrace -autoscale none -settype xyvmap frame-0001.dat -param plot.par
|