我希望能夠計算一行像素中的「平均最亮點」。這是一個原始的3D掃描儀。我如何計算一行像素中最亮點的質心?
測試我簡單地通過像素,如果當前像素比以前更亮,該線最亮的點將被設置爲當前像素。這當然會在整個圖像中產生非常不安的結果。
我想獲得'平均亮度中心',而不是,如果這是有道理的。
必須是常見的事,我只是缺少話語權的谷歌搜索。
我希望能夠計算一行像素中的「平均最亮點」。這是一個原始的3D掃描儀。我如何計算一行像素中最亮點的質心?
測試我簡單地通過像素,如果當前像素比以前更亮,該線最亮的點將被設置爲當前像素。這當然會在整個圖像中產生非常不安的結果。
我想獲得'平均亮度中心',而不是,如果這是有道理的。
必須是常見的事,我只是缺少話語權的谷歌搜索。
計算偏移的強度加權平均值。
鑑於你的榜樣的強度(猜測)和偏移:
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
您正在尋找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代表前後兩個像素,等等。
對於mean filter,您可以做同樣的事情,除了更換與周圍的平均值所有值的窗口中的像素,即
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]
(之後沒有像素) - 此示例「複製」邊界附近的像素。因此,我們通常用複製或常量邊框「填充」圖像,對圖像進行卷積,然後移除這些邊框。
這是一個標準操作,您可以在許多計算軟件包中找到它。
你的問題就像找到最長的序列問題。一旦你能夠確定一個序列(起點和長度),剩下的就是找到中位數,這是中心因素。 爲了找到序列,必須存在明亮和黑暗的定義,無論是相對 - >先前值還是先前值的一對。絕對:一個固定的門檻。