MATLAB Answers


Luminance image to log domain

Asked by Elysi Cochin on 5 Oct 2013
Latest activity Edited by Image Analyst
on 5 Oct 2013

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.....



No products are associated with this question.

1 Answer

Answer by Image Analyst
on 5 Oct 2013
Edited by Image Analyst
on 5 Oct 2013
 Accepted 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.


Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!