Classic Computer Vision Methods


Image morphing

A morph is a simultaneous warp of the image shape and a cross-dissolve of the image colors. The cross-dissolve is the easier part; controlling and doing the warp is the harder part. The warp is controlled by defining a correspondence between the two pictures. The correspondence should map eyes to eyes, mouth to mouth, chin to chin, ears to ears, etc., to get the smoothest transformations possible.


Canny Edge Detection

Applying Gaussian smoothing and compute local edge gradient magnitude as well as orientation, then seeking local maximum edge pixel in corresponding orientation. Finally, continue searching in the edge orientation of detected edge points.

Canny Edge Detection

Image Gradient Blending

The goal is to seamlessly blend an object from a source image into a target image. The simplest method would be to just copy and paste the pixels from one image directly into the other. However, this will create apparent seams, even if the backgrounds are alike. We need to get rid of these seams without visually tampering the source image.

Human vision is found to be more sensitive to gradients than absolute image intensities. We formulate this problem as finding values for the output pixels that maximally preserve the gradient of the source region without altering any of the background pixels.

Blending Result 1
Blending Result 2

Seam Carving

For this project, I am going to implement image resizing utilizing scene carving. The structure of this part of the project is based heavily on the methods outlined by Avidan & Shamir in their paper.

Seam Carving Result 1
Seam Carving Result 2

Image Stitching

First, detecting features in an image frame and find the best matching features in other frames. These features should be reasonably invariant to translation and rotation. Once we have the homography, we will need to warp the images.

Original Images
Result
Original Images
Result
Original Images
Result

Optical Flow

In this part of the project, I am going to track an object in a video. There are two essential components to this: feature detection and feature tracking. I will identify features within the bounding box for each object using Harris corners or Shi-Tomasi features. Then I will apply the Kanade-Lucas-Tomasi tracking procedure to track the features I found. This involves computing the optical flow between successive video frames and moving the selected features as well as the bounding box from the first frame along the flow field.

Related