b056: 1. 影像像素轉換問題
Tags :
Accepted rate : 314人/348人 ( 90% ) [非即時]
評分方式:
Special

最近更新 : 2018-02-24 07:52

Content

 

一個 n*n 影像檔包含 n2 個像素。每個像素包含紅(R)綠(G)藍(B)三個顏色。寫一個程式,讀入一個 n*n 影像檔,根據下列式子,將紅綠藍三個顏色轉換成 XYZ 表色系統,其中 Y 為影像亮度,將轉換成的 XYZ 根據輸入順序輸出,並算出影像平均亮度,將答案輸出。 


表示

X = 0.5149 * R + 0.3244 * G + 0.1607 * B
Y = 0.2654 * R + 0.6704 * G + 0.0642 * B
Z = 0.0248 * R + 0.1248 * G + 0.8504 * B  

註:每一個數字誤差在 0.0001 之內就算正確。(ZeroJudge 程式修改 20071209)

 

Input

每一個像素皆由 RGB 三個顏色組成,每個顏色的值是介於 0 到 255 之間(含)的整數,若一個像素的組成為 R = 255、G = 3、B = 192,則此像素表示為 255 3 192 (整數間以一個空白字元分隔)。
輸入檔案的第一行為一整數 n ( 0 < n ≤ 256 ),之後有 n 行,每一行代表 n 個像素,每個像素都是由上述的方式表示 (每個像素間以一個空白字元隔開)。

Output

對每一個像素請根據輸入順序,由左而右,由上而下輸出,每一行請輸出 1 個像素,共 n2 行,每一個像素依序輸出 X、Y、Z 的值,並且三個值之間都以一個空白字元分隔,並在最後一行輸出影像平均亮度 (請印出 “The average of Y is”)。其中 X、Y、Z 的值與影像平均亮度的值請表示到小數點後第 4 位 (以下四捨五入)。

Sample Input
2
255 3 192 254 16 171
224 51 167 160 34 8
Sample Output
163.1271 82.0146 169.9752
163.4547 89.1162 153.7144
158.7189 104.3614 153.9368
94.6992 65.7712 15.0144
The average of Y is 85.3159
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 10.0s , <10M
Hint :
Tags:
出處:
95學年度全國資訊學科能力競賽


ID User Problem Subject Hit Post Date
19005
jackyname1@gmai... (☆♬○♩程式家小崴●♪✧♩)
b056
四捨五入
22 2019-08-25 09:28
18060
rsj00008 (二信008)
b056
115 2019-06-14 23:06