2017-02-15 75 views
1

我覺得應該有一個簡單的方法來做到這一點,但我無法在網上找到解決方案。我正在尋找一種pythonic的單線內容。如何給圖像像素調用添加條件? numpy opencv

我知道你可以這樣做:

Img[:,:,2]=200 

但你怎麼能添加一個條件這樣做呢?

if Img[:,:,2]<=100: 200 

image =[i==100 for i in Img[:,:,2] if i <= 100] 

感謝

回答

2

爲了模擬if a[:,:,2]<=100: 200,我們可以使用np.where -

a[:,:,2] = np.where(a[:,:,2] <= 100, 200, a[:,:,2]) 

或者乾脆使用面膜來分配 -

a[a[:,:,2] <= 100,2] = 200 

採樣運行 -

In [379]: a 
Out[379]: 
array([[[ 78, 134, 7], 
     [154, 37, 146], 
     [ 39, 95, 13]], 

     [[114, 138, 100], 
     [175, 198, 148], 
     [ 39, 130, 37]]]) 

In [380]: a[a[:,:,2] <= 100,2] = 200 

In [381]: a 
Out[381]: 
array([[[ 78, 134, 200], 
     [154, 37, 146], 
     [ 39, 95, 200]], 

     [[114, 138, 200], 
     [175, 198, 148], 
     [ 39, 130, 200]]])