gamma亮度变换是数字视频处理中一个非常重要的步骤。
算法:
out = ( (in/max) .^ gamma )*max
进行gamma变换的一种方法是查表法。
详见:http://blog.youkuaiyun.com/yuan1125/article/details/5902343
#include
#include
#include
int main(int argc,char*argv[]){
int i;
int n;
int max;
float val;
switch(argc){
case 1:
printf("Use %s -h to get help.\n",argv[0]);
exit(0);
break;
case 3:
if((0==strcmp("-n",argv[1]))){
n=atoi(argv[2]);
if(n>0) break;
else {
printf("Error: Invalid arguments. Arg should not be %d.\n",n);
exit(1);
break;
}
}
case 2:
if((0==strcmp("-h",argv[1]))){
printf("Usage: %s -n \n",argv[0]);
exit(0);
break;
}
default:
if(argc>3){
printf("Error: Too many arguments.\n");
exit(1);
}
else{
printf("Error: Insufficient or unrecognized arguments.\n");
exit(1);
}
}
max=pow(2,n)-1;
pri