Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006), страница 9
Описание файла
DJVU-файл из архива "Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006)", который расположен в категории "". Всё это находится в предмете "системы распознавания образов" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 9 - страница
табл. 2.1), генно -- это разрешение в с1р1, а 111епаше — это имя, под которым пользователь хочет сохранить изображение. Например, чтобы экспортировать содержимое окна на рис. 2.2 в виде г11-файла с разрешением 300 с1р1 под именем Ы гев гоне, необходимо выполнить команду » рг1цг -11 -Ж1гг -г300 Ь1 гев гоне Эта команда поместит построенный файл Ь1 гев гоне.611 в текущую папку. Если просто набрать ргйпг после приглашения, то МАТЮКАВ напечатает (на принтере, принятом по умолчанию) содержимое последнего выведенного на экран окна изображений. Можно также указать другие опции команды рг1пг, например, задать специфическое печатное устройство.
2.5. Классы данных Несмотря на то, что приходится работать с целочисленными координатами, значения самих пикселов не обязательно должны быть целыми числами. В табл. 2.2 перечислены разные классы данных', поддерживаемые системой МАТЮКАВ и пакетом 1РТ. Первые восемь записей, приведенных в таблице, относятся к числоеьсы классам данных. Девятая запись — это класс символов, а последняя запись относится к логическому классу данных. Все численные операции в МАТЮКАВ выполняются с двойной точностью в классе данных боцЫе, который часто используется в приложениях по обработки изображений. Класс цйцг8 тоже встречается весьма часто, особенно при считывании данных с запоминающих устройств. например, самых распространенных на практике 8-битных изображений.
Эти два класса данных, класс 1о81са1, а также в меньшей степени класс ц1цг16, образуют первостепенные классы данных, ЗВ документации по МАТоАВ используются словосочетания классы данных и длины даиньдх в одном и том же смысле. В данной книге термин пдип изображения зарезервирован для других целей, которые будут обсуждаться в $ 2.6. ~~~40 Глава 2. Цифровые изображения е МА27.АВ заблица 2.2. Классы данных. Первые восемь классов называются числовыми, девятый— символьный класс, последний класс — логический Имя Описание Вещественные числа с плавающей запятой двойной точности в диапазоне, примерно, от — 10эоэ до 10заэ (8 байт на число), Целые без знака в интервале (О, 255) (1 байт на число).
Целые без знака в интервале (0,65535) (2 байта на число). Целые без знака в интервале (О, 4294967295) (4 байта на число). Целые со знаком в интеряале ( — 128, 127) (1 байт на числа). Целые со знакам в интервале [ — 32768, 32767) (2 байта на число). Целые са знаком в интервале ( — 2147483648, 2147483647) (4 байта). Вещественные числа с плавающей запятой обычной точности в диапазоне, примерно, от — 10ээ до 10зэ (4 байта на число).
Символы (буквы и знаки) (2 байта на символ). Значения 0 или 1 (1 байт на элемент). аоисйе п1пС8 и1пС16 и1пС32 1пС8 ГвС16 1пС32 в1п81е сьат 1о81са1 2.6. Типы изображений Пакет )РТ поддерживает следующие типы изображений: — полутоновые изображения (изображения с градацией серого цвета); — двоичные изображения; — индексированные изображения; — цветные изображения КСВ. Болыпинство монохромных изображений обрабатывается операциями, которые работают с двоичными и полутоновыми изображениями, поэтому вначале наше внимание будет обращено именно на эти два типа изображений.
Индексирован- ный тип и тип изображений ВСВ будут обсуждаться в гл. 6. на которых будет сфокусировано внимание в нашей книге. Многие функции из 1РТ поддерживают, однако, все классы данных, приведенные в табл. 2.2. Класс данных боцЫе требует 8 байт для представления одного числа, класс п1пс8 использует один байт на каждый элемент, типам п1пс16 и 1пс16 необходимо по 2 байта, а типы п1пс32, 1пс32 и 61п81е отнимают в памяти по 4 байта на каждый элемент. Символьный класс данных сабах хранит буквы и символы в кодировке Ппэсос(е, в которой используется два байта на элемент.
Символьная строка представляет собой массив 1хп символов класса спас. Массив 1081са1 состоит из элементов, принимающих только два значения, 0 и 1, которые хранятся в памяти, занимая по одному байту каждый. Логические массивы создаются с использованием функции 1о81са1 (см. 3 2.6.2) или с помощью операций сравнения (см. ~ 2А0.2). Й.б. г б 4~~1) 2.6.1. Полутоновые изображения Полутоновое изображекие — это матрица, элементы яркости которой представлены в виде числовых значений. Если элементы полутонового изображения принадлежат классу цйпс8 или цгпт16, то они представлены целыми числами, соответственно, в интервалах [О, 255] и [О, 65535~.
Если изображение принадлежит классу боцЫе, то его пикселы являются вещественными числами с плавающей запятой. По общему соглашению, пикселы изображений боинге должны лежать в интервале [О, Ц. 2.6.2. Двоичные изображения Двоичные изображения имеют в МАТЕАВ весьма специфический смысл. Они являются логическими массивами, состоящими из 0 и 1. Поэтому массив элементов 0 и 1 других классов, например, пйпт8, двоичным изображением не считается. Для преобразования числовых массивов в логические служит функция 1ойгса1.
Если А — числовой массив, состоящий из 0 и 1, то для построения логического массива В с теми же элементами следует выполнить команду В = 1о81са1(А) Если массив А имеет также другие элементы, отличные от 0 и 1, то функция 1ояйса1 преобразует все его ненулевые единицы в логический элемент 1, а все нулевые в логический элемент О. Операции сравнения (см. 9 2.10.2) и логические операторы тоже порождают логические массивы. Чтобы проверить, является ли данный массив логическим, применяется функция Ав1обгса1: Аа1ойгса1(С) Если С вЂ” логический массив, то эта функция возврашает 1, впротивном случае — О.
Для преобразования логических массивов в числовые применяются функции преобразования классов данных, которые будут обсуждаться в 9 2.7.11. 2.6.3. Еще раз о терминологии В предыдущих параграфах болыпое внимание было уделено разъяснению понятий класс данн»и и тип изобрижекия. Теперь мы будем использовать выражения вида «изображение типа Ашайе туре класса йаеа с1ааа», где слова баса с1ааа даны в табл. 2.2, а Ашайе суре — это один из типов изображений, перечисленных в начале 9 2.6.
Таким образом, изображение характеризуется своим классом и типом. Например, если обсуждается «полутоновое изображение класса пгпе8», то это означает, что речь идет об изображении, пикселы которого принадлежат классу пгпт8. Многие функции пакета 1РТ поддерживают все классы данных, но там имеются и специализированные инструменты, сконструированные для работы с конкретными классами. Например, как говорилось выше, пикселы двоичных изображений могут быть только из класса 1обйса1, |См.
табл. 2.9, в которой приведен список других функций, имеющих синтаксис вида тв*. ~~~42 Глава а Цифровые изоброаюения е МАТААВ 2.7. Конвертирование классов данных и типов изображений Преобразование (конвертирование) изображений из одних классов н типов в другие классы и типы является самым распространенным действием в 1РТ. Совершая конвертацию типов данных, следует помнить о диапазонах значений величин каждого класса, приведенных в табл. 2.2. 2.7.1. Конвертирование классов данных Классы конвертируются следующим образом: В = бата с1авв паше(А) где паса с1авв паше — это одно из имен классов данных из первого столбца табл.
2.2. Например, пусть А — массив класса п1пс8. Массив двойной точности В генерируется командой В = г)опЫе(А). Это преобразование будет весьма часто применяться в книге, поскольку МАТЬАВ предполагает, что операнды числовых операций являются вещественными числами с двойной точностью. Если С вЂ” это массив класса бопЫе, элементы которого лежат в интервале )О, 255), но среди них могут встречаться дробные числа, то его можно преобразовать в массив пйпс8 командой О = п1пс8(С). Если массив класса бопЫе имел элементы со значениями вне интервала )О, 255) и он был конвертирован в класс цйпс8 описанным выше способом, то МАТЬАВ преобразует все отрицательные величины (меньшие 0) в О, все величины, большие 255 — в 255, а у всех остальных элементов отбрасываются дробные части. Это означает, что перед преобразованием массивов бобе в п1пс8 необходимо совершить подходящую перенормировку (перемасштабирование) его элементов.
Как уже говорилось в 3 2.6.2, преобразование любых числовых данных в логические приводит к логическому массиву, в котором стоят логические 1 везде на месте ненулевых элементов входного массива и 0 на месте тех элементов, которые равны нулю.
2.7.2. Конвертирование классов и типов изображений В пакете имеются специальные функции (см. табл. 2.31), которые совершают перенормировку (перемасштабирование) при конвертации одних классов и типов изображений в другие. Функция Аш2пйпс8 сначала распознает класс данных на входе и совершает все необходимые преобразования, чтобы выходное изображение имело правильный тип данных.
Рассмотрим, к примеру, следующее изображение 1 размера 2 х2 класса бопЫе, которое может являться результатом некоторых промежуточных вычислений: » -О.б О.б 0.75 1.5 1Функцию сьаввес1авв, которая рассматривается в 1 Заьз, можно исоользовать для изменения класса входного изображения. Выполняя преобразование » 8 = 1ш2ц1пт8И) получаем результат Б = 0 128 191 255 Таблица 2.3. Функции 1РТ для конвертации классов и типов изображений. См.
функции из табл. 6.3 для конвертации цветнык изображений В последнем примере видно, что функция Аш2п1пт8 обнуляет все отрицательные значения входного изображения, ставит число 255 на место величин, больших 1, и умножает остальные значения на 255, после чего округляет результат до ближайшего целого числа. Отметим, что функция Аш2ц1пт8 делает округление не так, как это совершает описанная в 8 2.7.1 функция преобразования классов данных пйпт8, которая просто отбрасывает дробную часть числа.
Преобразование произвольных массивов бопЫе в переноржированные массивы (изображения) боцЫе со значениями в интервале (О, Ц выполняется с помощью функпни шас28гау, имеющий следующий синтаксис: я = шас28гау(А, ~Аш1п, Ашах)) где изображение я имеет значения пикселов в интервале от 0 (белый) до 1 (черный). Указанные параметры Аш1п и Ашах имеют следующее действие: все элементы, меныпие Ашйп, обнуляются, а все элементы, болыпие Ашах, заменяются на 1. При выполнении команды » я = шат28гау(А); значения Аш1п и Ашах — это настоящие максимум н минимум массива А.
Предполагается, что входной массив из класса бопЫе. Выходной массив также принадлежит классу с)опЫе. Функция 1ш2с)опЫе преобразует входной массив в класс бопЫе. Если входной леассив был из класса 1оя1са1, п1пт8 илн пйпт15, то функция Аш2доцЫе преобразует его в класс бопЫе с диапазоном (О, Ц. Если входной массив был класса с)опЬ1е, то функция 1ш2с)опЫе оставляет его без изменений. Как уже объяснялось выше, для преобразования массивов с)опЫе в массивы с)опЫе со значениями в интервале (О, Ц применяется функция ша128гау. В качестве иллюстрации рассмотрим изображение класса пйпс82 зВ 1 2.8.2 поясняется использование квадратнык скобок и знака точка с запятой при задании матриц. ~~( 44 Глава 2.