2013-12-23 177 views
0

我操縱了一個jpg圖像,這樣我的前景就被隔離了,而其他地方的所有黑色像素都被隔離了。 我希望能夠裁剪圖像,以便上面和下面沒有完整的黑色行,或者前景的左側和右側沒有全黑色的列。 我在想我可以得到我需要的4個索引,只需循環訪問Numpy數組,但想知道是否有更直接和/或更快的方法。在Python中裁剪圖像的前景

import numpy as np 
import matplotlib.pyplot as plt 


im=np.array( 
[[0,0,0,0,0,0,0], 
[0,0,1,1,1,0,0],  
[0,1,1,1,0,0,0],  
[0,0,1,1,0,0,0],  
[0,0,0,0,0,0,0]]) 

plt.imshow(im, cmap=plt.cm.gray,interpolation='nearest') 

enter image description here

然後有事這裏,我也得到:

enter image description here

+0

循環所有像素沒有任何問題。你只從一個方向做一次,一旦你找到某個東西就停下來,所以它應該很快。 –

回答

1

im[~np.all(im == 0, axis=1)]可以與所有零刪除行。 axis=2將被刪除。這對你有用嗎?