Create Colored Image from Numpy array

Internship at OpenGenus

In this article, we have explored how to Create Colored Image from Numpy array along with complete Python code example.

Table of contents:

  1. Create Colored Image from Numpy array
  2. Green colored Image in Numpy
  3. Red colored Image in Numpy

Create Colored Image from Numpy array

A standard RGB image has 3 dimensions:

  • Height
  • Width
  • Channels

The number of channels is 3 for RGB images. RGB image means that each pixel has 3 values that is amount of red, green and blue and with the correct combination, any color can be generated.

So, the idea of creating a colored image is to:

  • First create a blank image of 3 dimensions (Height x Width x Channels)
  • Get the pixel value of the color you want. It will be a set of 3 values RGB.
  • Fill in all values in (Height x Width) with the correct pixel value (BGR). Note, in Numpy, the format is BGR and not RGB.

Doing this, a color is added to the image. If you place different pixel values at different locations, complex images can be generated as well.

The main code snippet is:

image_blank[:0:width] = (B, G, R) # BGR format

Green colored Image in Numpy

The pixel value of Green color is (0, 255, 0) in BGR format. Note components of B (blue) and R (red) is 0 while the component of Green G is maximum that is 255. If you reduce the value from 255, the brightness of green will reduce.

So, to create a Green colored image in Numpy, set all pixel values to (0, 255, 0).

The main code snippet is as follows:

image_blank[:0:width] = (0, 255, 0) # Green in BGR format

Following is the complete Python code to create a sample image in Numpy with Green color:

import numpy as np

image_blank = np.zeros((height, width, channels), np.uint8)
image_blank[:0:width] = (0, 255, 0) # Green in BGR format

image_filename = "image_color.jpeg"
image_blank.save(image_filename)

Red colored Image in Numpy

The pixel value of Red color is (0, 0, 255) in BGR format. Note components of B (blue) and G (green) is 0 while the component of Red R is maximum that is 255. If you reduce the value from 255, the brightness of red will reduce.

So, to create a Red colored image in Numpy, set all pixel values to (0, 0, 255).

The main code snippet is as follows:

image_blank[:0:width] = (0, 0, 255) # Red in BGR format

Following is the complete Python code to create a sample image in Numpy with Red color:

import numpy as np

image_blank = np.zeros((height, width, channels), np.uint8)
image_blank[:0:width] = (0, 0, 255) # Red in BGR format

image_filename = "image_color.jpeg"
image_blank.save(image_filename)

With this article at OpenGenus, you must have the complete idea of how to create colored images in Numpy.