灰度图像高斯平滑 图像平滑用于去除图像中的噪声。高斯平滑,就是将每个像素的灰度值用其领域的加权平均值代替。该算法简单,能够有效去除高斯噪声。 平滑模板: 1 2 1 242121 // 高斯平滑 // 1. pImageData 图像数据 // 2. nWidth 图像宽度 // 3. nHeight 图像高度 // 4. nWidthStep 图像行大小 bool SmoothGauss(unsigned char *pImageData, int nWidth, int nHeight, int nWidthStep) { int i = 0; int j = 0; int nValue = 0; unsigned char *pLine[3] = { NULL, NULL, NULL }; int nTemplate[9] = { 1, 2, 1, 2, 4, 2, 1, 2, 1 }; for (j = 1; j < nHeight - 1; j++) { pLine[0] = pImageData + nWidthStep * (j - 1); pLine[1] = pImageData + nWidthStep * j; pLine[2] = pImageData + nWidthStep * (j + 1); for (i = 1; i < nWidth - 1; i++) { nValue = (pLine[0][i-1] * nTemplate[0] + pLine[0][i] * nTemplate[1] + pLine[0][i+1] * nTemplate[2] + pLine[1][i-1] * nTemplate[3] + pLine[1][i] * nTemplate[4] + pLine[1][i+1] * nTemplate[5] + pLine[2][i-1] * nTemplate[6] + pLine[2][i] * nTemplate[7] + pLine[2][i+1] * nTemplate[8]) / 16; pLine[0][i-1] = (unsigned char) nValue; } } return true; }