图像处理-基本算法之灰度拉伸 from(同串口)
2013-04-01 20:32
405 查看
图像处理-基本算法之灰度拉伸
分类: 图像处理2012-06-13 13:00152人阅读评论(0)收藏举报图像处理算法byte
灰度拉伸是图像增强的一种,它是把分离的灰度转换到比较集中的程度,这时就更利于分析。
代码如下:
[cpp] view plaincopyprint?
/******************************************************************************
* 作用: 灰度均衡函数
* 参数: pDst 输出图像的像素数组
* 参数: pSrc 原始图像的像素数组
* 参数: nWidth 原始图像宽度
* 参数: nHeight 原始图像高度
******************************************************************************/
int GrayEqualize(BYTE* pDst,BYTE* pSrc, int nWidth,int nHeight)
{
if (!pSrc || !pDst)
{
return EXIT_FAILURE;
}
// 灰度映射表
BYTE map[256];
long lCounts[256];
memset(lCounts, 0, sizeof(long) * 256);
int i;
// 计算各灰度值个数
for (i = 0; i < nWidth * nHeight; i++)
{
int x = pSrc[i * 4];
lCounts[x]++;
}
// 保存运算中的临时值
long lTemp;
for (i = 0; i < 256; i++)
{
lTemp = 0;
for (int j = 0; j <= i; j++)
lTemp += lCounts[j];
map[i] = (BYTE)(lTemp * 255.0f / nWidth / nHeight);
}
// 变换后的值直接在映射表中查找
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;
}
相关文章推荐
- 图像处理-基本算法之灰度均衡 form(同串口)
- 图像处理基本算法
- 图像处理基本算法-比特分层
- 图像基本处理算法的简单实现(一)
- 图像处理-基本算法之对数变换
- 图像处理基本算法-形态学
- 图像基本处理算法的简单实现(一)
- 图像处理基本算法 形状特征
- 图像处理基本算法-比特分层
- 图像处理-基本算法之幂次变换
- 图像处理基本算法--仿射变换
- 图像处理基本算法-形态学
- 图像处理基本算法-直方图均衡
- 图像处理基本算法 Hough变换
- 图像基本处理算法的简单实现(一)
- 图像处理基本算法 形状特征
- 图像处理-基本算法之指数变换
- 图像处理基本算法--仿射变换
- 图像处理基本算法 Hough变换
- 图像基本处理算法的简单实现(二)