Algorithm Overview

DirectShow overview

DirectShow treats the processing of audio/video as a network of objects, similar to Unix pipe and filters. The program follows this, with a major modules wraps the DirectShow classes with a proxy class -- DirectShowNode -- to make it usable in C#. The major nodes include a way to read audio/video files, write audio/video files, and to allow C# to get a crack at modifying the image frames.

DirectShow the links in and out of each object (node) a "pin." Each pin provides the basic information about what they do, and what the possible formats of data can go over them. When the Graph starts running, DirectShow goes thru a negotiation phase, eliminating the "cant dos" from the possible formats, and selecting the final formats for each of the pins (and objects).

How the pen is found

I'm still fiddling with which algorithm to use:
  • Using the "value" component of HSV method. This looks for pixels where any one of the RGB channels is > the specified threshold. The drawback with this method is that it is too sensitive to noise.
  • Using the "value" component of YUV method. This is not sensitive enough to the pointer, causing it to get pretty washed out.
  • Using the "lightness" component of the HLS method. I have not tried this yet

Last edited Jan 14, 2010 at 1:29 PM by randym, version 4

Comments

No comments yet.