Skip to main content
This guide demonstrates the fundamental operations of reading images from disk, displaying them in windows, and saving them to files.

Overview

Image I/O is the foundation of computer vision applications. OpenCV provides simple functions to:
  • Read images from various formats (JPEG, PNG, BMP, etc.)
  • Display images in GUI windows
  • Save processed images to disk
  • Handle errors when files are not found

Basic Image Loading and Display

1

Read the image

Use imread() to load an image file. Always check if the image was loaded successfully.
2

Display the image

Use imshow() to display the image in a named window, followed by waitKey() to keep the window open.
3

Save the image (optional)

Use imwrite() to save the image to a file.

Complete Example

import cv2 as cv
import sys

# Read the image
img = cv.imread(cv.samples.findFile("starry_night.jpg"))

# Check if image was loaded successfully
if img is None:
    sys.exit("Could not read the image.")

# Display the image in a window
cv.imshow("Display window", img)
k = cv.waitKey(0)  # Wait for a keystroke

# Save image if 's' key is pressed
if k == ord("s"):
    cv.imwrite("starry_night.png", img)

Window Operations

OpenCV provides several functions to manage display windows:

Creating and Managing Windows

import cv2 as cv

# Create a named window with specific properties
cv.namedWindow("My Window", cv.WINDOW_NORMAL)

# Resize the window
cv.resizeWindow("My Window", 800, 600)

# Move the window to a specific position
cv.moveWindow("My Window", 100, 100)

# Display an image
img = cv.imread("image.jpg")
cv.imshow("My Window", img)
cv.waitKey(0)

# Destroy specific window
cv.destroyWindow("My Window")

# Or destroy all windows
cv.destroyAllWindows()

Image Reading Flags

The imread() function accepts flags to control how images are loaded:
import cv2 as cv

# Read image in color (default)
img_color = cv.imread("image.jpg", cv.IMREAD_COLOR)

# Read image in grayscale
img_gray = cv.imread("image.jpg", cv.IMREAD_GRAYSCALE)

# Read image with alpha channel
img_alpha = cv.imread("image.png", cv.IMREAD_UNCHANGED)

# Read image and reduce it to 1 channel grayscale
img_reduced = cv.imread("image.jpg", cv.IMREAD_REDUCED_GRAYSCALE_2)
Always check if an image was loaded successfully before processing it. An empty/null image will cause your program to crash.

Key Functions

FunctionDescription
imread()Loads an image from a file
imshow()Displays an image in a window
imwrite()Saves an image to a file
waitKey()Waits for a key press (0 = wait indefinitely)
namedWindow()Creates a window with a specific name
destroyWindow()Closes a specific window
destroyAllWindows()Closes all OpenCV windows
Use cv.samples.findFile() to locate sample images that come with OpenCV. This ensures your code works across different platforms and installations.