0

Python で基本的なグローバルしきい値処理を実装しています。アルゴリズムの一部には、強度に応じてピクセルを 2 つのコンテナーにグループ化することが含まれます。

group_1 = []
group_2 = []
for intensity in list(image.getdata()):
    if intensity > threshold:
        group_1.append[]
    else:
        group_2.append[]

画像が 0.5 メガピクセルを超える場合、このアプローチでは通常、約 5 秒以上かかります。考えられるすべてのアプローチで、すべてのピクセルをチェックする必要があるため、これを行うためのより高速な方法があるかどうか (PIL の他の方法、他のデータ構造またはアルゴリズムを使用して?)、または単に Python のパフォーマンスの問題ですか?

4

1 に答える 1

1

大量の数値情報を扱う場合は、画像データを読み込んでnumpy配列を操作する必要があります。ルーチンは、純粋な python で記述できるものよりも高速 (かつ単純) になります。

PIL から numpy への読み書きを開始するには、この質問を参照してください。

PIL と numpy

たとえば、画像がグレースケールの場合、点の配列は単純に からの数値になり0-255ます。「しきい値」を設定するには、次のようにします。

group1 = A[A> threshold]
group2 = A[A<=threshold]
于 2013-04-27T00:27:19.913 に答える