2

ピクセルの行で「平均最も明るい点」を計算できるようにしたいと思います。これは、原始的な 3D スキャナー用です。

テストのために、私は単純にピクセルをステップスルーし、現在のピクセルが前のピクセルよりも明るい場合、その行の最も明るい点が現在のピクセルに設定されます。もちろん、これは画像全体に非常にぎくしゃくした結果をもたらします。

それが理にかなっていれば、代わりに「明るさの平均中心」を取得したいと思います。

代替テキスト

よくあることである必要があります。Google検索に適切な単語が不足しているだけです。

4

3 に答える 3

3

オフセットの強度加重平均を計算します。

あなたの例の強度(推測)とオフセットを考えると:

0  0  0  0  1  3  2  3  1  0  0  0  0  0
1  2  3  4  5  6  7  8  9 10 11 12 13 14

これはあなたに与えるでしょう(5+3*6+2*7+3*8+9)/(1+3+2+3+1) = 7

于 2010-02-17T14:00:38.477 に答える
1

画像を「たたみ込む」フィルターを使用する1D Convolutionを探しています。たとえば、メディアン フィルターを使用できます (ウィキペディアから例を借用)。

x = [2 80 6 3]
y[1] = Median[2 2 80] = 2
y[2] = Median[2 80 6] = Median[2 6 80] = 6
y[3] = Median[80 6 3] = Median[3 6 80] = 6
y[4] = Median[6 3 3] = Median[3 3 6] = 3
so
y = [2 6 6 3]

ここでは、一度に 3 ピクセルを見て、このウィンドウの周囲のピクセルを中央値に置き換えるため、ウィンドウ サイズは 3 です。3 のウィンドウは、現在評価しているピクセルの前の最初のピクセルと後の最初のピクセルを見ることを意味し、5 は前後の 2 ピクセルを意味します。

平均フィルターの場合、ウィンドウの周囲のピクセルをすべての値の平均に置き換えることを除いて、同じことを行います。

x = [2 80 6 3]
y[1] = Mean[2 2 80] = 28
y[2] = Mean[2 80 6] = 29.33
y[3] = Mean[80 6 3] = 29.667
y[4] = Mean[6 3 3] = 4
so
y = [28 29.33 29.667 4]

したがって、あなたの問題についてy[3]は、「平均最も明るい点」です。

y[1](その前にピクセルがない) および(その後ろにピクセルがない)境界線がどのように処理されるかに注意してくださいy[4]。この例では、境界線の近くのピクセルを「複製」しています。したがって、通常、複製された境界線または一定の境界線で画像を「パディング」し、画像を畳み込み、それらの境界線を削除します。

これは、多くの計算パッケージに見られる標準的な操作です。

于 2010-02-17T14:02:05.840 に答える
0

あなたの問題は、最長シーケンスの問題を見つけるようなものです。シーケンス(開始点と長さ)を決定できたら、あとは中心要素である中央値を見つけるだけです。シーケンスを見つけるには、相対的な->前の値または前の値のカップルのいずれかで、明暗の定義が存在する必要があります。絶対: 固定しきい値。

于 2010-02-17T22:08:21.630 に答える