Main
Photo Portfolio
Baseball
ShutterSounds Blog
Projects
Resumé (pdf)
About

Example 9: Pattern recognition interpolation

Pattern Recongition
Pattern Recongition

Pattern recognition takes a more advanced approach to analyzing spatial features - unlike basic edge-sensing, which only detects edges, pattern recognition searches for pre-defined patterns at every location. In this implementation, the surrounding 4 pixels (for interpolation of green, or interpolation at green pixels) are taken and divided into high or low intensity values by comparing to their average (arithmetic mean). The orientation of the high/low pixels can then be used to classify the image location as part of either an edge, corner, or stripe pattern, and the appropriate non-artifact-producing pixels are used for interpolation.

The pattern recognition algorithm is slightly more computationally expensive than basic edge-sensing, but can produce improved results, especially in images with finer detail and more complex edges.

Pattern Recongition resized 3x
(Resized 3x for clarity)

Algorithms

Choose an algorithm from the left. Feel free to send suggestions/links for new ones to thedailynathan at gmail.

Shown here is the original image for reference, and the simulated Bayer raw data which the different algoriths are run on. The simulated Bayer data is generated by taking only green, red, and blue values from the corresponding pixel in a 2x2 GRGB Bayer pattern. Assuming the image used is a 100% crop taken from an image with the top-left pixel (at position 0,0) being a first green photosite (G1), this should be a fairly accurate representation of the actual raw data (assuming of course, that a camera using a Bayer filter sensor was used, and ignoring any compression losses due to compression to 24-bit true color and possible JPEG lossy compression).

Note that this demo does not quite work as effectively with resized images (this demo resizes images greater than 300x300 for performance reasons), or images not generated from a camera using a Bayer sensor. In these cases, resolution can approach or exceed that of a Bayer sensor and anti-aliasing (AA) filter combination, and severe mosaicing artifacts should be expected to appear, no matter the algorithm.

Pixel-binned
Original image
Pixel-binned
Simulated Bayer raw data