Mercurial > hg > octave-image
changeset 645:cc81e4acc53c
analyze75write: Now write int16 and int32 datasets correctly.
author | adam78a |
---|---|
date | Wed, 03 Oct 2012 16:53:13 +0000 |
parents | 83c31ccc0da4 |
children | 051cf5393bbf |
files | inst/analyze75write.m |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/inst/analyze75write.m +++ b/inst/analyze75write.m @@ -107,11 +107,16 @@ header.Descriptor(1:numel(origintext)) = origintext; % Determine the type of data - if (isa(data,'short')) + if (isa(data,'int16')) header.ImgDataType = 'DT_SIGNED_SHORT'; header.BitDepth = int16(16); - DataTypeLabel = int16(0); - DataTypeString = 'short'; + DataTypeLabel = int16(4); + DataTypeString = 'int16'; + elseif isa(dataIN,'int32') + header.ImgDataType = 'DT_SIGNED_INT'; + header.BitDepth = int16(32); + DataTypeLabel = int16(8); + DataTypeString = 'int32'; elseif (isa(data,'single')) header.ImgDataType = 'DT_FLOAT'; header.BitDepth = int16(32); @@ -210,7 +215,7 @@ function [datanew,znew] = interpslices(data,x,y,z) znew = z(1):min(diff(z)):z(end); - datanew = zeros(numel(x),numel(y),numel(znew),'single'); + datanew = zeros(numel(x),numel(y),numel(znew),class(data)); for loopN = 1:numel(znew) datanew(:,:,loopN) = interpn(x,y,z,data,x,y,znew(loopN)); end