Импорт, обработка и экспорт базовых изображений

В этом примере показано, как считать изображение в рабочую область, настроить контрастность в изображении, а затем записать скорректированное изображение в файл.

Шаг 1: Чтение и отображение изображения

Чтение изображения в рабочую область, с помощью imread команда. В примере считывается одно из образцовых изображений, включенных в тулбокс, изображение молодой девушки в файле с именем pout.tif , и сохраняет его в массиве с именем I . imread выводит из файла, что формат графического файла имеет теговые форматы графических файлов (TIFF).

I = imread('pout.tif');

Отобразите изображение, используя imshow функция. Вы также можете просмотреть изображение в приложении Image Viewer imtool функция открывает приложение Image Viewer, которое представляет интегрированное окружение для отображения изображений и выполнения некоторых распространенных задач обработки изображений. Приложение Image Viewer предоставляет все возможности отображения изображений imshow но также предоставляет доступ к нескольким другим инструментам для навигации и исследования изображений, таким как полосы прокрутки, инструмент Pixel Region, инструмент Image Information и инструмент Contrast Adjustment.

imshow(I)

Figure contains an axes. The axes contains an object of type image.

Шаг 2: Проверьте, как изображение появляется в рабочей области

Проверьте, как imread функция сохраняет данные изображения в рабочей области, используя whos команда. Можно также проверить переменную в браузере рабочей области. The imread функция возвращает данные изображения в переменной I , который является массивом элементов 291 на 240 из uint8 данные.

whos I
  Name        Size             Bytes  Class    Attributes

  I         291x240            69840  uint8              

Шаг 3: Улучшите контрастность изображений

Просмотрите распределение интенсивности пикселей изображения. Изображение pout.tif представляет собой несколько низкоконтрастное изображение. Чтобы увидеть распределение интенсивностей в изображении, создайте гистограмму, вызвав imhist функция. (Предшествуйте вызову imhist командой figure так, чтобы гистограмма не перезаписывала отображение изображения I в текущую фигуру окне.) Заметьте, как гистограмма указывает, что область значений интенсивности изображения довольно узок. Эта область значений не охватывает потенциальные области значений [0, 255] и пропускает высокие и низкие значения, которые приводили бы к хорошему контрасту.

figure
imhist(I)

Figure contains 2 axes. Axes 1 contains an object of type stem. Axes 2 contains 2 objects of type image, line.

Улучшите контрастность в изображении, используя histeq функция. Гистограмма эквализации распределяет значения интенсивности по всей области значений изображения. Отобразите изображение. (Тулбокс включает несколько других функций, которые выполняют регулировку контрастности, включая imadjust и adapthisteq, и интерактивные инструменты, такие как инструмент «Настроить контрастность», доступный в Image Viewer.)

I2 = histeq(I);
figure
imshow(I2)

Figure contains an axes. The axes contains an object of type image.

Вызовите imhist снова функция, чтобы создать гистограмму уравненного изображения I2 . Если вы сравните две гистограммы, то можете увидеть, что гистограмма I2 более распространен по всей области значений, чем гистограмма I .

figure
imhist(I2)

Figure contains 2 axes. Axes 1 contains an object of type stem. Axes 2 contains 2 objects of type image, line.

Шаг 4: Запись скорректированного изображения в файл диска

Запишите недавно скорректированное изображение I2 в файл диска, используя imwrite функция. Этот пример включает расширение имени файла '.png' в имени файла, так что imwrite функция записывает изображение в файл в формате Portable Network Graphics (PNG), но можно задать другие форматы.

imwrite (I2, 'pout2.png');

Шаг 5: Проверьте содержимое недавно написанного файла

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

imfinfo('pout2.png')
ans = struct with fields:
                  Filename: '/tmp/BR2021ad_1655202_180016/mlx_to_docbook2/tp22e0234f/images-ex89505080/pout2.png'
               FileModDate: '21-Apr-2021 02:03:37'
                  FileSize: 36938
                    Format: 'png'
             FormatVersion: []
                     Width: 240
                    Height: 291
                  BitDepth: 8
                 ColorType: 'grayscale'
           FormatSignature: [137 80 78 71 13 10 26 10]
                  Colormap: []
                 Histogram: []
             InterlaceType: 'none'
              Transparency: 'none'
    SimpleTransparencyData: []
           BackgroundColor: []
           RenderingIntent: []
            Chromaticities: []
                     Gamma: []
               XResolution: []
               YResolution: []
            ResolutionUnit: []
                   XOffset: []
                   YOffset: []
                OffsetUnit: []
           SignificantBits: []
              ImageModTime: '21 Apr 2021 06:03:37 +0000'
                     Title: []
                    Author: []
               Description: []
                 Copyright: []
              CreationTime: []
                  Software: []
                Disclaimer: []
                   Warning: []
                    Source: []
                   Comment: []
                 OtherText: []