我是Python的初学者,试图实现计算机视觉算法。我必须多次迭代图像读取为二维数组,我想避免使用for循环。
例如,我想将相机矩阵P(3x4维度)与每行坐标矩阵相乘,其中每行的尺寸为1x4。我当然会对行向量进行转置以进行矩阵乘法。以下是我使用for循环实现它的方法。我初始化一个空数组。相机是一个对象实例。所以我遍历对象以找到摄像机的总数。计数器给我相机的总数。然后我读遍矩阵v_h的每一行并执行乘法。我想在不使用python中的for循环的情况下完成以下任务。我相信这是可能的,但我不知道该怎么做。对于以千为单位的点数,使用for循环变得非常低效。我知道我的代码非常低效,并且会感激任何帮助。
for c in cameras:
counter=counter+1
for c in cameras:
v_to_s=np.zeros((v_h.shape[0],c.P.shape[0],counter),dtype=float)
for i in range(0,v_h.shape[0]):
v_to_s[i,:,cam_count]=np.dot(c.P,v_h[i,:].T)
答案 0 :(得分:0)
numpy有matmul()可以执行乘法