how to display the image

2 views (last 30 days)
I=process(x,y,z) % "process" is the sub problem called in the main program to produce some output
Imshow(I) % displays the image
imwrite(I,path) % it does not save that image
instead it gives me the error that "the file format is not found from file name"
i tried using imsave % it works but i have to give the location and hence not suitable for large data
i have to save some 120 images that is not possible using imsave
someone pls help me how to save the image I which is displayed using imshow
  4 Comments
Stephen23
Stephen23 on 3 Dec 2014
Edited: Stephen23 on 3 Dec 2014
Please read my comment again: I did not write that you defined path as the function name, I wrote that path is being used as a variable name. However, note that both of these cases are best avoided, as path is an inbuilt function and shadowing inbuilt functions can cause problems that you really want to avoid.
RAMESH MUNIRATHINAM
RAMESH MUNIRATHINAM on 4 Dec 2014
thanks will try and inform you

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 3 Dec 2014
Edited: Stephen23 on 3 Dec 2014
According the imwrite documentation , there are several accepted input combinations:
imwrite(A,filename,fmt)
imwrite(X,map,filename,fmt)
imwrite(...,filename)
or online:
imwrite(A,filename)
imwrite(A,map,filename)
imwrite(___,fmt)
In your case you are only supplying one image A and the filename. The documentation states that in this case " imwrite(A,filename) writes image data A to the file specified by filename, inferring the file format from the extension. imwrite creates the new file in your current folder". Note that filename (which should not be named path, as you have done) must therefore include the image file extension. Without this, I also get exactly the same error as you:
>> load spine
>> imshow(X,map)
>> imwrite(X,map,'temp1')
??? Error using ==> imwrite at 435
Unable to determine the file format from the filename.
>> imwrite(X,map,'temp1.png')
>>
Note how I specify the image file format in filename, and it does not throw an error. You also need to specify the image file format, either within filename or in the fmt variable.
And do not use path as the name of your filename variable.
  5 Comments
RAMESH MUNIRATHINAM
RAMESH MUNIRATHINAM on 6 Dec 2014
confirmed it is varying
RAMESH MUNIRATHINAM
RAMESH MUNIRATHINAM on 6 Dec 2014
thank you finally i made it. now there is another problem occurring for me
if c=1:4
c=1 update(process)
c=2 update(process)
c=3 update(process)
c=4 update(process) end
i have split the image into 4 subplots so that it will be easy for comparison
each time the value of c varies the image gets updated
i have used the imwrite code outside the loop, then also the total updated image is not been written in folder
only the image corresponding to condition c=4 is written inside the folder
please kindly help so that i could see some progress in the work
once again thanks for your help for the past

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!