NVIDIA Jetson TX1 OpenCV 101 Tutorials

View project on GitHub

NVIDIA Jetson TX1 OpenCV 101 Tutorials


In this repo, you will found the code from the OpenCV 101 tutorials. The tutorials a bit old and there are a couple of things that need to be fixed to be implemented with OpenCV 3.3.1.

Dev environment


  • 0-cv-hello: Episode 0 - Introduction to OpenCV: Learn to write your first ‘Hello World’ program on Jetson with OpenCV. You’ll learn a simple compilation pipeline with Midnight Commander, cmake, and OpenCV4Tegra’s mat library, as you build for the first time.

  • 1-cv-mat: Episode 1 - CV Mat Container Learn to work with mat, OpenCV’s primary container. You’ll learn memory allocation for a basic image matrix, then test a CUDA image copy with sample grayscale and color images.

  • 2-cv-io: Episode 2: Multimedia I/O Learn to manipulate images from various sources: JPG and PNG files, and USB webcams. Run standard filters such as Sobel, then learn to display and output back to file. Implement a rudimentary video playback mechanism for processing and saving sequential frames.

  • 3-cv-basic: Episode 3: Basic Operations Start with an app that displays an image as a Mat object, then resize, rotate it or detect “canny” edges, then display the result. Then, to ignore the high-frequency edges of the image’s feather, blur the image and then run the edge detector again. With higher window sizes, the feather’s edges disappear, leaving behind only the more significant edges present in the input image.

  • 4-cv-flow: Episode 4: Feature Detection and Optical Flow Take an input MP4 video file (footage from a vehicle crossing the Golden Gate Bridge) and detect corners in a series of sequential frames, then draw small marker circles around the identified features. Watch as these demarcated features are tracked from frame to frame. Then, color the feature markers depending on how far they move frame to frame. This simplistic analysis allows points distant from the camera—which move less—to be demarcated as such.

  • 5-cv-features: Episode 5: Descriptor Matching and Object Detection Use features and descriptors to track the car from the first frame as it moves from frame to frame. Store (ORB) descriptors in a Mat and match the features with those of the reference image as the video plays. Learn to filter out extraneous matches with the RANSAC algorithm. Then multiply points by a homography matrix to create a bounding box around the identified object. The result isn’t perfect, but try different filtering techniques and apply optical flow to improve on the sample implementation. Getting good at computer vision requires both parameter-tweaking and experimentation.