一個 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)
每一個像素皆由 RGB 三個顏色組成,每個顏色的值是介於 0 到 255 之間(含)的整數,若一個像素的組成為 R = 255、G = 3、B = 192,則此像素表示為 255 3 192 (整數間以一個空白字元分隔)。
輸入檔案的第一行為一整數 n ( 0 < n ≤ 256 ),之後有 n 行,每一行代表 n 個像素,每個像素都是由上述的方式表示 (每個像素間以一個空白字元隔開)。
對每一個像素請根據輸入順序,由左而右,由上而下輸出,每一行請輸出 1 個像素,共 n2 行,每一個像素依序輸出 X、Y、Z 的值,並且三個值之間都以一個空白字元分隔,並在最後一行輸出影像平均亮度 (請印出 “The average of Y is”)。其中 X、Y、Z 的值與影像平均亮度的值請表示到小數點後第 4 位 (以下四捨五入)。
2 255 3 192 254 16 171 224 51 167 160 34 8
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
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
25685 | 9987jdvrb@gm ... (YuYue) | b056 | 589 | 2021-06-12 19:50 | |
19005 | jackyname1@g ... (☆♬○♩程式家小崴●♪✧♩) | b056 | 878 | 2019-08-25 09:28 | |
18060 | rsj00008 (二信008) | b056 | 1085 | 2019-06-14 23:06 |