21. Scipy Tutorial-图像旋转变换
scipy的misc模块里提供了很多的内建图像数据,例如lena、face、ascent等,可供在scipy里直接访问这些图像数据并使用scipy提供的一些算法处理;scipy的ndimage模块里也有一些函数可以对scipy图像数据进行操作例如旋转函数rotate可以以任意角度旋转图像。无论怎样,图像数据在scipy、opencv里等都是一数组的形式存在,灰度图是二维的,而彩色图像数据是三维的,所以图像在scipy、numpy或者python里都是数组,那么在之前的章节NumPy矩阵的旋转研究了用自己的办法去旋转矩阵或者方阵,那么在scipy、Numpy里图像本质是数组,那么也可用NumPy矩阵的旋转章节里的方式去旋转图像!
本章简要介绍scipy.ndimage里的rotate函数,去旋转图像,本章还想再次尝试NumPy矩阵的旋转一章里的方法去旋转图像,看行不行?
21.1 ndimage.rotate旋转图像
scipy.ndimage里的rotate函数能旋转图像,功能挺强!
scipy.ndimage.rotate(input, angle, axes=(1, 0), reshape=True, output=None, order=3, mode='constant', cval=0.0, prefilter=True)
参数很多,angle需要说明,正数逆时针(向左)旋转,负数时顺时针(向右)旋转。
#coding:utf-8
from scipy import misc, ndimage
import matplotlib.pyplot as plt
import scipy
print "scipy version is:", scipy.__version__
src = misc.face()
misc.imsave('faceRGB.png', src)
img = ndimage.imread("faceRGB.png", mode = "L")
misc.imsave('faceGray.png', img)
plt.gray()
plt.