首页 > 代码库 > 图像处理(图像反转,对数变换,幂次变换、分段线性变换)

图像处理(图像反转,对数变换,幂次变换、分段线性变换)

1、对数变换实现了图像灰度扩展和压缩的功能。它扩展低灰度值而压缩高灰度值,让图像的灰度分布更加符合人的视觉特征。

/*******************************************************************************    作用:        对数变换函数*    参数: pDst     输出图像的像素数组*    参数: pSrc     原始图像的像素数组*    参数: nWidth   原始图像宽度*    参数: nHeight  原始图像高度*    参数: a           控制参数,表示曲线的上下偏移量*    参数: b           控制参数,表示曲线的弯曲程度*    备注:    此函数对于彩色图同样适用******************************************************************************/int LogTrans(BYTE* pDst, BYTE* pSrc, int nWidth, int nHeight, double a, double b){    if (!pSrc || !pDst)    {        return EXIT_FAILURE;    }    // 映射表,用于256种灰度变换后的值    BYTE map[256];    // 保存运算后的临时值    double dTemp;    int i, j;    for (i = 0; i < 256; i++)    {        // 计算当前像素变换后的值        dTemp = log((double)i + 1.0) / b + a;        // 如果超界则修改其值        if (dTemp < 0)            dTemp = 0.0;        else if (dTemp > 255)            dTemp = 255;        // 四舍五入        map[i] = int(dTemp + 0.5);    }    for (i = 0; i < nWidth * nHeight; i++)    {            for (j = 0; j < 4; j++)            pDst[i*4+j] = map[ pSrc[i*4+j] ];    }    return EXIT_SUCCESS;}

 

 

图像处理(图像反转,对数变换,幂次变换、分段线性变换)