2014-03-14 90 views
1

我有一張使用opencv加載的圖像,我希望找到像素爲白色的圖像。使用opencv/Numpy在python中查找彩色圖像中的白色像素

input_img = [[[255,255,255], [0,127,255]], 
      [[255,255,255], [255,127,255]]] 

應該返回

white = [[1, 0], 
     [1, 0]] 

有沒有辦法做到這一點不重塑或不昂貴的for循環?使用類似numpy.where的東西?

+0

您正在尋找看起來接近白色純白色或像素?由於圖像中有噪點,某些像素將不會完全(255,255,255)。如果方便,也許發佈一個樣本測試圖像。 – lightalchemist

+0

這些都是白色的像素 - 我收到的圖像已經消除了噪音(或者至少我可以假定它有)。 –

回答

3

如何

(input_img == 255).all(axis=2) 
+0

如果我使用axis = 2,這適用於我 –

3

這應該這樣做

input_img = [[[255,255,255], [0,127,255]], 
     [[255,255,255], [255,127,255]]] 
white = np.array(np.sum(input_img, axis=-1) == 765, dtype=np.int32) 
+0

也許我錯了,但是如何返回這個'(array([0,1]),array([0,0]))' – jycr753

+1

@ jycr753你是對的,我編輯了我的答案。 – vehsakul