先了解cv2.warpAffine()+cv2.getRotationMatrix2D()
定义
cv2.getAffineTransform(pts1,pts2)
用法
仿射变换,指一个向量空间进行线性变换+平移变成另外一个向量空间,它需要一个变换矩阵,而由于仿射变换较为复杂,一般很难找出这个矩阵,于是opencv提供了cv2.getAffineTransform()
cv2.getAffineTransForm()通过找原图像中三个点的坐标和变换图像的相应三个点坐标,创建一个2X3的矩阵。最后这个矩阵会被传给函数cv2.warpAffine()
函数作用 | 构建变换矩阵 |
pts1 | 原图像三个点的坐标 |
pts2 | 原图像三个点在变换后相应的坐标 |
示例文章来源:https://www.toymoban.com/news/detail-594540.html
import cv2
import numpy as np
from matplotlib import pyplot as plt
img=cv2.imread('D:/3.png')
rows,cols,ch = img.shape
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,(cols,rows))
plt.subplot(121),plt.imshow(img),plt.title('Input')
plt.subplot(122),plt.imshow(dst),plt.title('output')
plt.show()
效果图
文章来源地址https://www.toymoban.com/news/detail-594540.html
到了这里,关于cv2.getAffineTransform()简要介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!