← all work classical-computer-vision

Demosaicing

[![Python 3.10+](https://img.shields.io/badge/python-3.10+-3776AB?logo=python&logoColor=white)](https://www.python.org/)

Result

SrSceneNearestBilinear (own)Bilinear (CV)**Malvar****VNG**Edge-aware
1sea stacks · sat. edges 0.0%20.8324.2524.8330.05**30.56**24.70
2two in headscarves · 2.6%24.2130.1430.1936.94**36.96**30.39
3lynx on birch · 16.6%22.1226.6026.7332.26**32.30**26.61
4flounder on gravel · 71.7%20.5124.6624.8730.21**30.69**24.68

The finding

The signature result: whole-image PSNR hides the failure

Every method, without exception. Most of a photograph is smooth, and interpolating a missing colour across a smooth region is trivial — so the whole-image average is dominated by the pixels where the problem does not exist. The failure lives on the 3% of pixels that are edges, and it is 2 to 3 dB deep there.

The colour fringing column is what a viewer actually notices: a magenta or cyan halo on a high-contrast edge, caused by red, green and blue being interpolated to slightly different places. Malvar and VNG cut it roughly in half.

---

Figures

methods.png
methods

Elsewhere

Code and full results on GitHub (code private)

Every number is read from the file the run produced. github.com/hammasbuilds · kaggle.com/muhammadhammas13