本系列第四篇,實作「柔化效果」:使用 3×3 高斯權重核平滑圖像,減少雜訊與細節對比。
[1,2,1, 2,4,2, 1,2,1],權重和 = 16。
private void btnSoften_Click(object sender, EventArgs e)
{
try
{
int w = pictureBox1.Image.Width, h = pictureBox1.Image.Height;
using (var bmp = new Bitmap(w, h))
using (var src = (Bitmap)pictureBox1.Image)
{
int[] gauss = { 1,2,1, 2,4,2, 1,2,1 };
for (int x = 1; x < w - 1; x++)
for (int y = 1; y < h - 1; y++)
{
int r = 0, g = 0, b = 0, idx = 0;
for (int cx = -1; cx <= 1; cx++)
for (int cy = -1; cy <= 1; cy++)
{
Color p = src.GetPixel(x + cx, y + cy);
r += p.R * gauss[idx];
g += p.G * gauss[idx];
b += p.B * gauss[idx];
idx++;
}
r = Clamp(r / 16); g = Clamp(g / 16); b = Clamp(b / 16);
bmp.SetPixel(x - 1, y - 1, Color.FromArgb(r, g, b));
}
pictureBox1.Image = bmp;
}
}
catch (Exception ex) { MessageBox.Show(ex.Message, "提示"); }
}
int Clamp(int v) => v < 0 ? 0 : (v > 255 ? 255 : v);

3×3 核可分解為兩次 1D 卷積:水平 [1,2,1]/4 + 垂直 [1,2,1]/4,運算量從 9 降為 6 次乘加/像素。大核 (如 31×31) 效益更明顯 (O(n²)→O(n))。
高斯模糊是圖像處理基石。掌握核設計、可分離優化、LockBits 實作,可高效支援柔化、陰影、光暈、景深等大量應用場景。