saving image file using imread
1 次查看(过去 30 天)
显示 更早的评论
Hi i try to save an image file but gets the following error. I could not seem to correct it. Any help is appreciated.
imwrite(image,'test.tif');
this is the error
"Writing TIFFs with 30 components is not supported with IMWRITE. Use Tiff instead. Type "help Tiff" for more information.
Error in imwrite (line 472)
feval(fmt_s.write, data, map, filename, paramPairs{:}); "
I tried tosave using other formats like jpg/png then i get following error
"Invalid dimensions for X.
Error in imwrite (line 472)
feval(fmt_s.write, data, map, filename, paramPairs{:}); "
Many thanks.
0 个评论
回答(2 个)
Jan
2021-4-16
The message tells you, that you image has unexpected dimensions. JPG and PNG accept 2D matrices and [M x N x 3] RGB arrays. The 3rd dimension of your image is 30. How did you create it? Why does your image has 30 color channels?
5 个评论
Rik
2021-4-16
If you have a list of 2D images (which you have stored in a 3D array for convenience), you should write them as 2D images as well. Only if your 3rd dimension actually encodes something like color should you save the entire array as a hyperspectral/multi-channel image.
Image Analyst
2021-4-16
There is a special TIFF class that deals with multi-page tiff images. That's what the error was suggesting you use.
>> doc tiff
3 个评论
Image Analyst
2021-4-19
I haven't used it either. Call tech support if you can't figure it out. Sorry but I don't have time to figure it out myself and explain it to you - hope you understand.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!