Image Processing with Python : Machine Learning & Computational Photography

Photography! – The word that excites me, anyone who knows me shall agree and can easily relate to this post on the interest to explore this topic. 

We are uniting the Photography world onto the Computer Vision to create some Computational Photography.

Computational Photography has and will revolutionize the world of Smart Phone camera and its just Mind-blowing when I started to look into it and try out some code to enhance the image.

Computational photography is all about enhancing and extending the possibilities of digital photography, where it uses hardware to capture the data and software to adjust the image parameters – An example of this technology is nothing but how the Google HDR+ works.

HDR+ works like firstly capturing a burst of images in RAW and merge into a complete RAW image, where the Noise is less and increased Dynamic range. Example below.

More detail on Google HDR+ here 


There are a lot of possibilities and another one could be to remove the blurriness.

How to understand this is processed and the science behind this!

These are the top 4 image processing libraries are available to consume in Python,

1. OpenCV (Open Source Computer Vision Library)

The library has more than 2500 optimized algorithms, which includes a comprehensive set of both classic and state-of-the-art computer vision and machine learning algorithms. These algorithms can be used to detect and recognize faces, identify objects, classify human actions in videos, track camera movements, track moving objects, extract 3D models of objects and many more.

2. NumPy

Python NumPy (among other things) provides support for large,multi-dimensional arrays. Using NumPy, we can express images as multi-dimensional arrays.

3. PIL Now is PILLOW

The Python Imaging Library or PIL allowed you to do image processing in Python.


scikit-image is a collection of algorithms for image processing.

It includes algorithms for segmentation, geometric transformations, colour space manipulation, analysis, filtering, morphology, feature detection, and more. It is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy.

Below is the sample code to showcase how simple it is to use Numpy and Open CV to improve Noise in the image captured.

Toptal has an impressive article here:

Leave a Comment