Scipy image processing and manipulation through Python
In this tutorial, you are going to learn about the image processing and manipulation through SciPy module. To make the image manipulation and processing, firstly we have to import all the modules.
from scipy import misc,ndimage from matplotlib import pyplot as plt import numpy as np
The basic operations in image processing and manipulations are: displaying the image, grayscale the image, blur the image, crop the image, rotate the image and etc.
Table of contents:
- Display Image
- Grayscale Image
- Rotate an Image
- Crop an Image
- Blur Image
Image display in Python using SciPy and matplotlib
To display the image, some inbuilt images are saved in the misc sub-package. You can access these images and plot them on the scale with the help of the methods of matplotlib module.
from scipy import misc from matplotlib import pyplot as plt import numpy as np f1=misc.face() # to get the image plt.imshow(f1) plt.show() # to show the image
Output:-
from scipy import misc from matplotlib import pyplot as plt import numpy as np f2=misc.ascent() plt.imshow(f2) plt.show()
Output:-
Grayscale image in Python using SciPy and matplotlib
The color of the image can be the change with the help of gray parameter of the face.
The graphical axis can be removed with the plt.axis(‘off’).
from scipy import misc from matplotlib import pyplot as plt import numpy as np f1=misc.face(gray=True) plt.imshow(f1) plt.axis('off') plt.show()
Output:-
Image rotation in Python using SciPy and matplotlib
Image rotation is done with the ndimage sub-module of SciPy. The rotate() method will rotate the image to the mentioned angle in the parameter.
from scipy import misc,ndimage from matplotlib import pyplot as plt import numpy as np f1=misc.face() ro=ndimage.rotate(f1,45) plt.imshow(ro) plt.show()
Output:-
The fluipud() method will flip the image from up to down and down to up with respect to the image position.
from scipy import misc,ndimage from matplotlib import pyplot as plt import numpy as np f1=misc.face() flip = np.flipud(f1) plt.imshow(flip) plt.show()
Output:-
Cropping the image in Python using SciPy and matplotlib
The size of the image can be altered. The shape will get the size of the image after that you can crop it by using slicing.
from scipy import misc,ndimage from matplotlib import pyplot as plt import numpy as np f1=misc.face() lx,ly,lz=f1.shape crop = f1[lx // 4: - lx // 4, ly // 4: - ly // 4] plt.imshow(crop) plt.show()
Output:-
Blur image in Python using SciPy and matplotlib
The gaussian_filter() will blur the image. The value of sigma will increase the blur effect in the image.
from scipy import misc,ndimage from matplotlib import pyplot as plt import numpy as np f1=misc.face() blur=ndimage.gaussian_filter(f1,sigma=4) plt.imshow(blur) plt.show()
Output:-
Check out the other tutorials on Python:
Shallow copy and Deep copy in Python
Thanks.
Can you provide further URLs using ndimage, scipy, and matplotlib which manipulate images