i can't display .tif image in matlab,where i can read it through imread,bt can't able to show it
1 回表示 (過去 30 日間)
古いコメントを表示
i can't display .tif image in matlab,where i can read it through imread,bt can't able to show it. showing the error like this
Error using imageDisplayValidateParams>validateCData (line 117)
Unsupported dimension.
Error in imageDisplayValidateParams (line 31)
common_args.CData = validateCData(common_args.CData,image_type);
Error in imageDisplayParseInputs (line 79)
common_args = imageDisplayValidateParams(common_args);
Error in imshow (line 198)
[common_args,specific_args] = ...
while checking imfinfo
Filename: [1x112 char]
FileModDate: '11-Aug-2015 07:30:15'
FileSize: 336095
Format: 'tif'
FormatVersion: []
Width: 106
Height: 115
BitDepth: 64
ColorType: 'grayscale'
FormatSignature: [77 77 0 42]
ByteOrder: 'big-endian'
NewSubFileType: 0
BitsPerSample: [32 32]
Compression: 'Uncompressed'
PhotometricInterpretation: 'BlackIsZero'
StripOffsets: [2x1 double]
SamplesPerPixel: 2
RowsPerStrip: 115
StripByteCounts: [2x1 double]
XResolution: 1
YResolution: 1
ResolutionUnit: 'None'
Colormap: []
PlanarConfiguration: 'Planar'
TileWidth: []
TileLength: []
TileOffsets: []
TileByteCounts: []
Orientation: 1
FillOrder: 1
GrayResponseUnit: 0.0100
MaxSampleValue: [4.2950e+09 4.2950e+09]
MinSampleValue: [0 0]
Thresholding: 1
Offset: 10
ImageDescription: [1x86 char]
SampleFormat: {2x1 cell}
ModelPixelScaleTag: [3x1 double]
ModelTiepointTag: [720x1 double]
GeoKeyDirectoryTag: [16x1 double]
UnknownTags: [1x1 struct]
i got like this and my image size given by size= 115 106 2 how i can display this image
1 件のコメント
回答 (2 件)
D Joseph
2015 年 8 月 13 日
use imshow
2 件のコメント
Walter Roberson
2015 年 8 月 13 日
Notice the quoted error message:
Error in imshow (line 198)
So that is what they were already using. The difficulty is that the image is in a strange format.
Walter Roberson
2015 年 8 月 13 日
Look at ColorType: 'grayscale' but SamplesPerPixel: 2 . The image has two bitplanes even though grayscale images should only have one. You should index the array at (:,:,1) to display it.
I suspect that it might be a grayscale image with an Alpha plane. The UnknownTags might give some hints about that. You could try reading it in as
[Imagedata, Map, Transparency] = imread('filename.tif');
and see what size(Imagedata) and size(Transparency) is. But I suspect that the file is not constructed exactly properly -- and it is possible that it is two different images stored together.
With your current imread() if it is intended to be transparency then you would be able to view it with
image(Imagedata(:,:,1), 'AlphaData', Imagedata(:,:,2)); %where Imagedata is the image read in
colormap(gray(256))
However, notice that the data is indicated as 32 bits for each of the planes, and notice that MaxSampleValue: [4.2950e+09 4.2950e+09] . That 4.2950e+09 happens to be 2^32 -- the data is probably in uint32 format and the entire range is used. You are going to have to rescale the data to view it properly -- the second plane as well. Try
plane1 = double(Imagedata(:,:,1)) / 2^32; %where Imagedata is the image read in
plane2 = double(Imagedata(:,:,2)) / 2^32;
subplot(3,1,1)
image(plane1);
colormap(gray(256));
title('first layer by itself')
subplot(3,1,2)
image(plane2);
colormap(gray(256));
title('second layer by itself');
subplot(3,1,3)
image(plane1, 'AlphaData', plane2);
colormap(gray(256));
title('second layer is Alpha on first layer')
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!