as3-klt

September 25, 2008 ยท View on GitHub

=============== as3-klt

as3-klt is a library for image feature detection/tracking based on KLT <http://www.ces.clemson.edu/~stb/klt/>_, a C library.


Synopsis

::

// detect var bd:BitmapData = new BitmapData(image.width, image.height); bd.draw(image);

var g:Graphics = canvas.graphics; g.beginBitmapFill(bd); g.drawRect(0, 0, bd.width, bd.height); g.endFill(); g.lineStyle(1, 0xFF0000);

var tracker:KLTTracker = new KLTTracker; var features:Array = tracker.selectGoodFeatures(bd, image.width, image.height, 20); for each (var p:KLTFeature in features) { g.drawCircle(p.x, p.y, 2); }

// track var bd2:BitmapData = new BitmapData(image.width, image.height); bd2.draw(image2); var newFeatures:Array = tracker.trackFeatures(bd1, bd2, image.width, image.height, features);

var g2:Graphics = canvas2.graphics; g2.beginBitmapFill(bd2); g2.drawRect(0, 0, bd2.width, bd2.height); g2.endFill(); g2.lineStyle(1, 0xFF0000);

for each (var p:KLTFeature in newFeatures) { g2.drawCircle(p.x, p.y, 2); }


Classes

net.tokyoenvious.KLT.KLTTracker '''''''''''''''''''''''''''''''''''

Contains feature-tracking context.

selectGoodFeatures(bd:BitmapData, nCols:uint, nRows:uint, nFeatures:int):Array Finds and returns nFeatures feature points in an image bd of size nCols x nRows.

trackFeatures(bd1:BitmapData, bd2:BitmapData, nCols:uint, nRows:uint, features:Array):Array Tracks features in image bd1 of size nCols x nRows and returns their new positions in bd2.

net.tokyoenvious.KLT.KLTFeature '''''''''''''''''''''''''''''''''''

Represents a detected feature point.

x, y Feature's position.

val (selectGoodFeatures) Feature's score. (trackFeatures) Feature's status.

net.tokyoenvious.KLT.KLTFloatImage ''''''''''''''''''''''''''''''''''''''

Used internally. Has value of type Number on each pixel.

net.tokyoenvious.KLT.KLTPyramid '''''''''''''''''''''''''''''''''''

Used internally. Represents pyramid of KLTFloatImage.


TODO

  • Implement sequential mode
  • Improve speed
  • Accept tracking region as Rectangle
  • Simplify code