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

36 Ansichten (letzte 30 Tage)
Akshra
Akshra am 8 Dez. 2016
Beantwortet: Kushagr Gupta am 20 Dez. 2016
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 Kommentar
Adam
Adam am 8 Dez. 2016
Bearbeitet: Adam am 8 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Kushagr Gupta
Kushagr Gupta am 20 Dez. 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.

Community Treasure Hunt

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

Start Hunting!

Translated by