2016-11-20 16 views
5

Sayısal diziye dönüştürülmüş bir RGB resmim var. Ben numpy veya scipy işlevlerini kullanarak görüntünün ortalama RGB değerini hesaplamaya çalışıyorum.Sayısal dizide görüntünün ortalama rengi nasıl hesaplanır?

RGB değerleri 0.0 ile kayan nokta olarak temsil edilir - 1.0, 1.0 = 255

bir örnek 2x2 piksel image_array: denedim

[[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], 
[[1.0, 1.0, 1.0], [1.0, 1.0, 1.0]]] 

:

import numpy 
numpy.mean(image_array, axis=0)` 

Ancak bu çıktılar:

[[0.5 0.5 0.5] 
[0.5 0.5 0.5]] 

İstediğim sadece tek RGB ortalama değerdir:

[0.5 0.5 0.5] 

cevap

11

iki eksen boyunca ortalamasını almak gerekir oysa sadece bir eksen boyunca ortalamasını alıyoruz: yükseklik ve görüntünün genişliğini .

bu deneyin: docs gibi

>>> image_array  
array([[[ 0., 0., 0.], 
     [ 0., 0., 0.]], 

     [[ 1., 1., 1.], 
     [ 1., 1., 1.]]]) 
>>> np.mean(image_array, axis=(0, 1)) 
array([ 0.5, 0.5, 0.5]) 

Eğer ortalama alınacak istediğiniz üzerinde eksenleri belirterek, axis parametre için bir demet belirtebilirsiniz, size söyleyecektir.

+1

Thats it! Birden fazla ekseni belirleyebileceğinizi anlayamadım. – dranobob

İlgili konular