700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python函数图像平移_旋转 缩放和平移二维坐标?

python函数图像平移_旋转 缩放和平移二维坐标?

时间:2024-03-25 09:10:44

相关推荐

python函数图像平移_旋转 缩放和平移二维坐标?

下面是一个关于矩阵的解决方案(这对于这种计算是有意义的,最后,二维坐标是一列的矩阵!)我是说

缩放非常简单,只需将矩阵的每个元素乘以缩放因子即可:scaled = copy.deepcopy(original)

for i in range(len(scaled[0])):

scaled[0][i]=scaled[0][i]*scaleFactor

scaled[1][i]=scaled[1][i]*scaleFactor

移动是很容易的,你所要做的就是把偏移量加到矩阵的每个元素上,下面是一个使用矩阵乘法的方法:import numpy as np

# Matrix multiplication

def mult(matrix1,matrix2):

# Matrix multiplication

if len(matrix1[0]) != len(matrix2):

# Check matrix dimensions

print 'Matrices must be m*n and n*p to multiply!'

else:

# Multiply if correct dimensions

new_matrix = np.zeros(len(matrix1),len(matrix2[0]))

for i in range(len(matrix1)):

for j in range(len(matrix2[0])):

for k in range(len(matrix2)):

new_matrix[i][j] += matrix1[i][k]*matrix2[k][j]

return new_matrix

然后创建翻译矩阵import numpy as np

TranMatrix = np.zeros((3,3))

TranMatrix[0][0]=1

TranMatrix[0][2]=Tx

TranMatrix[1][1]=1

TranMatrix[1][2]=Ty

TranMatrix[2][2]=1

translated=mult(TranMatrix, original)

最后,旋转有点难(你知道你的旋转角度吗?)以下内容:import numpy as np

RotMatrix = np.zeros((3,3))

RotMatrix[0][0]=cos(Theta)

RotMatrix[0][1]=-1*sin(Theta)

RotMatrix[1][0]=sin(Theta)

RotMatrix[1][1]=cos(Theta)

RotMatrix[2][2]=1

rotated=mult(RotMatrix, original)

进一步了解我所做的工作:

所以基本上,如果在代码中插入这些操作,将向量乘以旋转/平移矩阵,就可以了

编辑

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。