gpt4 book ai didi

python - 使用 Python 进行图像旋转

转载 作者:行者123 更新时间:2023-11-28 22:58:20 30 4
gpt4 key购买 nike

我的问题如下: 我在图像中有两个点,我得到这两个点之间的角度并将图像旋转这个角度。我需要获取这些点在图像中的新位置,但是当我尝试使用具有相同角度的旋转矩阵旋转这些点时,这些点不一致,以下代码有什么问题?

def rotMat(angle):
return asarray([[cos(angle), -sin(angle)],[sin(angle),cos(angle)]])

for i in batch2:
figure(1)
filename = "../imagens/" + i[-1]
outputFile = "./output/" + i[-1]
x1 = float(i[22]) # x coordinate of first point
y1 = float(i[23]) # y coordinate of first point
x2 = float(i[34]) # x coordinate of second point
y2 = float(i[35]) # y coordinate of second point

# angle of rotation
angle = arctan((y1-y2)/(x1-x2))

im = imread(filename)
im = ndimage.rotate(im, angle*180/pi, reshape=False)

imshow(im)
p1 = asarray([x1,y1])
p2 = asarray([x2,y2])

# Rotating the points
# [512,680] is the center of the image
p1n = (p1-[512,680]).dot(rotMat(angle)) + [512,680]

p2n = (p2-[512,680]).dot(rotMat(angle)) + [512,680]

print p1n, p2n

plot(p1n[0],p1n[1],'d')
plot(p2n[0],p2n[1],'d')

savefig(outputFile)
clf()

最佳答案

我 100% 不明白你在做什么。但是,您是否考虑过图像中的 y 轴从顶部的 0 到较低点的正值。因此,方向与通常的数学定义相反。您以通常的方式定义了 rotMat,但您必须将其应用于图像定义中沿相反方向运行的更改后的 y 轴。

关于python - 使用 Python 进行图像旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13896334/

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