How to Change the Contrast and Brightness of an Image Using OpenCV in Python
As a developer working with image processing, sometimes you need to modify the contrast and brightness of an image to improve its quality. The good news is that you can use OpenCV library in Python to do this. In this article, we will see in detail how to change the contrast and brightness of an image using OpenCV in Python.
Setting Up the Environment
Before we proceed with the code implementation, we need to download and install the OpenCV library. You can install OpenCV using the following command in your terminal:
pip install opencv-python
Once the installation is complete, you can import the library in your Python script using the following code snippet:
import cv2
Reading and Displaying an Image
Now that you have installed and imported the OpenCV library, let’s read and display an image. We will be using the cv2.imread()
function to read the image and the cv2.imshow()
function to display it.
# Reading an Image
img = cv2.imread("your_image.jpg")
# Displaying the Image
cv2.imshow("Original Image", img)
cv2.waitKey(0)
The cv2.imread()
function reads the image file in BGR (Blue-Green-Red) format, whereas the cv2.imshow()
function displays the image on the screen. In this code i have also used cv2.waitKey()
to make sure that the image window stays open until the user closes it.
Changing the Contrast and Brightness
Now that you understand how to read and display an image, we can proceed with changing its contrast and brightness values. We will be using the cv2.convertScaleAbs()
function to do this. The cv2.convertScaleAbs()
function scales and shifts the image pixel intensities.
# Changing the Contrast and Brightness
alpha = 1 # Contrast (1.0 - 3.0)
beta = 50 # Brightness (0-100)
res = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)
# Displaying the Modified Image
cv2.imshow("Modified Image", res)
cv2.waitKey(0)
In this code, we have defined two variables alpha
and beta
. The alpha
variable represents the contrast of the image and accepts values from 1.0 to 3.0. The beta
variable represents the brightness of the image and accepts values from 0 to 100.
Understanding the Code
The cv2.convertScaleAbs()
function takes three arguments:
src
: the source imagealpha
: the contrast of the imagebeta
: the brightness of the image
This function calculates the output pixel values using the formula beta + (alpha * pixel value)
.
Putting It All Together
Now that you know how to read and modify the contrast and brightness of an image, let’s put it all together in one final code snippet:
import cv2
# Reading Image
img = cv2.imread("your_image.jpg")
# Changing the Contrast and Brightness
alpha = 1 # Contrast (1.0 - 3.0)
beta = 50 # Brightness (0-100)
res = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)
# Displaying Images
cv2.imshow("Original Image", img)
cv2.imshow("Modified Image", res)
cv2.waitKey(0)
Conclusion
In this article, we have learnt how to change the contrast and brightness of an image using OpenCV library in Python. With the help of the cv2.convertScaleAbs()
function, we can modify the pixel intensities of an image and make it look better. Try modifying the values of alpha
and beta
in the above code, and see the changes in the output image.