gpt4 book ai didi

python - 结合两个 warpAffine,移动和旋转图像

转载 作者:太空宇宙 更新时间:2023-11-03 23:08:29 24 4
gpt4 key购买 nike

我目前使用以下代码序列首先移动图像,然后旋转同一图像:

M = np.float32([[1,0,20],[0,1,10]])
shifted = cv2.warpAffine(img,M,(y_size,x_size),flags=cv2.INTER_LANCZOS4)
center_of_rot = (500, 500)
M = cv2.getRotationMatrix2D(center_of_rot, 1.23, 1.0)
rotated = cv2.warpAffine(shifted, M, (y_size, x_size),flags=cv2.INTER_LANCZOS4)

我认为有可能以某种方式将两个矩阵相乘并且只进行一次运算而不是两次 warpAffine,我正在寻找一些指导,因为我的数学很烂。

谢谢!

最佳答案

您必须将矩阵相乘。将第三行 [0,0,1] 添加到 2x3 矩阵。这称为齐次坐标。

M = np.float32([[1,0,20],[0,1,10],[0,0,1]]) // shift matrix
center_of_rot = (500, 500)
Rot = cv2.getRotationMatrix2D(center_of_rot, 1.23, 1.0)
Rot = np.vstack([Rot, [0,0,1]])
TransfomMatrix = np.matmul(M, Rot)
rotated = cv2.warpPerspective(img, TransformMatrix, (y_size, x_size),flags=cv2.INTER_LANCZOS4) // note - warpPerspective is used here, because the matrix is now 3x3 not 3x2

关于python - 结合两个 warpAffine,移动和旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54439041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com