xiaoyukina
小有名气
指数变换的基本表达式为:y=bc(x-a)-1
   其中参数b、c控制曲线形状,参数a控制曲线的左右位置。

   指数变换的作用是扩展图像的高灰度级、压缩低灰度级。虽然幂次变换也有这个功能,但是图像经过指数变换后对比度更高,高灰度级也被扩展到了更宽的范围。

  代码如下:

[cpp] view plaincopyprint?
1./******************************************************************************
2.*   作用:     指数变换函数
3.*   参数: pDst     输出图像的像素数组
4.*   参数: pSrc     原始图像的像素数组
5.*   参数: nWidth   原始图像宽度
6.*   参数: nHeight  原始图像高度
7.*   参数: a          控制参数,表示曲线的左右偏移量
8.*   参数: b,c    控制参数,表示曲线的弯曲程度
9.*   备注: 此函数对于彩色图同样适用
10.******************************************************************************/
11.int ExpTrans(BYTE* pDst, BYTE* pSrc, int nWidth, int nHeight, double a, double b, double c)  
12.{  
13.    if (!pSrc || !pDst)  
14.    {  
15.        return EXIT_FAILURE;  
16.    }  
17.  
18.    // 映射表,用于256种灰度变换后的值  
19.    BYTE map[256];  
20.  
21.    // 保存运算后的临时值  
22.    double dTemp;  
23.  
24.    int i, j;  
25.    for (i = 0; i < 256; i++)  
26.    {  
27.        // 计算当前像素变换后的值  
28.        dTemp = pow(b, c * (i - a)) - 1;  
29.  
30.        // 如果超界则修改其值  
31.        if (dTemp < 0)  
32.            dTemp = 0.0;  
33.        else if (dTemp > 255)  
34.            dTemp = 255;  
35.  
36.        // 四舍五入  
37.        map = int(dTemp + 0.5);  
38.    }  
39.  
40.    for (i = 0; i < nWidth * nHeight; i++)  
41.    {     
42.        for (j = 0; j < 4; j++)  
43.            pDst[i*4+j] = map[ pSrc[i*4+j] ];  
44.    }  
45.  
46.    return EXIT_SUCCESS;  
47.}  

指数变换的基本表达式为:y=bc(x-a)-1
   其中参数b、c控制曲线形状,参数a控制曲线的左右位置。

   指数变换的作用是扩展图像的高灰度级、压缩低灰度级。虽然幂次变换也有这个功能,但是图像经过指数变换后对比度更高,高灰度级也被扩展到了更宽的范围。

  代码如下:

[cpp] view plaincopyprint?
1./******************************************************************************
2.*   作用:     指数变换函数
3.*   参数: pDst     输出图像的像素数组
4.*   参数: pSrc     原始图像的像素数组
5.*   参数: nWidth   原始图像宽度
6.*   参数: nHeight  原始图像高度
7.*   参数: a          控制参数,表示曲线的左右偏移量
8.*   参数: b,c    控制参数,表示曲线的弯曲程度
9.*   备注: 此函数对于彩色图同样适用
10.******************************************************************************/
11.int ExpTrans(BYTE* pDst, BYTE* pSrc, int nWidth, int nHeight, double a, double b, double c)  
12.{  
13.    if (!pSrc || !pDst)  
14.    {  
15.        return EXIT_FAILURE;  
16.    }  
17.  
18.    // 映射表,用于256种灰度变换后的值  
19.    BYTE map[256];  
20.  
21.    // 保存运算后的临时值  
22.    double dTemp;  
23.  
24.    int i, j;  
25.    for (i = 0; i < 256; i++)  
26.    {  
27.        // 计算当前像素变换后的值  
28.        dTemp = pow(b, c * (i - a)) - 1;  
29.  
30.        // 如果超界则修改其值  
31.        if (dTemp < 0)  
32.            dTemp = 0.0;  
33.        else if (dTemp > 255)  
34.            dTemp = 255;  
35.  
36.        // 四舍五入  
37.        map = int(dTemp + 0.5);  
38.    }  
39.  
40.    for (i = 0; i < nWidth * nHeight; i++)  
41.    {     
42.        for (j = 0; j < 4; j++)  
43.            pDst[i*4+j] = map[ pSrc[i*4+j] ];  
44.    }  
45.  
46.    return EXIT_SUCCESS;  
47.}  

2012-8-6 #41楼
kanesocool
武林盟主
给力的片子,要下了
2012-8-6 #42楼
8599235
武林盟主
谢谢分享,收下了
2012-8-6 #43楼
fydsww
江湖小虾
不错的电影,多谢分享。
2012-8-7 #44楼
xwze777
武林高手
动画片,应该是不错的啦
2012-8-7 #45楼
void
武林高手
喜欢黏土动画,经典的掌门狗啊
2012-8-7 #46楼
esurey
江湖小虾
kankanzaishuo                    
2012-8-7 #47楼
wangyou368
武林高手
adsssssssssssssss
2012-8-7 #48楼
ding123456
江湖小虾
zhichi..........................
2012-8-7 #49楼
粉晶黑曜石
武林高手
感谢楼主发帖,下载收藏
2012-8-7 #50楼
Aaron19851026
小有名气
估计过两天就有字幕了,哈哈!!!
2012-8-7 #51楼
暴力熊熊
小有名气
谢楼主隆恩                           
2012-8-7 #52楼
天骄大虫虫
小有名气
感谢楼主分享,支持!!!
2012-8-7 #53楼
余自飘香
武林高手
感谢楼主分享!支持!
2012-8-7 #54楼
OR忒忒
小有名气
好片啊,支持了好片啊,支持了
2012-8-7 #55楼
嘉兴小马哥
小有名气
看上去比较好玩的样子
2012-8-7 #56楼
wjc1201
武林高手


支持。。。。。。。。。。。

2012-8-7 #57楼
jhkjhkj45578
无名小卒
感觉好好干活干活干活韩国
2012-8-7 #58楼
yjzm0710
江湖小虾
谢谢分享,值得看看
2012-8-7 #59楼
tmxk208
武林高手
多谢楼主的分享,顶你!!!
2012-8-7 #60楼
游客组