Saving filtered image

4 ビュー (過去 30 日間)
Philip
Philip 2011 年 3 月 14 日
I have tested some code that applies homomorphic filtering to an image in the logarithmic space:
%%%%%log of image
im_l=log(1+im);
%%%%%DFT of logged image
im_f=fft2(im_l);
%%%%%Filter Applying DFT image
im_nf=H.*im_f;
%%%%Inverse DFT of filtered image
im_n=abs(ifft2(im_nf));
%%%%%Inverse log
im_e=exp(im_n);
When this process is complete, the image can be displayed using imshow(im_e,[]), but since im_e is of type double I cannot save it as per what is seen from the imshow statement...
Does anyone know how to solve this problem so that the image can be saved properly?
Many thanks!

採用された回答

Philip
Philip 2011 年 3 月 15 日
% convert image to intensities
int_vals = mat2gray(im_e);
% save intensities using imwrite
imwrite(int_vals, 'filtered_image.png');

その他の回答 (1 件)

Sean de Wolski
Sean de Wolski 2011 年 3 月 14 日
  3 件のコメント
Sean de Wolski
Sean de Wolski 2011 年 3 月 14 日
If you look at the formats in doc imwrite you'll see what the requirements are for each format. Since your images are of class double you'll either need a format that supports double or to convert you images to one of the accepted formats.
Philip
Philip 2011 年 3 月 15 日
Thanks, I played about for a while after your last comment and found that the easiest solution was to convert the data values to intensities using "mat2gray", and then saving the image as a PNG using "imwrite". This function converts the intensities to pixel values automatically before saving.
Thanks again!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeConvert Image Type についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by