新手,VC++6.0/Windows2000。后面是我实现的Gamma变化灰度图
像的代码。 现在我已经把24位的位图读入 CBitmap对象,想进一步对它作彩
色Gamma变换,发晕,总出问题,也许是我对CBitmap操作错误。 大虾指点,哪里有代码例子可以参考。void GammaTransform4Gray(double lfGamma, BYTE* pGrayData,
int nWidth , int nHeight)
{
/*f(x)=c * x ^ (1/gamma) */ ASSERT(lfGamma>=0);
ASSERT(pGrayData); int i;
int nImageSize = nWidth * nHeight;
double c; //used to stretch the gray range to [0, 255] c = 255.0 / exp(log(255.0) / lfGamma); for( i=0; i<nImageSize; i++, pData++)
{
if(*pGrayData != 0)
*pGrayData = (BYTE) (c * exp(log(*pGrayData)/lfGamma));
}
}
像的代码。 现在我已经把24位的位图读入 CBitmap对象,想进一步对它作彩
色Gamma变换,发晕,总出问题,也许是我对CBitmap操作错误。 大虾指点,哪里有代码例子可以参考。void GammaTransform4Gray(double lfGamma, BYTE* pGrayData,
int nWidth , int nHeight)
{
/*f(x)=c * x ^ (1/gamma) */ ASSERT(lfGamma>=0);
ASSERT(pGrayData); int i;
int nImageSize = nWidth * nHeight;
double c; //used to stretch the gray range to [0, 255] c = 255.0 / exp(log(255.0) / lfGamma); for( i=0; i<nImageSize; i++, pData++)
{
if(*pGrayData != 0)
*pGrayData = (BYTE) (c * exp(log(*pGrayData)/lfGamma));
}
}
开源的图形处理库,功能强劲,使用简单支持图象类型及转换质量超过Acdsee