Hi guys! I have problem with change luminance/chroma to RGB, always get purple image from Flowers.exr and comp_b44.exr test files. I try understand how this algorithm works, create own version for seeing if I understand it correctly (detail below). Image quality is good but after reconstructed red and blue channels too bright, value range is different from same channels from comp_no.exr file. I think maybe need use fixSaturation() function but that function fixes all three channels together. Any one ever have this problem?
Because file have no chromacities attribute, I use these values: red = {0.64, 0.33} green = {0.3, 0.6} blue = {0.15, 0.06} white = {0.3127, 0.329} and calculate Yw values with computeYw() function: Yw = {0.212639, 0.715169, 0.0721923} (x, y, z) Then convert reconstructed pixels with this formula: red = luminace*(reconstuct_red + 1); blue = luminance*(reconstuct_blue + 1); green = (luminance - red * Yw_x - blue * Yw_z) / Yw_y; Below shows details how I reconstruct red and blue channels, if I do this wrong please tell me. Read file (Flowers.exr or comp_b44), have this three channels with size: 2n x 2m luminance Y channel n x m BY channel n x m RY channel Reconstruct BY and RY channels 1. copy first and last pixel of each scan line, column 0 to 12 value of first pixel, column 13 to 13 + (n - 1), data for scan line, 13 + n to 26 + n - 1 copy value of last pixel for each scan line +------+-------------+-----+ | copy | |copy | |first | chroma |last | |pixel | data |pixel| |data | |data | +------+-------------+-----+ 2. Expand horizontal scan lines use formula from reconstructChromaHorz() function for odd pixel values, copy even pixels and put data in 2n x 2m buffer: +----------------------------------+ | 13 lines, space copy first line | +----------------------------------+ | | | reconstructed scan lines | | (2n x m) | +----------------------------------+ | 13 lines, space copy last line | +----------------------------------+ After reconstructChromaHorz, copy first scan line for row 0 to 12, copy last scan line for row 13 + n to 26 + (n-1). 3. Use formula from reconstructChromaVert() function for odd scan lines, copy even scan lines and put in final buffer 2n x 2m. Is this correct method for reconstruct RGB data? thanks for any help. Châu
_______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel