b434. 圖片的梯度
標籤 : 影像處理
通過比率 : 29人/32人 ( 91% ) [非即時]
評分方式:
Tolerant

最近更新 : 2022-10-27 21:45

內容

一張圖片當中,最引人注目的地方,通常是變化最大的地方。

電腦當中,所有事物都是數字。變化可以想成「減法」,變化程度可以想成「兩數相減的差值」。

將此想法套用到圖片:相鄰的像素,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)。

輸出說明

請輸出處理後的圖片。計算結果四捨五入。

 

範例輸入 #1
2 2
0 0 0 255 255 255
255 255 255 255 255 255
範例輸出 #1
2 2
255 255 255 0 0 0
0 0 0 0 0 0
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (33%): 1.0s , <1K
公開 測資點#1 (33%): 1.0s , <1K
公開 測資點#2 (34%): 1.0s , <1M
提示 :

如果不熟悉影像處理,可以先試試看「b422: Colorful Life and Monochromatic Life」。

標籤:
影像處理
出處:
[管理者: DJWS (...) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」