MATLAB: How to convert grayscale image to binary and reverse

grayscaleImage Processing Toolbox

I have a task to convert a grayscale image to binary and then take it back to its original form. I tried doing the former part by using im2bw function but was unable to do the latter after that as I had killed all the 'other than black and white patterns' when converting to binary. Any suggestions? 😀
Also, I don't know what the function mat2gray is for, since the input image (grayscale for instance) has itself already been a matrix hasn't it?
Thanks and sorry for my bad English.

Best Answer

Once you threshold an image with im2bw() to produce a logical (binary) image, you can't then take just that image and get back your gray scale image because you don't have enough information. Therefore you should save/keep your original gray scale image. Of course if you still have the original, then you're all set.
mat2gray() is a function that takes an array in any range at all, and scales it so the min is at 0, then max if at 1, and everything else is scaled linearly between 0 and 1.