だから私はこのビットのコードを持っています
for x in range(x1,x2):
for y in range(y1, y2):
cpixel = pixels[x, y]
if bw:
bw_value = int(round(sum(cpixel) / float(len(cpixel))))
all_pixels.append(bw_value)
title = "Averaged (B&W) Pixel Values"
else:
if lumi:
luma = (0.3 * cpixel[0]) + (0.59 * cpixel[1]) + (0.11 * cpixel[2])
all_pixels.append(luma)
title = "Pixel Luminosity Values"
else:
if round(sum(cpixel)) / float(len(cpixel)) > 100:
all_pixels.append(255)
else:
all_pixels.append(0)
title = "Pixel Binary Transform Values"
here から少し取得して変更しましたPILからピクセル値のリストを取得して、境界領域 (ユーザーが選択した) 内のピクセル値 (all_pixels) のリストを取得します。
一連の同様の値が記録された後、リスト内の変更を検出する効率的な方法を見つけようとしています。リストにはピクセル値が上から下、左から右にリストされているように見えるためです。私が使用するシナリオでは、値が新しい値の周りで再び安定するまで、値が前後に切り替わり始める画像の領域に到達するまで、同様の値のリストがあります。
私が興味を持っているのは、これら 2 つの境界を追跡することです。この境界がどこにあり、左または右にシフトするかどうかを検出したいと考えています。all_pixels に追加された各値を確認してから、座標をたどる以外に方法は考えられません。
しかし、任意の数の値を同じに設定したとしても、次の値が大幅に異なる場合は、単なる外れ値ではなく重要な変化と見なされ、その後、値が古い値の間でトグルし始めるため、これでもかなり大雑把に思えます。そして新しいもの。
理想的には、この境界領域/線の座標に最適な線を生成する必要があると思います。この問題にどのようにアプローチするか、いくつかのアイデアが必要です。