2013-11-10 3 views
2

я получаю следующие ошибки при попытке запустить imshow с некоторыми TIFF файлов:MATLAB не imshow работать с некоторыми TIFF файлов

??? 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 и когда это Didn» t работать с imshow Я использовал его, чтобы просто получить изображение непосредственно с именем файла; сообщения об ошибках одинаковы.

Образ проблемы, которые я пытаюсь проанализировать, - это файлы 1032x778 tiff. Я сделал образец изображения tif, используя Paint, и функция не имеет никаких проблем с ним. Кто-нибудь знает, что вызывает эти ошибки и как отобразить изображение? Благодаря

Вот выход 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 

делают й = imread ('A1 x20.tiff'), а затем дает й чьего

Name x 
Size 778x1032x4 
Bytes 3211584 
Class uint8 
Attributes 
+0

Вы должны сначала использовать 'imread' на файл. Введите 'x = imread ('A1 x20.tiff');' и затем 'imshow (x)'. Если это не работает, введите 'whos x' и сообщите нам, что вы получаете –

+0

Что означает' iminfo ('A1 x20.tiff') 'print out? – Daniel

+0

Daniel - Вы имеете в виду imfinfo? Обновлено исходное сообщение с этой информацией –

ответ

4

Для по какой-то причине ваш файл tiff имеет четыре канала (ничего общего с несколькими кадрами): size(x,3)==4. Я предполагаю, что четвертый - это альфа-канал.
imshow может отображать либо изображения с серой шкалой, индексированные изображения (с size(x,3)==1), либо изображения с истинным цветом (с size(x,3)==3). У вашего изображения было 4 канала, и поэтому imshow не удалось.
Запрашиваемая inshow работать только на первых трех каналов сделал трюк:

>> imshow(x(:,:,1:3)); 
Смежные вопросы