1
私は、次のループを使って特定の真理値の距離内にあるすべてのピクセルを平均化して画像をノイズ除去しようとしています。現在のところ、このループには65秒かかり、おそらく何千回も実行する必要があります。禁止的な実行時間なしにPythonでこれを達成する方法はありますか?どんな助けでも大歓迎です。画像内のピクセルをテストする
for row in range(0, width):
for column in range(0, height):
if euclid_dist(point, pix[row,column]) <= threshold:
to_average[(row,column)] = pix[row, column]
euclid_distは、次のように定義されます。
def euclid_dist(tuple1, tuple2):
tot_sq = 0
for num1, num2 in zip(tuple1, tuple2):
tot_sq += (num1 + num2)**2
return math.sqrt(tot_sq)
イメージを円形マスクで畳み込みます。 –
もう少し情報を提供できますか?私はあなたが何を得ているのか分かっていると思うが、どうすればコード化するのか分からない。 – asheets
NickTがあなたをカバーしているようだ。だから私はちょうどコメントします。 1)ジップは過度の可能性があります。インデックスベースのループを使ってみてください。2)計算する数値が多いときは、Numpyが普通の答えです。 –