Импорт изображений

Импортировать данные в MATLAB® рабочая область от графического файла, используйте imread функция. Используя эту функцию, можно импортировать данные из файлов во многих стандартных форматах файлов, включая теговый формат графических файлов (TIFF), Формат обмена графическими данными (GIF), формат графических данных JPEG (JPEG) и форматы Переносимой сетевой графики (PNG). Для полного списка поддерживаемых форматов смотрите imread страница с описанием.

Этот пример читает данные изображения, сохраненные в файле в формате JPEG в рабочее пространство MATLAB как массив I:

I = imread('ngc6543a.jpg');

imread представляет изображение в рабочей области как многомерный массив класса uint8. Размерности массива зависят от формата данных. Например, imread три измерения использования, чтобы представлять цветные изображения RGB:

whos I
  Name      Size                           Bytes  Class

  I       650x600x3                      1170000  uint8 array

Grand total is 1170000 elements using 1170000 bytes

Для большего количества управления чтением файлов TIFF используйте Tiff объект — видит Данные изображения Чтения и Метаданные из файлов TIFF для получения дополнительной информации.

Получение информации о файлах изображений

Если у вас есть файл в стандартном графическом формате, используйте imfinfo функция, чтобы получить информацию о ее содержимом. imfinfo функция возвращает структуру, содержащую информацию о файле. Поля в структуре меняются в зависимости от формата файла, но imfinfo всегда возвращает некоторую основную информацию включая имя файла, дату последнего изменения, размер файла и формат.

Этот пример возвращает информацию о файле в формате формата графических данных JPEG (JPEG):

info = imfinfo('ngc6543a.jpg')
info = 

           Filename: 'matlabroot\toolbox\matlab\demos\ngc6543a.jpg'
        FileModDate: '01-Oct-1996 16:19:44'
           FileSize: 27387
             Format: 'jpg'
      FormatVersion: ''
              Width: 600
             Height: 650
           BitDepth: 24
          ColorType: 'truecolor'
    FormatSignature: ''
    NumberOfSamples: 3
       CodingMethod: 'Huffman'
      CodingProcess: 'Sequential'
            Comment: {'CREATOR: XV Version 3.00b  Rev: 6/15/94  Quality =...'}

Чтение данных изображения и метаданных из файлов TIFF

В то время как можно использовать imread чтобы импортировать данные изображения и метаданные из файлов TIFF, функция действительно имеет некоторые ограничения. Например, файл TIFF может содержать повторные изображения, и каждый отображает, может иметь несколько подызображений. В то время как можно считать все изображения из файла TIFF мультиизображений с imread, вы не можете получить доступ к подызображениям. Используя Tiff объект, можно считать данные изображения, метаданные и подызображения из файла TIFF. Когда вы создаете Tiff объект, это представляет вашу связь с файлом TIFF и обеспечивает доступ ко многим стандартным программам в библиотеке LibTIFF.

Постепенный пример использования Tiff методы объекта и свойства считать подызображения из файла TIFF следуют. Получать все возможное от Tiff возразите, ознакомьте себя со спецификацией TIFF и техническими примечаниями. Смотрите LibTIFF - TIFF Library and Utilities.

Чтение подызображений из файла TIFF

Файл TIFF может содержать один или несколько директории файла изображения (IFD). Каждая IFD содержит данные изображения и метаданные (теги), сопоставленные с изображением. Каждая IFD может содержать один или несколько subIFDs, которые также могут содержать данные изображения и метаданные. Эти подызображения обычно являются уменьшаемым разрешением (миниатюра) версии данных изображения в IFD, содержащей subIFDs.

Чтобы считать подызображения в IFD, необходимо получить местоположение подызображения от SubIFD тег. SubIFD тег содержит массив байтовых смещений, которые указывают на подызображения. Затем можно передать адрес subIFD к setSubDirectory метод, чтобы сделать subIFD текущей IFD. Большая часть Tiff методы объекта работают с текущей IFD.

  1. Откройте файл TIFF, который содержит изображения и подызображения с помощью Tiff конструктор Object. Этот пример использует файл TIFF, созданный в Создании Подкаталогов файла TIFF, который содержит одну директорию IFD с двумя subIFDs. Tiff конструктор открывает файл TIFF и делает первый subIFD в файле текущей IFD:

    t = Tiff('my_subimage_file.tif','r');
  2. Получите местоположения subIFDs, сопоставленного с текущей IFD. Используйте getTag метод, чтобы получить значение SubIFD тег. Этот метод возвращает массив байтовых смещений, которые задают местоположение subIFDs:

    offsets = getTag(t,'SubIFD')
  3. Перейдите к первому подызображению. Во-первых, установите currentIFD на директорию, содержащую первое подызображение:

    dirNum = 1; 
    setDirectory(t,dirNum);
  4. Затем переместитесь к первому subIFD по использованию setSubDirectory метод. Задайте байтовое смещение subIFD в качестве аргумента. Этот вызов делает subIFD текущей IFD:

    setSubDirectory(t,offsets(1));
    
  5. Считайте данные изображения из текущей IFD (первый subIFD) тот же способ, которым вы читаете любую другую IFD в файле:

    subimage_one = read(t);
    
  6. Просмотрите первое подызображение:

    imagesc(subimage_one)
    
  7. Перейдите к второму подызображению. Во-первых, сбросьте currentIFD к директории, содержащей второе подызображение:

    setDirectory(t,dirNum);
  8. Затем переместитесь к второму subIFD по использованию setSubDirectory метод. Задайте байтовое смещение второго subIFD:

    setSubDirectory(t,offsets(2));
    
  9. Считайте данные изображения из текущей IFD (второй subIFD), как вы были бы с любой другой IFD в файле:

    subimage_two = read(t);
    
  10. Просмотрите второе подызображение:

    imagesc(subimage_two)
    
  11. Закройте Tiff объект:

    close(t);
    

Смотрите также

Внешние веб-сайты