例えば、OpenCVで2値化済みの画像から黒色(つまり値が0)のピクセルの数を数えることを考えます。 一番分かりやすいのは単純にfor文で回して数を数える方法です。bin_imgは2値化済みの画像でnumpy.ndarray型の2次元配列とします。 count = 0 for color in bin_img.flat: count += 1 if color == 0 else 0 また、せっかくのPythonなので、filterやreduceを用いて関数型言語っぽく書くと、よりスマートになります。 count = len(filter(lambda x: x == 0, bin_img.flat)) count = reduce(lambda m, x: m+1 if x == 0 else m, bin_img.flat, 0) 問題点 さて、ここまでの実装ですが、分かりやすくスマー