一張圖片當中,最引人注目的地方,通常是變化最大的地方。
電腦當中,所有事物都是數字。變化可以想成「減法」,變化程度可以想成「兩數相減的差值」。
將此想法套用到圖片:相鄰的像素,RGB值相減。因為圖片是二維的,所以分成橫向相減、直向相減。寫成數學式子就是:
∇XR(x,y) = R(x+1,y) - R(x,y) (橫向相減:右邊減自己)
∇YR(x,y) = R(x,y+1) - R(x,y) (直向相減:下邊減自己)
此處以R值為例,RGB皆如此。左上角像素座標是(0,0),右下角像素座標是(W-1,H-1),W H是圖片寬高。根據這個減法的方式,圖片右邊界和下邊界需要特別處理。越過圖片邊界的時候,想像成像素複製延伸,所以∇XR(W-1,y) = 0、∇YR(x,H-1) = 0。
順帶一提,這個概念正好符合數學領域的「梯度」,於是大家都叫它「梯度」,X方向的梯度與Y方向的梯度。
接著累計兩個方向的變化程度。寫成數學式子就是:
sqrt((∇XR)2 + (∇YR)2)
不過sqrt有精確度問題、運算時間也很長,所以大家都改用:
|∇XR| + |∇YR|
為了符合RGB值的範圍,所以再除以二:
( |∇XR| + |∇YR| ) / 2.0
按照步驟,最後求出這麼一張圖片:
請你也求出這麼一張圖片。
一張圖片:兩個整數 W H (1 <= W, H <= 256),是圖片的寬和高;接下來的 H 行,每行有 W*3 個整數,是每個像素的 RGB 值 (0 <= R, G, B <= 255)。
請輸出處理後的圖片。計算結果四捨五入。
2 2 0 0 0 255 255 255 255 255 255 255 255 255
2 2 255 255 255 0 0 0 0 0 0 0 0 0
如果不熟悉影像處理,可以先試試看「b422: Colorful Life and Monochromatic Life」。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」
|