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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Elysi Cochin
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.*

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.

## 0 Comments