私は、画像を繰り返し処理し、そのプロパティをしきい値で分割するより効率的な方法を探していました。オンラインで検索し、プログラミングの友人と話し合う際、彼らは私にベクトル化(特にnumpyを使用)という概念を導入しました。多くの検索と試行錯誤の後、私はそれを掛けるように見えません。ある人が私にリンクを与えたり、次のコードをより効率的にする方法を提案できますか?Python/NumPyによる画像の閾値処理のベクトル化
Im = plt.imread(img)
Imarray = np.array(Im)
for line in Imarray:
for pixel in line:
if pixel <= 20000:
dim_sum += pixel
dim_counter += 1
if pixel > 20000:
bright_sum += pixel
bright_counter += 1
bright_mean = bright_sum/bright_counter
dim_mean = dim_sum/dim_counter
基本的に、各ピクセルは0と30000の間で輝度量を保持し、Iは、それぞれ、20000以下と20000以上のすべてのピクセルを平均化しようとしています。私がこれを行う方法を知っている最良の方法は、forループ(Pythonで遅い)を使用し、if文で各ピクセルを検索することです。
あなたのインデントは正しくありません –
私は投稿後に気づきました。私はちょうどC + +でコードを入力し終わって、それを二重チェックするのを忘れました。 –