Matplotlib allows you to import and rotate an image (see also how to rotate an image using python with pillow ? ). Examples
Importing an image using matploitlib
To do so, we first need to import an image using imread()
from matplotlib import image
data = image.imread("eiffel-tower.jpeg")
Note that:
print( type(data) )
print( data.shape )
returns
<class 'numpy.ndarray'>
and
(1280, 850, 3)
Plotting the image using matploitlib
One possible solution for plotting an imported image could be to utilize the imshow
function:
plt.imshow(data)
plt.show()
Rotating the image using scipy.ndimage
One possible solution for rotating an image is to use the ndimage module.
import scipy.ndimage as ndimage
angle = 45 # in degrees
new_data = ndimage.rotate(data, angle, reshape=True)
plt.imshow(new_data)
plt.savefig("rgb_image_rotation_scipy_matplotlib_02.png", bbox_inches='tight', dpi=100)
plt.show()
Note: "reshape=True" extend automatically the size of the image to display it entirely.
If reshape=False
angle = 45 # in degrees
new_data = ndimage.rotate(data, angle, reshape=False)
plt.imshow(new_data)
plt.savefig("rgb_image_rotation_scipy_matplotlib_03.png", bbox_inches='tight', dpi=100)
plt.show()
it returns
Create a loop to rotate the image
for angle in np.linspace(0,360,9):
new_data = ndimage.rotate(data, angle, reshape=False)
plt.imshow(new_data)
plt.savefig("rgb_image_rotation_scipy_matplotlib_angle_{}.png".format(angle), bbox_inches='tight', dpi=100)
plt.show()
returns:
Example of application: create an animated image (gif)
An example of application: (see also how to create an animated image (GIF) using python and Imagemagick)
import os
os.system("convert -delay 100 rgb_image_rotation_scipy_matplotlib_angle_* eiffel-tower.gif")
References
Links | Site |
---|---|
scipy.ndimage.rotate | docs.scipy.org |
imread | matplotlib.org |