• Home
  • >
  • OpenCV
  • >
  • Read an Image in OpenCV ( Python, C++ )

Read an Image in OpenCV ( Python, C++ )

In OpenCV you can easily read in images with different file formats (JPG, PNG, TIFF etc.) using imread. The basic usage is shown below C++ Python The flags option is used to control how the image is read. Let’s look at some common examples. In all the examples below, make

In OpenCV you can easily read in images with different file formats (JPG, PNG, TIFF etc.) using imread. The basic usage is shown below

Download Code To easily follow along this tutorial, please download code by clicking on the button below. It's FREE!

C++

Mat imread(const string& filename, int flags=IMREAD_COLOR )


Python

image = cv2.imread(filename, flags=cv2.IMREAD_COLOR)

The flags option is used to control how the image is read. Let’s look at some common examples. In all the examples below, make sure you use the right namespace for C++ and import OpenCV for Python.
C++

using namespace cv;


Python

import cv2

Read as 8-bit / channel Color Image ( without Alpha Channel)

A vast majority of images are 8-bit per channel ( or 24-bit ) images. They can be read using default flags.

C++

Mat image = imread("image.jpg");

Python

image = cv2.imread("image.jpg")

Read as 8-bit Grayscale Image

C++

Mat image = imread("image.jpg", IMREAD_GRAYSCALE);


Python

image = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE)

Read 16-bit / channel Color Image

Most digital SLR cameras are capable of recording images at a higher bit depth than 8-bits / channel. The raw images from these cameras can be converted to 16-bit / channel PNG or TIFF images. These 16-bit / channel images can be read using
C++

Mat image = imread("image.png", IMREAD_ANYCOLOR | IMREAD_ANYDEPTH);


Python

im = cv2.imread("image.png", cv2.IMREAD_ANYCOLOR | cv2.IMREAD_ANYDEPTH)


You may also use the flag IMREAD_UNCHANGED instead. See an example below.

Read a Transparent PNG or TIFF in OpenCV

A transparent image has four channels — 3 for color, and one for transparency. These images can be read in OpenCV using the IMREAD_UNCHANGED flag.
C++

Mat image = imread("image.png", IMREAD_UNCHANGED);


Python

im = cv2.imread("image.png", cv2.IMREAD_UNCHANGED)

NOTE : CV_LOAD_IMAGE_COLOR, CV_LOAD_IMAGE_GRAYSCALE, CV_LOAD_IMAGE_ANYCOLOR, CV_LOAD_IMAGE_ANYDEPTH, and CV_LOAD_IMAGE_UNCHANGED will be removed in future versions of OpenCV.



Read Next

VideoRAG: Redefining Long-Context Video Comprehension

VideoRAG: Redefining Long-Context Video Comprehension

Discover VideoRAG, a framework that fuses graph-based reasoning and multi-modal retrieval to enhance LLMs' ability to understand multi-hour videos efficiently.

AI Agent in Action: Automating Desktop Tasks with VLMs

AI Agent in Action: Automating Desktop Tasks with VLMs

Learn how to build AI agent from scratch using Moondream3 and Gemini. It is a generic task based agent free from…

The Ultimate Guide To VLM Evaluation Metrics, Datasets, And Benchmarks

The Ultimate Guide To VLM Evaluation Metrics, Datasets, And Benchmarks

Get a comprehensive overview of VLM Evaluation Metrics, Benchmarks and various datasets for tasks like VQA, OCR and Image Captioning.

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.

Subscribe to receive the download link, receive updates, and be notified of bug fixes

Which email should I send you the download link?

🎃 Halloween Sale: Exclusive Offer – 30% Off on All Courses.
D
H
M
S
Expired
 

Get Started with OpenCV

Subscribe To Receive

We hate SPAM and promise to keep your email address safe.​