2016-03-07 27 views
2

我試圖使二維RGB數組中的值爲零。對於這種情況,我希望數組中的紅色和藍色元素爲零。我已經試過這其中rgb_img是RGB圖像陣列:在Python中使二維RGB陣列中的'R'和'B'元素爲零

r = rgb_img[:, :, 0] 
g = rgb_img[:, :, 1] 
b = rgb_img[:, :, 2] 
mask = (r < 200) & (g < 200) & (b < 200) 
rgb_img[mask] = 0 
bg = rgb_img 
print bg 

然而,輸出我得到的是不是我所期望:

[[ 0. 255.  0.5] 
    [ 0. 255.  0.5] 
    [ 0. 255.  0.5] 
    ..., 
    [ 0. 255.  0.5] 
    [ 0.5 255.  0. ] 
    [ 0. 255.  0.5]] 

但我所尋找的是這樣的:

[[ 0. 255.  0.] 
    [ 0. 255.  0.] 
    [ 0. 255.  0.] 
    ..., 
    [ 0. 255.  0.] 
    [ 0. 255.  0.] 
    [ 0. 255.  0.]] 
+0

'&'是'按位運算符',你是說我們的意思是'或'? – Arman

+0

我使用過'&',因爲當我將它應用到數組時,'按位和'按照元素進行應用。 –

回答

1

我想通了,它是那麼簡單:

rgb_img[:, :, 0] = 0 
rgb_img[:, :, 2] = 0