Why does imshow() function in Matlab return a blank image?

11 views (last 30 days)
I am trying to perform the inverse stationary wavelet transform on an image, but I can't view the output of the image using the imshow() or image(), they both return a blank figure. I have also tried imshow(Y,[]) this also returns a blank image.
This is what I am trying to do
[A,H,D,V] = swt2(i,3,'sym4'); %input i is an grayscale/intensity image%
Y = iswt2(A,H,D,V, 'sym4') ;
imshow(Y) % the figure is white/blank %
How can I resolve this issue?
  1 Comment
Adam
Adam on 8 Dec 2016
Edited: Adam on 8 Dec 2016
Have you used the debugger to actually look at Y and see if there is anything in it? The most obvious reason why imshow and image return a blank image is because you are giving them blank data to plot.
Also double-check data types.

Sign in to comment.

Answers (1)

Kushagr Gupta
Kushagr Gupta on 20 Dec 2016
Another common mistake that can yield to white or black images is a mismatch in datatypes while casting from one to another.
For example:
>> I1 = im2double(imread('coins.png')); % reads an image and converts to double in range 0-1
>> imshow(uint8(I1)) % yields a black image
This happened as the image within range [0 1] was cast into uint8 whose range is [0 255]
A better way to cast, if it is required at all would be:
>> imshow(uint8(I1*255));
But in general it is a good practice to deal with images converted to double datatype using ' im2double ' and doing further processing on these matrices.

Categories

Find more on Denoising and Compression in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!