图像旋转 本篇主要利用opencv的转换函数warpAffine实现图像的平移和旋转。要进行旋转,要找到中心点,要知道旋转角度,opencv提供了函数cv2.getRotationMatrix2D来构造变换矩阵,然后将其传给warpAffine函数进行变换。 img = cv2.imread('E:/image/le.jpg',0)center=((cols-1)/2,(rows-1)/2)M = cv2.getRotationMatrix2D(center,45,1)#定义旋转矩阵,第一个参数是中心点,第二个参数是旋转角度,第三个参数是缩放比例dst = cv2.warpAffine(img,M,(cols,rows),borderValue=200)#进行变换,第一个参数是原图,第二个参数是变换矩阵,第三个参数是变换后的图像尺寸大小,第四个参数可省,为边界填充值,默认为0以下为旋转90度和180度的图,边界未填充,故为黑色。
 此函数也可用于彩色图像,如下图所示,左图为原图,右图为旋转-45度后的图,中心点都是原图的中心点。 平移是对象位置的转换,其实就是偏移(x,y)的值,可以构造矩阵M,并应用warpAffine函数进行平移。 img = cv2.imread('E:/image/le.jpg',0)M = np.float32([[1,0,100],[0,1,50]])#定义变换矩阵dst = cv2.warpAffine(img,M,(cols,rows))#仿射变换函数进行变换,第一个参数是原图,第二个参数是变换矩阵,第三个是输出图像的大小
|