演算法筆記 | rgb轉灰階
簡介調整像素的數值,依據鄰近像素的數值。圖片的數學運算:Filter一張圖片,可以表示成RGB三個陣列,三個陣列分開處理。教科書則是表示成RGB三個函數。圖片具有地域性,鄰近像素關係匪淺。鄰近像素的平均數、相差值(梯度),各有功效。這些計算,可以統一成加權平均數,又可以統一成點積:對應項相乘,加總。一種位移量、一次點積,得到一個新像素。窮舉各種位移量、一一點積,即卷積,得到新圖片。時間複雜度O(XYMN)。【註:卷積[1]規定其中一條數列必須頭尾顛倒;方便起見,此處不顛倒圖片和濾波器。】超過圖片邊界時,有許多種應...
簡介
調整像素的數值,依據鄰近像素的數值。
圖片的數學運算:Filter
一張圖片,可以表示成RGB三個陣列,三個陣列分開處理。教科書則是表示成RGB三個函數。
圖片具有地域性,鄰近像素關係匪淺。鄰近像素的平均數、相差值(梯度),各有功效。這些計算,可以統一成加權平均數,又可以統一成點積:對應項相乘,加總。
一種位移量、一次點積,得到一個新像素。窮舉各種位移量、一一點積,即卷積,得到新圖片。時間複雜度O(XYMN)。
【註:卷積[1]規定其中一條數列必須頭尾顛倒;方便起見,此處不顛倒圖片和濾波器。】
超過圖片邊界時,有許多種應對方式[2],例如不計算、補零、複製邊界數值、一次內插。旁枝末節,不重要。
先算橫條,再垂直整合,一如區域總和[3]、區域最小值[4]的計算手法,時間複雜度降為O(XY(M+N)),但是需要大量額外空間。
空域循環卷積,就是頻域乘法。時間複雜度降為O(XYlogXY + MNlogMN)。然而濾波器通常很小,不必大費周章、弄巧成拙。
設計濾波器、套用濾波器,便能製造各種圖片特效[5]。亦得在特定區域之內套用濾波器,而不是整張圖片都套用濾波器。
濾波器是線性的。倍率性:一個濾波器(的每個值)乘上倍率,等於新圖片(的每個像素)乘上倍率。加法性:兩個濾波器相加減,等於兩張新圖片相加減。想要揉合多張新圖片,可以預先揉合濾波器,降低計算量。
新圖片像素數值必須介於0到255,須normalization。
Image Smoothing(Image Blurring)
平滑化[6]、霧化[7]。消滅邊緣。失焦模糊。
進階應用有動態模糊[8]、去噪[9]、抗鋸齒[10]、打馬賽克[11]。
人眼感知到的平滑,就是亮度暨彩度相差很少。相鄰像素取平均數,讓彼此數值更接近、更平滑。
mean filter[12]:原數值替換為附近數值們的平均數。濾波器的數值均為1/NM。
Gaussian filter[13]:濾波器是二維常態分布。有高速算法[...