免費開始練習
普考申論題 114年 [資訊處理] 程式設計概要

第 一 題

給定nxm(n行m列)影像的各像素灰度值,灰度值為0至255之間
的整數(包含0和255),像素的相鄰性是指當前像素與周邊像素的鄰接
性質,八鄰域(eight neighbors)包括對應當前像素位置的上、下、左、
右、左上、右上、左下、右下像素位置,換言之,為原像素及其上下左
右與對角線相鄰八個像素位置,如下圖所示:

218
3P 7
456

當對此影像進行降低雜訊的模糊化處理時:1.影像四周最外側的像素灰
度值不變;2.影像中間各像素新灰度值由原像素及其八鄰域像素原灰度
值的平均值(捨入到最接近的整數)取代原像素值。輸入資料第一行包
含兩個整數 n和 m,表示影像中像素點的行數和列數,1<=n<= 100,
1<=m<= 100,接下來n行,每行m個整數,表示影像中每個像素灰度
值。相鄰兩個整數之間用單個空格隔開,每個元素均在0~255之間。例
如一個5x6 影像及其各像素灰度值如下所示:
56
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

面對此類影像平滑化處理題,首先要想到「二維陣列的拷貝與遍歷」。重點有二:一是必須準備兩個陣列(原影像與新影像),避免計算過程中新值覆蓋舊值而導致後續計算錯誤;二是精準控制迴圈範圍,外圍像素保持不變,內部像素透過 3x3 的雙層迴圈計算總和,最後以浮點除法求平均並進行四捨五入。

🤖
AI 詳解 AI 專屬家教

【解題思路】 本題考查二維陣列操作與影像處理基礎(均值濾波)。

  1. 宣告雙陣列:使用兩個二維陣列分別儲存「原始影像」與「模糊化後的影像」。
▼ 還有更多解析內容
📝 二維陣列與影像平滑化
💡 利用二維陣列遍歷與鄰域權重平均,實作影像均值濾波處理。

🔗 影像模糊化處理流程

  1. 1 配置空間 — 宣告原始圖與結果圖兩個二維陣列
  2. 2 邊界複製 — 將最外圈像素直接複製到結果陣列
  3. 3 鄰域加總 — 針對內部像素計算 3x3 區域灰度總和
  4. 4 平均修約 — 總和除以 9 並進行四捨五入存入結果
🔄 延伸學習:延伸學習:不同的權重矩陣(Kernel)可達成銳利化或浮雕等不同濾波效果。
🧠 記憶技巧:外圈不動內圈動,九宮加總除以九,四捨五入要注意。
⚠️ 常見陷阱:直接在原陣列修改數值,導致後續像素計算到『已模糊化』的值而非原始值;或邊界判斷錯誤造成陣列越界。
卷積運算 (Convolution) 中值濾波器 (Median Filter) 邊緣檢測 (Edge Detection)

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

程式設計基礎概念與實作演練
查看更多「[資訊處理] 程式設計概要」的主題分類考古題