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

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

Шаг 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)

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

Проверяйте, как функция imread хранит данные изображения в рабочей области, с помощью команды whos. Можно также проверять переменную в Браузер Рабочей области. Функция 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)

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

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

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

figure
imhist(I2)

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

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

imwrite (I2, 'pout2.png');

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

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

imfinfo('pout2.png')
ans = struct with fields:
                  Filename: '/tmp/BR2019ad_1062519_57051/mlx_to_docbook20/tpd46cd2cd/images-ex89505080/pout2.png'
               FileModDate: '21-Feb-2019 19:15:23'
                  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: '22 Feb 2019 00:15:23 +0000'
                     Title: []
                    Author: []
               Description: []
                 Copyright: []
              CreationTime: []
                  Software: []
                Disclaimer: []
                   Warning: []
                    Source: []
                   Comment: []
                 OtherText: []