Difference between revisions of "PHP and Gamma values"
From ElphelWiki
(Code to change gamma values in PHP) |
m |
||
Line 67: | Line 67: | ||
?> | ?> | ||
− | The code looks for HTTP query parameters ''black'' (level of black) and ''gamma'' and sets them at the same time. The parameters should be integers: ''1 < gamma <= 100'' and ''0 <= black <= 50''. | + | The code looks for HTTP query parameters ''black'' (level of black) and ''gamma'' and sets them at the same time. |
+ | |||
+ | The parameters should be integers: ''1 < gamma <= 100'' and ''0 <= black <= 50''. | ||
+ | |||
The undocumented function '''elphel_gamma_add(int gamma, int black)''' is used, where the value of ''gamma'' for this function must be a float ''0.1 < gamma <= 1.0''. Without it the gamma values are not effected. More can be found in the file ''camvc.php'' in ''/mnt/flash/html''. | The undocumented function '''elphel_gamma_add(int gamma, int black)''' is used, where the value of ''gamma'' for this function must be a float ''0.1 < gamma <= 1.0''. Without it the gamma values are not effected. More can be found in the file ''camvc.php'' in ''/mnt/flash/html''. |
Revision as of 10:58, 8 February 2012
How to change Gamma values in an Elphel camera
Changing Gamma and BlackLevel values at present requires some special treatment. Here is a short PHP script that does it:
<?php // Set default frame ahead if (!array_key_exists("ahead",$_GET)) $ahead=3; // Special treatment for the gamma values and blacklevel. // Get exising gamma values if a gamma parameter is requested if (array_key_exists("gamma",$_GET) || array_key_exists("black",$_GET)) { $gammas=array( "GTAB_R__0816"=>"", "GTAB_G__0816"=>"", "GTAB_GB__0816"=>"", "GTAB_B__0816"=>"", "GTAB_R__0824"=>"", "GTAB_G__0824"=>"", "GTAB_GB__0824"=>"", "GTAB_B__0824"=>"" ); // get existing gamma values $gammas= elphel_get_P_arr($gammas); } foreach($_GET as $key=>$value) { if(strtolower(substr($s, 0, 2))=="0x") $value= hexdec($value); switch ($key) { case "gamma": // set gammas array and postpone setting values in the camera $value = intval($value); foreach (array( "GTAB_R__0816", "GTAB_G__0816", "GTAB_GB__0816", "GTAB_B__0816" ) as $key) $gammas[$key] = $value; break; case "black": // set gammas array and postpone setting values in the camera $value = intval($value); foreach (array( "GTAB_R__0824", "GTAB_G__0824", "GTAB_GB__0824", "GTAB_B__0824" ) as $key) $gammas[$key] = $value; break; } // If any gamma value was set, set all gamma values in the camera. // Was postponed earlier if ($gammas != NULL) { elphel_gamma_add($gammas["GTAB_G__0816"]/100, $gammas["GTAB_G__0824"]); // Apply the values at the frame ahead elphel_set_P_arr($gammas,$ahead); } // // Add code to form the output here } ?>
The code looks for HTTP query parameters black (level of black) and gamma and sets them at the same time.
The parameters should be integers: 1 < gamma <= 100 and 0 <= black <= 50.
The undocumented function elphel_gamma_add(int gamma, int black) is used, where the value of gamma for this function must be a float 0.1 < gamma <= 1.0. Without it the gamma values are not effected. More can be found in the file camvc.php in /mnt/flash/html.