2017-09-11 88 views
1

我正在運行此代碼,它將圖像的值作爲數組輸出,但使用四個值RGB和Alpha,我如何刪除最後一個值,使其僅顯示RGB即時通訊處理。在Python中刪除二維數組中的最後一個值

from PIL import Image, ImageFilter 
import numpy as np 

ImageLocation = Image.open("images/numbers/0.1.png") 

#Creates an Array [3d] of the image for the colours 
ImageArray = np.asarray(ImageLocation) 

print(ImageArray) 

這是我的輸出是每個像素,我只想要RGB輸出不是第4列。由於您使用PIL

rgb = my_array[:,:,:3] 

另外:

[[[255 255 255 255] 
    [255 255 255 255] 
    [ 0 0 0 255] 
    [ 0 0 0 255] 
    [ 0 0 0 255] 
    [ 0 0 0 255] 
    [255 255 255 255] 
    [255 255 255 255]] 
+1

如果這是一個numpy的數組,那麼'ImageArray [:,: - 1]'會做到這一點。 – AChampion

+0

你確定這是2D的,而不是3D?應該有三個維度:X,Y和R/G/B/Alpha,不一定按此順序。 – user2357112

+0

您似乎切斷了部分輸出。 – user2357112

回答

2

您可以切片numpy的陣列,像這樣

im = Image.open("path/to/image") 
rgb = im.convert('RGB') 
+1

你正在切錯軸。 – user2357112

+0

現在好了,儘管我懷疑它仍然不適合提問者的實際數組(可能是3D,而不是2D)。 – user2357112

+0

正確,調整爲PIL/cv2圖像 –