gpt4 book ai didi

python - 如何在图像旋转后重新映射一个点?

转载 作者:太空狗 更新时间:2023-10-30 01:48:35 25 4
gpt4 key购买 nike

我有一个数学问题:假设我将图像围绕其中心旋转 30°,使用 opencv 和以下命令:

M = cv2.getRotationMatrix2D((cols/2,rows/2),30,1)
img_rotate = cv2.warpAffine(img,M,(cols,rows))

如果取 img_rotate 的像素 (40,40),我怎么知道原始图像中对应的像素是哪个?

编辑:换句话说,当我将旋转应用于图像时,我获得了转换后的图像。是否有可能获得点之间的映射?例如新图像的(x,y)点对应原图像的(x',y')点。

最佳答案

只需使用 Affine Transformations 中描述的矩阵运算即可和逆矩阵。

# inverse matrix of simple rotation is reversed rotation.
M_inv = cv2.getRotationMatrix2D((100/2, 300/2),-30,1)


# points
points = np.array([[35., 0.],
[175., 0.],
[105., 200.],
[105., 215.],
])
# add ones
ones = np.ones(shape=(len(points), 1))

points_ones = np.hstack([points, ones])

# transform points
transformed_points = M_inv.dot(points_ones.T).T

关于python - 如何在图像旋转后重新映射一个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30327659/

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