Last active
December 29, 2015 08:19
-
-
Save adrienkaiser/7642513 to your computer and use it in GitHub Desktop.
Code to compute HDR image from a set of LDR images.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int create_EXR_channels_from_LDR_image(IplImage **images, const float *Te, int nimg, float gfunction[256], const int width, const int height, float* EXRDataPtr) | |
{ | |
cvNamedWindow("images LDR", 0); // Tester : supprimer ceci | |
clock_t deb,fin,diff; | |
deb=clock(); | |
CvScalar Z; | |
CvSize size=cvGetSize(images[0]); | |
float numerateur[3]={0.0,0.0,0.0},denominateur[3]={0.0,0.0,0.0}; | |
float *dataf = EXRDataPtr; | |
float *Mdataf; | |
Mdataf = dataf; | |
int i,j,k,m,cpt=0; | |
for(k=0;k<nimg;k++)//affichage des N images d'entrée | |
{ | |
printf("affichage image %d \n", k); | |
cvShowImage("images LDR", images[k]); | |
cvWaitKey(); | |
} | |
for (j=0;j<size.height;j++) | |
{ | |
for (i=0;i<size.width;i++) | |
{ | |
// Traitement, a completer... | |
numerateur[0] =0; | |
numerateur[1] =0; | |
numerateur[2] =0; | |
denominateur[0] =0; | |
denominateur[1] =0; | |
denominateur[2] =0; | |
for(k=0;k<nimg;k++) // pour toutes les images | |
{ | |
Z = cvGet2D(images[k], j, i); | |
numerateur[0] += weight_func( Z.val[2] ) * ( gfunction[(int)Z.val[2]] - log(Te[k]) ); | |
denominateur[0] += weight_func( Z.val[2] ); | |
numerateur[1] += weight_func( Z.val[1] ) * ( gfunction[(int)Z.val[1]] - log(Te[k]) ); | |
denominateur[1] += weight_func( Z.val[1] ); | |
numerateur[2] += weight_func( Z.val[0] ) * ( gfunction[(int)Z.val[0]] - log(Te[k]) ); | |
denominateur[2] += weight_func( Z.val[0] ); | |
} | |
dataf[0] = numerateur[0] / denominateur[0]; | |
dataf[1] = numerateur[1] / denominateur[1]; | |
dataf[2] = numerateur[2] / denominateur[2]; | |
dataf+=3; | |
} | |
} | |
EXRDataPtr=Mdataf; | |
fin=clock(); | |
printf("create_HDR : %d ms\n",(int)(fin-deb)); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment