2016-05-06 51 views
1

有什麼辦法可以將這些步驟組合起來,以便通過減少迭代次數來提高效率。結合步驟

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 
+0

涉及的輸入的形狀是什麼? – Divakar

+0

first_cut - (600,600,3);水庫(600,600,3);深度(600,600) – user4543816

+0

你能分享你的代碼嗎?高興你做了什麼。 – kanayamalakar

回答

2

方法#1

對我來說,效率低下的樣子是在最後兩個步驟。所以,一個可能避免創建first_cut_depth_3D並獲得first_cut_final與在飛行中的數據複製和按元素乘法NumPy broadcasting,像這樣 -

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 

方法2(用於RGB輸入數組)

如果first_cut_depth應該是一個RGB圖像數據,它只會有正值。所以,人們可以利用這種方法來獲得更高效的單線解決方案,就像這樣 -

first_cut_final = (first_cut_depth <= min_value+150)[...,None]*(first_cut-res) 
+0

這兩個步驟如何first_cut_depth [first_cut_depth> min_value + 150] = 0 first_cut_depth [first_cut_depth> 0] = 1 – user4543816

+0

@ user4543816我會保留這些。那些看起來不像是我的瓶頸。 – Divakar

+0

好的,謝謝..我試試 – user4543816