2014-03-24 370 views
1

我想從圖像文件名轉到圖像中白色像素座標列表。Python - 獲取圖像的白色像素

我知道它涉及PIL。我嘗試過使用Image.load(),但這沒有幫助,因爲輸出不可編入索引(在for循環中使用)。

+1

是它的可轉位,它使用的元組指標雖然,[見這裏](http://stackoverflow.com/questions/21205846/python-pil-editing-pixels-versus-imagedraw-point/21205979#21205979)。 – 2014-03-24 17:32:02

+0

[使用opencv/Numpy在python中查找彩色圖像中的白色像素]可能的副本(http://stackoverflow.com/questions/22397094/using-opencv-numpy-to-find-white-pixels-in-a -color-image-using-python) – YXD

回答

2

您可以將圖像轉儲爲一個numpy數組,並以這種方式處理像素值。

from PIL import Image 
import numpy as np 
im=Image.open("someimage.png") 
pixels=np.asarray(im.getdata()) 
npixels,bpp=pixels.shape 

這會給你一個數組,其尺寸將取決於有多少頻帶具有每像素(上述BPP)和行的數量乘以所述圖像中的列數 - 形狀會給你的大小的結果數組。一旦你的像素值,它應該是簡單的過濾掉那些值255

要將numpy的數組轉換回的圖像使用:

im=Image.fromarray(pixels) 
+1

numpy很遺憾不是我的選擇,但是元組索引解決了我的問題 –

+1

好。在Python中總是有很多方法來使用皮膚。 –

+0

你是如何解決它的? @JuliusNaeumann – Veltro