阈值变换在图像处理中有着非常高的作用,很多处理都会用到。最常见的应用就是产生黑白图。 代码如下: /****************************************************************************** * 作用: 灰度阈值变换函数 * 参数: pDst 输出图像的像素数组 * 参数: pSrc 原始图像的像素数组 * 参数: nWidth 原始图像宽度 * 参数: nHeight 原始图像高度 * 参数: thr 阈值 ******************************************************************************/ int ThresholdTrans(BYTE* pDst, BYTE* pSrc, int nWidth, int nHeight, int thr) { if (!pSrc || !pDst) { return EXIT_FAILURE; } // 灰度映射表 BYTE map[256]; int i; for (i = 0; i < 256; i++) { if (i >= thr) map[i] = 255; else map[i] = 0; } // 变换后的值直接在映射表中查找 for (i = 0; i < nWidth * nHeight; i++) { int x = pSrc[i * 4]; pDst[i*4] = pDst[i*4+1] = pDst[i*4+2] = map[x]; pDst[i*4+3] = 255; } return EXIT_SUCCESS; }