タグ

ブックマーク / shin.hateblo.jp (1)

  • NumPyでフィルタリングを高速に行う方法 - $ cat /var/log/shin

    例えば、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) 問題点 さて、ここまでの実装ですが、分かりやすくスマー

    NumPyでフィルタリングを高速に行う方法 - $ cat /var/log/shin
    takafashi
    takafashi 2013/10/19
    “Boolean Array”まじ早いし楽だしお気に入りである。
  • 1