A guide to image illumination editing with OpenCV
In digital image processing, a lot of various methods are used to increase the quality of the image such as noise reduction, high resolution, etc. Image illumination is one such technique that highly affects the quality of the photo. This technique is used to enhance the lighting which is nothing. By using a certain technique we illuminate the image, which means we are removing the darkness of the image. In context to image illuminating, in this article, we are going to discuss image illumination, what are the different methods and lastly a python-based implementation to understand this practice. Following are the major points listed that are to be discussed in this post.
Table of content
- What is image illumination?
- What are different methods for illumination?
- Image illumination editing with OpenCV
What is image illumination?
The basic meaning of illumination is the light that is observed on your screen right now. The photographs which are captured in low lighting conditions give less information than photographs with more lights. Professionals use image illumination techniques to improve the overall quality of the image.
For the given darker images that look too dull and tasteless, it is important for us to remove their darkness. So for this, we have to pre-process the image. There are various methods and libraries available that help to illuminate the images such as PIL or in advanced terms with GAN’s we can also address this problem. Next section we’ll discuss some methods for image illumination.
What are different methods for illumination?
There are different methods of illuminating images, first simply with the help of Python Imaging Library (PIL) which has solid image processing capabilities, one of them is illuminating images, with inbuilt predefined method ImageEnhance.Brightness” we can perform image illumination in one line.
Another way is to use advanced models like deep learning GANs. These models are extremely expensive. First, they need a huge dataset and then GPU power to first get trained and then perform illumination. Finally in our list is gamma correction which we are going to implement with the help of the cv2 python library. Gamma correction is more efficient in storing the image’s tones.
Image illumination editing with OpenCV
One solution which is very famous and effective is gamma correction. Gamma correction is a technique that controls the brightness of an image. By adjusting the gamma value we can remove the darkness of an image.
Now let’s start with implementing the Gamma correction method.
import numpy as np
import pandas as pd
import cv2 as cv
from google.colab.patches import cv2_imshow # for image display
from skimage import io
from PIL import Image
import matplotlib.pylab as plt
nat = io.imread('/content/photo-1610878180933-123728745d22.jfif')
nat_2 = cv.cvtColor(nat, cv.COLOR_BGR2RGB)
cv2_imshow(nat_2)
def gammaCorrection(src, gamma):
invGamma = 1 / gamma
table = [((i / 255) ** invGamma) * 255 for i in range(256)]
table = np.array(table, np.uint8)
return cv.LUT(src, table)
gamma = 2.5 # change the value here to get different result
adjusted = gammaCorrection(nat_2, gamma=gamma)
cv2_imshow(adjusted)
Now see the result with gamma value 2.5, It significantly improves the image brightness, now it looks more pleasing than the original image.
Final words
In this article, we have discussed what is image illumination and what are the different methods that can be used to illuminate the dark image. We practically implemented the Gamma correction method using OpenCV which syncs the image in a human perspective manner and finally results show us how it improves the illuminance level.



