Простое решение Numpy / Scipy будет выглядеть примерно так:
import numpy, scipy
a = scipy.misc.imread("rgb.jpg") # Imports RGB to numpy array where a[0] is red, a[1] is blue, a[2] is green...
num_red = numpy.sum((a[:,:,0] == 255) * (a[:,:,1] == 0) * (a[:,:,2] == 0)) # Counts the number of pure red pixels
Вы также можете использовать PIL для чтения изображения.
РЕДАКТИРОВАТЬ: В свете комментария, scipy.ndimage.measurements.label
будет полезно, а также возвращает значение num_features
, которое дает вам счет:
import numpy, scipy
from scipy import ndimage
a = scipy.misc.imread("rgb.jpg")
b = ((a[:,:,0] == 255) * (a[:,:,1] == 0) * (a[:,:,2] == 0))*1
labeled_array, num_features = scipy.ndimage.measurements.label(b.astype('Int8'))