save images as tif 32 bits by using imwrite
29 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Soum
am 7 Feb. 2014
Beantwortet: Ashish Uthama
am 7 Feb. 2014
Hi;
I'm trying to save my images as tif 32 bits but I got this Error:
Cannot write uint32 data to a TIFF file
this is my code:
for K=1:10
Id{k} = waverec2(t_C,L,'sym8');
filename= ['C:\Path \Id_number_' num2str(k) '.tif'];
Id{k}=uint32(Id{k});
imwrite(Id{k},filename);
end
I need to save my images as tif 32 bits :/ have you any idea?
Thank you in advance
0 Kommentare
Akzeptierte Antwort
Andreas Goser
am 7 Feb. 2014
There is something in recent release called TIFF Class. Can you tell me if this meets your needs? Documentation here.
1 Kommentar
Weitere Antworten (1)
Ashish Uthama
am 7 Feb. 2014
Soum, did you click on the documentation link? Andreas was talking about the Tiff class, which is a different interface than IMWRITE.
Here is how you can use the Tiff class:
%
% Start with:
% http://www.mathworks.com/help/matlab/import_export/exporting-to-images.html#br_c_iz-1
data = uint32(magic(10));
This is a direct interface to libtiff
t = Tiff('myfile.tif','w');
% Setup tags
% Lots of info here:
% http://www.mathworks.com/help/matlab/ref/tiffclass.html
tagstruct.ImageLength = size(data,1);
tagstruct.ImageWidth = size(data,2);
tagstruct.Photometric = Tiff.Photometric.MinIsBlack;
tagstruct.BitsPerSample = 32;
tagstruct.SamplesPerPixel = 1;
tagstruct.RowsPerStrip = 16;
tagstruct.PlanarConfiguration = Tiff.PlanarConfiguration.Chunky;
tagstruct.Software = 'MATLAB';
t.setTag(tagstruct)
t.write(data);
t.close();
d = imread('myfile.tif');
disp(class(d));
assert(isequal(d,data))
0 Kommentare
Siehe auch
Kategorien
Mehr zu Image Data finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!