3

一部の tiff ファイルで imshow を実行しようとすると、次のエラーが発生します。

??? Error using ==> imageDisplayValidateParams>validateCData at 114
Unsupported dimension

Error in ==> imageDisplayValidateParams at 31
common_args.CData = validateCData(common_args.CData,image_type);

Error in ==> imageDisplayParseInputs at 79
common_args = imageDisplayValidateParams(common_args);

Error in ==> imshow at 199
  [common_args,specific_args] = ...

Error in ==> CellArea at 6
imshow('A1 x20.tiff')

私は最初に画像データを matlab 変数に保存しましたがimread、それがうまくいかなかったときはimshow、ファイル名で画像を直接取得するために使用しました。エラーメッセージは同じです。

私が分析しようとしている問題の画像は、1032x778 の tiff ファイルです。Paint を使用してサンプルの tif イメージを作成しましたが、機能は問題ありません。これらのエラーの原因と、画像を表示する方法を知っている人はいますか? ありがとう

要求に応じて、画像の 1 つの infinfo 出力を次に示します。

                 Filename: 'A1 x20.tiff'
              FileModDate: '14-Oct-2013 15:49:26'
                 FileSize: 3211714
                   Format: 'tif'
            FormatVersion: []
                    Width: 1032
                   Height: 778
                 BitDepth: 32
                ColorType: 'truecolor'
          FormatSignature: [73 73 42 0]
                ByteOrder: 'little-endian'
           NewSubFileType: 0
            BitsPerSample: [8 8 8 8]
              Compression: 'Uncompressed'
PhotometricInterpretation: 'RGB'
             StripOffsets: 8
          SamplesPerPixel: 4
             RowsPerStrip: 4.2950e+009
          StripByteCounts: 3211584
              XResolution: []
              YResolution: []
           ResolutionUnit: 'None'
                 Colormap: []
      PlanarConfiguration: 'Chunky'
                TileWidth: []
               TileLength: []
              TileOffsets: []
           TileByteCounts: []
              Orientation: 1
                FillOrder: 1
         GrayResponseUnit: 0.0100
           MaxSampleValue: [255 255 255 255]
           MinSampleValue: 0
             Thresholding: 1
                   Offset: 3211592

x = imread('A1 x20.tiff') を実行すると、whos x が得られます

Name x
Size 778x1032x4
Bytes 3211584
Class uint8
Attributes
4

1 に答える 1

5

何らかの理由で、tiff ファイルには 4 つのチャネルがあります (複数のフレームとは関係ありません): size(x,3)==4. 4番目はアルファチャンネルだと思います。
imshowでは、グレー スケール イメージ、インデックス付きイメージ ( を使用size(x,3)==1)、またはトゥルーカラー イメージ ( を使用size(x,3)==3) のいずれかを表示できます。画像には 4 つのチャネルがあったため、imshow失敗しました。最初の 3 つのチャネルのみで作業するように依頼すると、うまくいきました
inshow

 >> imshow( x(:,:,1:3) );
于 2013-11-10T16:44:03.477 に答える