MATLAB: Luminance image to log domain

luminance image to log domain

Please can someone help me convert luminance image to its logarithm domain
i did like this
L = log(lum + 1);
figure(3); imshow(L); title('Logarithmic Image');
and i got an output, but i wanted it as
magnify the luminance 10^6 times.
It is calculated as follows: L = ln(lum ・ 10^6 + 1)
ln() represents the natural logarithm.
Finally, the gray image is found by scaling L into range [0, 1]:
L = L/ max(L), where max(L) represents the maximum value of L
so i modified the code as
L = log(lum * 10^6 + 1);
L = L/ max(L);
figure(3); imshow(L); title('Logarithmic Image');
but now i dont get any output…. i just get a line in my output figure….. no error… but, please can someone help me how to code it…..

Best Answer

It's a floating point image, not uint8, so you need to use [] in imshow():
imshow(L, []);
and get rid of the division by max(L) - it's not needed. Anyway I don't know why you didn't get an error since max(L) would be a row vector since it's the max over columns of your scaled lum array.
Related Question