Exercises
There are sample code routines in the …/opencv/samples/c/ directory that demonstrate many of the algorithms discussed in this chapter:
lkdemo.c (optical flow)
camshiftdemo.c (mean-shift tracking of colored regions)
motempl.c (motion template)
kalman.c (Kalman filter)
The covariance Hessian matrix used in
cvGoodFeaturesToTrack()
is computed over some square region in the image set byblock_size
in that function.Conceptually, what happens when block size increases? Do we get more or fewer "good features"? Why?
Dig into the lkdemo.c code, search for
cvGoodFeaturesToTrack()
, and try playing with theblock_size
to see the difference.
Refer to Figure 10-2 and consider the function that implements subpixel corner finding,
cvFindCornerSubPix()
.What would happen if, in Figure 10-2, the checkerboard were twisted so that the straight dark-light lines formed curves that met in a point? Would subpixel corner finding still work? Explain.
If you expand the window size around the twisted checkerboard's corner point (after expanding the
win
andzero_zone
parameters), does subpixel corner finding become more accurate or does it rather begin to diverge? Explain your answer.
Optical flow
Describe an object that would be better tracked by block matching than by Lucas-Kanade optical flow.
Describe an object that would be better tracked by Lucas-Kanade optical flow than by block matching.
Compile lkdemo.c. Attach a web camera (or use a previously captured sequence of a textured moving object). In running ...
Get Learning OpenCV now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.