cv.jit | Computer Vision for Jitter

Objectives

cv.jit is a collection of max/msp/jitter tools for computer vision applications. The goals of this project are to provide externals and abstractions to assist users in tasks such as image segmentation, shape and gesture recognition, motion tracking, etc. as well as to provide educational tools that outline the basics of computer vision techniques.


Tools

Statistics
cv.jit.mean Calculates the mean value of a matrix over time.
cv.jit.ravg Calculates the running average of a matrix over time.
cv.jit.sum Sums all the pixels in a plane, works for any type/dim.
cv.jit.variance Estimates the variance of a matrix over time.
cv.jit.stddev Estimates the standard deviation of a matrix over time.
Motion Analysis
cv.jit.opticalflow Estimates the optical flow using various algorithms.
cv.jit.LKflow Estimates the optical flow using the Lucas-Kanade technique.
cv.jit.HSflow Estimates the optical flow using the Horn-Schunk technique.
cv.jit.track Track the position of up to 255 individual pixels.
cv.jit.features2track Initialize cv.jit.track to easiest pixels to track.
cv.jit.framesub Difference between consecutive frames.
cv.jit.shift Region tracking using the MeanShift and CAMShift algorithms.
cv.jit.touches Track multiple regions at a time. (Optimized for multi-touch interfaces.)
Binary Images
cv.jit.threshold Adaptive thresholding.
cv.jit.canny Extract binary edges from a greyscale image.
cv.jit.binedge Returns only edge pixels.
cv.jit.dilate Turns a pixel ON if at least one neighbour is ON.
cv.jit.erode Removes the edge pixels from an image.
cv.jit.open Erode followed by dilate.
cv.jit.close Dilate followed by erode.
Image Segmentation
cv.jit.floodfill Isolates a single connected component.
cv.jit.label Gives each connected component a unique value.
cv.jit.blobs.bounds Find bounding boxes for each connected component.
cv.jit.blobs.centroids Find center of mass for each connected component.
cv.jit.blobs.direction Find direction each connected component points to.
cv.jit.blobs.elongation Calculate elongation for each connected component.
cv.jit.blobs.moments Calculate moments of inertia for each connected component.
cv.jit.blobs.orientation Measure angle of main axis for each connected component.
cv.jit.blobs.recon Carry out pattern recognition on each connected components.
cv.jit.blobs.sort Re-arrange labels so that each connected component keeps the same from frame to frame.
Shape Analysis
cv.jit.mass Returns the number of non-zero pixels.
cv.jit.centroids Calculates the center of mass for an image.
cv.jit.moments Computes various invariant shape descriptors.
cv.jit.orientation Calculates a shape’s main axis.
cv.jit.direction Calculates the direction a shape points to.
cv.jit.perimeter Counts the number of edge pixels.
cv.jit.elongation Estimates how thin a shape is.
cv.jit.circularity Estimates how compact a shape is.
cv.jit.undergrad Performs simple pattern recognition.
cv.jit.learn Performs pattern analyis and recognition on an incoming list.
cv.jit.faces Finds human faces in an image.
cv.jit.features Finds areas of high contrast, pixels that are easy to track.
cv.jit.lines Finds straight lines.
cv.jit.hough Compute Hough space. (by Christopher P. Baker and Mateusz Herczka.)
cv.jit.hough2lines Find straight lines in Hough space.
cv.jit.snake Fit a point sequence to image edges.
Miscelaneous
cv.jit.grab Cross-platform wrapper for jit.qt.grab/jit.dx.grab.
cv.jit.changetype Change the type of a matrix without changing other attributes.
cv.jit.resize Anti-aliased matrix resize.
cv.jit.cartopol Treats the data in two matrices as cartesian coordinates and translates to polar data.
cv.jit.poltocar …and vice versa.
Drawing and display
cv.jit.track.draw Visualize output of cv.jit.track.
cv.jit.lines.draw Visualize output of cv.jit.lines.
cv.jit.features.draw Visualize output of cv.jit.features.
cv.jit.faces.draw Visualize output of cv.jit.faces.
cv.jit.centroids.draw Visualize output of cv.jit.centroids.
cv.jit.blobs.orient.draw Visualize output of cv.jit.blobs.orientation.
cv.jit.blobs.elongation.draw Visualize output of cv.jit.blobs.elongation.
cv.jit.blobs.direction.draw Visualize output of cv.jit.blobs.direction.
cv.jit.blobs.centroids.draw Visualize output of cv.jit.blobs.centroids.
cv.jit.blobs.bounds.draw Visualize output of cv.jit.blobs.bounds.
cv.jit.blobs.color Visualize output of cv.jit.label.
cv.jit.shift.draw Drawing utility for cv.jit.shift.
cv.jit.flow.draw Display optical flow using hue and saturation.
cv.jit.touches.draw Drawing utility for cv.jit.touches.
Obsolete objects
cv.jit.covariance Computes the covariance matrix of a vector.
cv.jit.mahalanobis Computes the Mahalanobis metric.
cv.jit.hmean Calculates the harmonic mean over time.
cv.jit.gmean Calculates the geometric mean over time.
cv.jit.trackpoints Display utility for cv.jit.track.
cv.jit.trackgroup Manager utility for cv.jit.track.
cv.jit.shapeinfo Wrapper for cv.jit.moments.

Download

The latest version of cv.jit is 1.8 and can be used with 64-bit versions of Max. A big thanks to the good folks at Cycling ’74 for porting the externals.

Download the latest build from the Github repository. Updated on 2015.4.30

Previous version (only runs on 32-bit Max)

Download cv.jit version 1.7.2. for OSX (Universal Binary).
Updated on 2010.10.13

Download cv.jit version 1.7.2 for Windows. Updated on 2010.10.13

Older versions that support Max 4.6 and earlier

Download cv.jit version 1.6.2 for OSX (Universal Binary).
Download cv.jit version 1.6.2 for Windows.

Legacy

Download cv.jit for OS 9.

License

cv.jit is distributed according to the LGPL license. This means that you can freely use these externals as part of a Max patch.

Source Code

Download the development files for OSX and Windows, including source and project files. You can also obtain the source code from the Subversion repository at the following address: https://cvjit.svn.sourceforge.net/svnroot/cvjit

Download the development files for the 64-bit port, including source and project files.

Requires jitter, available from Cycling ’74.

Leave a Reply

Your email address will not be published. Required fields are marked *