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)

  1. The covariance Hessian matrix used in cvGoodFeaturesToTrack() is computed over some square region in the image set by block_size in that function.

    1. Conceptually, what happens when block size increases? Do we get more or fewer "good features"? Why?

    2. Dig into the lkdemo.c code, search for cvGoodFeaturesToTrack(), and try playing with the block_size to see the difference.

  2. Refer to Figure 10-2 and consider the function that implements subpixel corner finding, cvFindCornerSubPix().

    1. 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.

    2. If you expand the window size around the twisted checkerboard's corner point (after expanding the win and zero_zone parameters), does subpixel corner finding become more accurate or does it rather begin to diverge? Explain your answer.

  3. Optical flow

    1. Describe an object that would be better tracked by block matching than by Lucas-Kanade optical flow.

    2. Describe an object that would be better tracked by Lucas-Kanade optical flow than by block matching.

  4. Compile lkdemo.c. Attach a web camera (or use a previously captured sequence of a textured moving object). In ...

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.