2016-08-10 30 views
0

好吧,我想要做的是遍歷整個像素陣列,併爲每個像素獲取綠色值,藍色值和紅色值。這是後來我可以看到他們之間的模式。Python 2.7-在數組中分離b,g,r

所以,這就是我的代碼的樣子。

for frame in camera.capture_continuous(rawCapture, format='bgr', use_video_port =True): 
data=frame.array 
rawCapture.truncate(0) 
ColourCount = Calculations(data) 

好吧,現在,這只是爲了告訴你什麼是通用代碼。這是棘手的地方。此外,如果這不適用於PC上的你們,只需使用任何opencv,我相信他們會保存相同的數據。

Calculations(data): 
for n in data: 
    for s in n 
     B=s[0] 
     G=s[1] 
     R=s[2] 

然後,當我打印這些,它不會產生我想要的結果。

所以s就像[0,14,0] 而B就像其他人一樣[0,0,0]。 (這些只是例子,雖然值沒有得到高的某些原因。

現在我想的東西,是把它分解所以B是藍色通道,G是綠色通道等

因此,對於N個例子: B = 0 G = 14 R = 0

那麼,如何實現這一目標

我想單整數,但它給我回整個像素幾乎

編輯:我相信我以前的錯誤的一部分是,我收集的項目實際上是一行而不是像素。所以我把另一個for循環,如上所示。

回答

0

您可以使用split()函數。

Calculations(data): 
bgr = cv2.split(data) 
B = bgr[0] 
G = bgr[1] 
R = bgr[2] 
相關問題