平移函使用平移公式,将numpyfloat32参数带入cv2.warpAffine() ,得到结果。
M = np.float32([[1,0,100],[0,1,50]])
dst = cv2.warpAffine(img, M, (cols,rows))
函数 cv2.warpAffine() 的第三个参数的是输出图像的大小,它的格式应该是图像的(宽,高)。应该记住的是图像的宽对应的是列数,高对应的是行数。
旋转函数,先获取旋转参数再带入,参数分别为旋转中心,旋转角度,缩放因子
M = cv2.getRotationMatrix2D((cols/2,rows/2), 90, 0.6)
dst = cv2.warpAffine(img,M,(2*cols, 2*rows))
仿射函数,将3个原图点坐标,和得到结果图的3个点坐标,生成参数带入函数得到结果
pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
pts2 = np.float32([[10, 100], [200, 50], [100, 250]])
M = cv2.getAffineTransform(pts1, pts2)
dst = cv2.warpAffine(img, M, (2*cols, 2*rows))
透视变换函数,将4个点的坐标和最终坐标代码,可以在原有图形,但是改变光线
pts1 = np.float32([[56, 65], [368, 52], [28, 387], [389, 390]])
pts2 = np.float32([[0, 0], [300, 0], [0, 300], [300, 300]])
M = cv2.getPerspectiveTransform(pts1, pts2)
dst = cv2.warpPerspective(img, M, (300, 300))