You can take the series of RGB matrices produced by the Kinect and run them through standard image processing algorithms, in practice image processing algorithms are normally combined together to produce meaningful results. Here are a few standard techniques that could easily be implemented ( and combined) in .net:

Template Matching - a technique in digital image processing for finding small parts of an image which match a template image http://en.wikipedia.org/wiki/Template_matching

Morphological Image Processing - a theory and technique for the analysis and processing of geometrical structures, based on set theory, lattice theory, topology, and random functions
http://ashleyaberneithy.wordpress.com/2011/08/08/automating-radiology-detecting-lung-nodules-using-morphological-image-processing-in-f/

There are also more advanced image processing techniques that can be used in specific scenarios, e.g face recognition and pattern matching via machine learning

Principle Component Analysis - I've used this technique in the past, and I think that this is used in modern consumer cameras to perform facial recognition http://en.wikipedia.org/wiki/Principal_component_analysis

Machine Learning pattern matching - I've used Support Vector Machines and Neural Network based learning algorithms in the past to detect patterns in image matrices. It's worth reading Vapnik's Statistical Learning Theory - http://www.amazon.com/Statistical-Learning-Theory-Vladimir-Vapnik/dp/0471030031 which shows how to successfully map training data into an n-dimensional structure, and how to successfully model hyperplanes within the structure which classify data, new data can then be classified based on this model. A library called LibSVM also exists which I have found useful. http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Just a side note, it would probably be more natural to use F# within the .net world to implement some of these algorithms

EDIT : another really good book is "Digital Image Processing"

You can take the series of RGB matrices produced by the Kinect and run them through standard image processing algorithms, in practice image processing algorithms are normally combined together to produce meaningful results. Here are a few standard techniques that could easily be implemented ( and combined) in .net:

Template Matching - a technique in digital image processing for finding small parts of an image which match a template image http://en.wikipedia.org/wiki/Template_matching

Morphological Image Processing - a theory and technique for the analysis and processing of geometrical structures, based on set theory, lattice theory, topology, and random functions http://ashleyaberneithy.wordpress.com/2011/08/08/automating-radiology-detecting-lung-nodules-using-morphological-image-processing-in-f/

There are also more advanced image processing techniques that can be used in specific scenarios, e.g face recognition and pattern matching via machine learning

Principle Component Analysis - I've used this technique in the past, and I

thinkthat this is used in modern consumer cameras to perform facial recognition http://en.wikipedia.org/wiki/Principal_component_analysisMachine Learning pattern matching - I've used Support Vector Machines and Neural Network based learning algorithms in the past to detect patterns in image matrices. It's worth reading Vapnik's Statistical Learning Theory - http://www.amazon.com/Statistical-Learning-Theory-Vladimir-Vapnik/dp/0471030031 which shows how to successfully map training data into an n-dimensional structure, and how to successfully model hyperplanes within the structure which classify data, new data can then be classified based on this model. A library called LibSVM also exists which I have found useful. http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Just a side note, it would probably be more natural to use F# within the .net world to implement some of these algorithms

EDIT : another really good book is "Digital Image Processing"