Image data and operations

OpenCV (cv2) can be used to extract data from images and do operations on them. We demonstrate some examples of that below:

Image properties We can extract the width, height and color depth using the code below:

import cv2
import numpy as np

# read image into matrix. m = cv2.imread("python.png")

# get image properties. h,w,bpp = np.shape(m)

# print image properties. print "width: " + str(w) print "height: " + str(h) print "bpp: " + str(bpp)

Access pixel data We can access the pixel data of an image directly using the matrix, example:

import cv2
import numpy as np

# read image into matrix. m = cv2.imread("python.png")

# get image properties. h,w,bpp = np.shape(m)

# print pixel value y = 1 x = 1 print m[y][x]

To iterate over all pixels in the image you can use:

import cv2
import numpy as np

# read image into matrix. m = cv2.imread("python.png")

# get image properties. h,w,bpp = np.shape(m)

# iterate over the entire image. for py in range(0,h): for px in range(0,w): print m[py][px]

Image manipulation You can modify the pixels and pixel channels (r,g,b) directly. In the example below we remove one color channel:

import cv2
import numpy as np

# read image into matrix. m = cv2.imread("python.png")

# get image properties. h,w,bpp = np.shape(m)

# iterate over the entire image. for py in range(0,h): for px in range(0,w): m[py][px][0] = 0

# display image cv2.imshow('matrix', m) cv2.waitKey(0)

To change the entire image, you'll have to change all channels:   m[py][px][0], m[py][px][1], m[py][px][2].

Save image You can save a modified image to the disk using:

cv2.imwrite('filename.png',m)
Back ⚡ Practice with PyChallengeNext