原创 图像直方图

2009-2-23 22:24 2215 8 8 分类: 软件与OS

    直方图是一种统计图,其横坐标表示灰度值,纵坐标表示相应灰度值出现的点数。直方图并不能反映这些灰度在图像上的几何分布。


// 获取直方图
// 1. pImageData   图像数据
// 2. nWidth       图像宽度
// 3. nHeight      图像高度
// 4. nWidthStep   图像行大小
// 5. pHistogram   直方图指针,定义:int nHistogram[256];
BOOL GetHistogram(unsigned char *pImageData, int nWidth, int nHeight, int nWidthStep,
    int *pHistogram)
{
    int            i     = 0;
    int            j     = 0;
    unsigned char *pLine = NULL;
    // 清空直方图
    memset(pHistogram, 0, sizeof(int) * 256);
    for (pLine = pImageData, j = 0; j < nHeight; j++, pLine += nWidthStep)
    {
        for (i = 0; i < nWidth; i++)
        {
            pHistogram[pLine]++;
        }
    }
    return TRUE;
}


获取直方图效果:

36bf5a2c-d8c9-404e-aae4-149a82eca228.jpga26f660d-fa6d-4987-80fb-bf2446946c27.jpg

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条