灰階映像均值平滑
映像平滑用於去除映像中的雜訊。均值平滑,就是將每個像素的灰階值用其領域的平均值代替。該演算法簡單,速度快,但不能完全消除椒鹽雜訊。
平滑模板:
// 均值平滑<br />// 1. pImageData 映像資料<br />// 2. nWidth 映像寬度<br />// 3. nHeight 映像高度<br />// 4. nWidthStep 映像行大小<br />bool SmoothBlur(unsigned char *pImageData, int nWidth, int nHeight, int nWidthStep)<br />{<br /> int i = 0;<br /> int j = 0;<br /> int nValue = 0;<br /> unsigned char *pLine[3] = { NULL, NULL, NULL };<br /> for (j = 1; j < nHeight - 1; j++)<br /> {<br /> pLine[0] = pImageData + nWidthStep * (j - 1);<br /> pLine[1] = pImageData + nWidthStep * j;<br /> pLine[2] = pImageData + nWidthStep * (j + 1);<br /> for (i = 1; i < nWidth - 1; i++)<br /> {<br /> nValue =<br /> (pLine[0][i-1] + pLine[0][i] + pLine[0][i+1] +<br /> pLine[1][i-1] + pLine[1][i] + pLine[1][i+1] +<br /> pLine[2][i-1] + pLine[2][i] + pLine[2][i+1]) / 9;<br /> pLine[0][i-1] = (unsigned char) nValue;<br /> }<br /> }<br /> return true;<br />}