免費開始練習
地特四等申論題 114年 [資訊處理] 程式設計概要

第 一 題

一、給定 n x m(n 行 m 列)影像的各像素灰度值,灰度值為 0 至 255 之間的整數(包含 0 和 255),像素的相鄰性是指當前像素與周邊像素的鄰接性質,八鄰域(eight neighbors)包括對應當前像素位置的上、下、左、
右、左上、右上、左下、右下像素位置,換言之,為原像素及其上下左右與對角線相鄰八個像素位置,如下圖所示:
2 1 8
3 P 7
4 5 6
當對此影像進行降低雜訊的模糊化處理時:1.影像四周最外側的像素灰度值不變;2.影像中間各像素新灰度值由原像素及其八鄰域像素原灰度值的平均值(捨入到最接近的整數)取代原像素值。輸入資料第一行包含兩個整數 n 和 m,表示影像中像素點的行數和列數,1<=n<= 100,
1<=m<= 100,接下來 n 行,每行 m 個整數,表示影像中每個像素灰度值。相鄰兩個整數之間用單個空格隔開,每個元素均在 0~255 之間。例如一個 5x6 影像及其各像素灰度值如下所示:
5 6
100 0 120 0 50 70
50 110 200 0 0 180
70 50 100 120 200 0
150 120 50 50 100 10
10 110 0 50 120 30
請使用 Java 或 C++實作一完整程式,讀入一個影像行數、列數和像素灰度值,並使用八鄰域像素灰度值對影像進行降低雜訊的模糊化處理,再輸出模糊化後影像。(20 分)
題目圖片
📝 此題為申論題

思路引導 VIP

看到本題,首先要辨識出考點為「二維陣列操作」與「影像處理的均值濾波(Mean Filter)邏輯」。解題思維應該依序從:(1) 讀取二維陣列大小 n 與 m,並宣告二維陣列來存放影像資料。(2) 特別注意影像四周最外側像素保持原值,故迴圈的處理範圍為內部像素(如 i 從 1 到 n-2,j 從 1 到 m-2)。(3) 中間像素在求新的灰度值時,必須以「原始灰度值」來計算其與周邊 8 個像素的總和平均;若原地直接修改陣列資料,會汙染後續右方與下方像素的計算結果,因此必須準備另一塊陣列存放結果,或者事先拷貝原陣列。(4) 取平均後要用浮點數除法,並使用四捨五入函數(如 std::round)。

🤖
AI 詳解 AI 專屬家教

【考點分析】 主要考察二維陣列(矩陣)的操作、邊界條件處理、雙層迴圈控制,以及數值運算中的四捨五入處理與變數型態轉換。 【理論/法規依據】

▼ 還有更多解析內容