MATLAB: Using imwrite after DWT and IDWT

digital image processingimageimage processingimwrite

I am having a problem while using imwrite after performing DWT and IDWT operations on an gray image.
the problem is that after the imwrite operation when i click on the resulting image file all that i am able to view is a white background instead of an image.
Is there any method to overcome this problem.
for example: if x is an m*n gray scale image then what i have done is
[A,B,C,D]=dwt2(x,'haar');
…..
…..
…..
here i have done some manipulations on the sub-bands(B,C,D)
…..
…..
…..
y=idwt2(A,B,C,D,'haar');
imwrite(y,'C:\Users\HOME\Desktop\IMAGEPROCESS','jpg');
After all these operations when i use imshow(y,[]) the correct image is being displayed. But its not the same case when i try to open the JPG image file(named IMAGEPROCESS in the Eg) as a result of the imwrite operation.
KINDLY HELP

Best Answer

Hi Vikas, Interesting application.
Your problem is just scaling before you write the .jpg file. Without scaling, virtually all the elements of your image matrix are written to the value 255 in the .jpg file, which is why it appears all white when you display.
Execute these lines:
x = idwt2(CA,CH,CV,CD,'haar');
x = x/255;
imwrite(x,'C:\Users\HOME\Desktop\imageprocess.jpg','jpg');
Im = imread('C:\Users\HOME\Desktop\imageprocess.jpg');
imshow(Im,[]);
Hope that helps