Table of Contents
- Save numpy array as image in Python
- How to save numpy array as image in Python?
- Using the PIL library to save numpy array as image in Python
- Using the matplotlib.image library to save numpy array as image in Python
- Using the opencv library to save numpy array as image in Python
- Using the imageio library to save numpy array as image in Python
- Using the scipy.misc library to save numpy array as image in Python
- Conclusion
In this post, we will see how to save numpy array as image in Python.
Save numpy
array as image in Python
Python provides a wide range of libraries that can be utilized to read and process images efficiently. Images are also processed efficiently while carrying out Computer Vision tasks. But how does Python store these images?
These images are stored and processed in the form of a numpy
array. Every image stores a pixel in a specific color code at a given position. They are stored as numpy
arrays and represent the image as [Height, Width, Channel] in a 3-D array.
How to save numpy
array as image in Python?
We will now discuss different methods to save numpy
array as image in Python.
Using the PIL
library to save numpy
array as image in Python
The Python Imaging Library was one of the standard packages for image processing. Support for this package stopped in 2011, and after that, a fork of the same package as PIL
was added as a standard library.
We can use functions from this library to save numpy
array as image in Python.
First, we will define an array that represents an image. Then, we will use the fromarray()
function to read this array as an image object. This object will be exported to an external file using the save()
function.
See the code below.
1 2 3 4 5 6 7 8 |
import numpy as np from PIL import Image a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) i = Image.fromarray(a) i.save("image.png") |
In the above example, we create an array and export it as an image. The filename and path are specified within the save()
function.
Here is image created from above numpy array.
All the other methods will also generate same image.
Using the matplotlib.image
library to save numpy
array as image in Python
The matplotlib
library is one of the standard libraries that is used for creating graphical plots. It is based on the matlab
interface. The matplotlib.image
class of this library allows us to read and process images.
To save numpy
array as image in Python, we can use the imsave()
method from this library. In this function, we can specify the array we want to export as an image and the path with the filename for the image.
See the code below.
1 2 3 4 5 6 |
import matplotlib.image a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) matplotlib.image.imsave('image.png', a) |
Using the opencv
library to save numpy
array as image in Python
The opencv
library is an open-source library available in multiple programming languages. It is available in Python and has different algorithms available to help in Computer Vision tasks. We can process images very efficiently with this library.
The imwrite()
function from this library can be used to save numpy
array as image in Python. It can export a given array as an image file. Works similar to the imsave()
function of the previous method.
It returns True if the operation is done successfully.
For example,
1 2 3 4 5 6 |
import cv2 a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) cv2.imwrite('image.png', a) |
Output:
Using the imageio
library to save numpy
array as image in Python
The imagio
library is also a cross-platform library that is used to process images. It is available in Python 3.5 and above. The functionalities are fast and easy to use.
The imwrite()
function can be used to save numpy
array as image in Python, similar to the previous method.
For example,
1 2 3 4 5 6 |
import imageio a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) imageio.imwrite('image.png', a) |
Using the scipy.misc
library to save numpy
array as image in Python
The imageio
is a relatively new addition to Python and before 2018 it existed in the scipy.misc
module. So, for older versions, we can use the imsave()
function from the scipy.misc
module to save numpy
array as image in Python.
For example,
1 2 3 4 5 6 |
import scipy.misc a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) scipy.misc.imsave('image.png', a) |
Conclusion
To conclude, we discussed how to save numpy
array as image in this article. We can use different libraries for this.
The most used method is by using the PIL
library, which is the standard library for image processing. The matplotlib.image
module can also be used for the same.
The opencv
library has many functionalities for Computer Vision tasks and can save numpy
array as image in Python using the imwrite()
function. The final two methods use the imageio
library and the scipy.misc
module.
The imageio
is a recent introduction in Python and earlier used to exist in the scipy.misc
module. The scipy.misc
module is now deprecated.
That’s all about how to save numpy array as image in Python.