3,881
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
if ( contrast > 0 ) { /* 如果 “contrast”在 x 轴的右边 */
(1) double delta = 127.0 * contrast / 100.0 /* (1) 到 (3) 为的是求出 相应的
* "constrast" 占用的区间 */
(2) double a = 255.0 / ( 255.0 - delta * 2 );
(3) double b = a * ( brightness - delta );
(4) for (int i = 0; i < 256; i++ ){ /* 划分了 256 个区间 */
int v = cvRound( a * i + b ); /* a * i + b 应该就是确定了一个区间的大小。 cvRound
* 返回该区间对应得 y 轴的最大值 */
if( v < 0 ){ /* 每个区间对于的 y 轴的取值范围是 [0, 255] 小于的,取0.大于 取255 */
v = 0;
}
if( v > 255 ){
v = 255;
}
lookUpTable[i] = ( unsigned char )v; /* 保存每个区间对应的 y 轴的值 */
}
/* 不知道lz 的“constrast” 是不是 与 “brightness” 对立的? */