Python 组合步骤
有没有办法将这些步骤结合起来,这样我就可以通过减少迭代次数来提高效率Python 组合步骤,python,performance,numpy,scipy,Python,Performance,Numpy,Scipy,有没有办法将这些步骤结合起来,这样我就可以通过减少迭代次数来提高效率 first_cut_new=first_cut-res first_cut_depth[first_cut_depth>min_value+150]=0 first_cut_depth[first_cut_depth>0]=1 first_cut_depth_3D=np.dstack((first_cut_depth,first_cut_depth,first_cut_depth)) first_cut_final
first_cut_new=first_cut-res
first_cut_depth[first_cut_depth>min_value+150]=0
first_cut_depth[first_cut_depth>0]=1
first_cut_depth_3D=np.dstack((first_cut_depth,first_cut_depth,first_cut_depth))
first_cut_final= first_cut_depth_3D * first_cut_new
方法#1
在我看来,效率低下似乎是在最后两步。因此,可以避免创建first\u cut\u depth\u 3D
,而使用动态数据复制和元素相乘来实现first\u cut\u final
,就像这样-
first_cut_new = first_cut-res
first_cut_depth[first_cut_depth>min_value+150]=0
first_cut_depth[first_cut_depth>0]=1
first_cut_final = first_cut_depth[...,None]*first_cut_new
first_cut_final = (first_cut_depth <= min_value+150)[...,None]*(first_cut-res)
方法#2(适用于RGB输入阵列) 如果
first\u cut\u depth
假定为RGB图像数据,则它将仅具有正值。因此,我们可以利用它来获得更有效的单线性解决方案,就像这样-
first_cut_new = first_cut-res
first_cut_depth[first_cut_depth>min_value+150]=0
first_cut_depth[first_cut_depth>0]=1
first_cut_final = first_cut_depth[...,None]*first_cut_new
first_cut_final = (first_cut_depth <= min_value+150)[...,None]*(first_cut-res)
first_cut_final=(first_cut_depth)所涉及的输入形状是什么?first_cut-(600600,3);res-(600600,3);depth(600600)你能分享你的代码吗?直到你所做的。first_cut和res基本上是600 x 600 RGB图像,其中as depth是3D传感器图像的深度矩阵first_cut_depth[first_cut_depth>min_value+150]=0 first_cut_depth[first_cut_depth>0]=1@user4543816我会保留这些。这些看起来不是我的瓶颈。@user4543816也检查一下刚才添加的第二种方法!只是为了澄清第一个切面深度是深度数据而不是RGB数据。第一个切面是RGBdata@user4543816first\u cut\u depth
是否为负值?如果不是,则第二种方法可行。first\u cut\u depth只需为正值,而不必为RGB。