目录
一、仿射矩阵
图像的旋转加上拉升就是图像仿射变换。
opencv中通过定义两个array(pos1,pos2),结合cv2.getAffineTransform(pos1,pos2)来实现仿射变换。
pos1和pos2是3X2的矩阵,每一行都是一个点的位置,其中pos1定义的是原图中三个点的位置,pos2定义的是仿射后的图中三个点的位置。
M=cv2.getAffineTransform(pos1,pos2),其中两个位置就是变换前后的对应位置关系。输出的就是仿射矩阵M。
二、warpAffine()
res = cv2.warpAffine(img1,aff,(2*x,2*y))
三、代码
import cv2
import numpy as np
img1 = cv2.imread('./Image/reba_color.jpg',cv2.IMREAD_COLOR)
x,y = img1.shape[:2]
b = np.float32([[50,50],[200,50],[50,200]])
p = np.float32([[10,100],[200,50],[100,250]])
aff = cv2.getAffineTransform(b, p)
res = cv2.warpAffine(img1,aff,(2*x,2*y))
cv2.imshow('img',img1)
cv2.imshow('res',res)
cv2.waitKey(0)