русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Изображение в библиотеке IPL


Дата добавления: 2014-02-04; просмотров: 1287; Нарушение авторских прав


Каждая часть составного имени функции начинается с большой буквы, например, iplAlphaComposite.

Имена в библиотеке IPL

Введение в Image Processing Library

Некоторые из методов обработки изображений предельно просты, некоторые предельно сложны. В рамках данного курса следует сосредоточиться на сущности методов, ситуациях и результатах их применения. Поэтому реализацией самих методов мы заниматься не будем, а воспользуемся библиотекой Intel Image Processing Library, которая в образовательных учреждениях может использоваться бесплатно. Среди возможностей библиотеки выделим следующие:

  • Библиотека предоставляет структуру данных для представления изображений и проведения манипуляций с ними.
  • Библиотека выполняет геометрические преобразования изображений, включая повороты на произвольный угол.
  • В библиотеке реализованы поточечные арифметические и логические операции над пикселами.
  • Библиотека предоставляет функции для выполнения линейной и нелинейной фильтрации, линейных преобразований (быстрого преобразования Фурье, дискретного косинусного преобразования).
  • В библиотеке реализованы всевозможные цветовые преобразования.
  • С использованием библиотечных функций может быть реализовано большинство методов препарирования изображений.
  • Библиотека позволяет выполнять элементы анализа изображений (вычисление гистограммы, определение моментов, максимального и минимального элемента).

К сожалению, функций для чтения и записи изображений в какой-либо стандартный формат библиотека IPL не предоставляет.

В библиотеке IPL используются следующие правила именования:

  • все константы имеют префикс IPL и записываются прописными буквами, например: IPL_SIDE_LEFT;
  • имена структур начинаются с префикса Ipl, например: IplImage, IplROI;
  • все функции имеют префикс ipl и составные имена со следующей структурой: ipl<action><target>()
    где action – показывает, что делает функция, например: Set, Create, или Convert; target – уточняет, что именно она делает, например: ConvKernel или FromDIB.

В библиотеке IPL поддерживаются следующие цветовые модели:



  • Монохромная или полутоновая (один цветовой канал).
  • Цветные (3 цветовых канала RGB, HSV, C
  • MY).
  • Цветные (4 цветовых канала CMYK, RGBA).
  • Полихромные (с любым количеством цветовых каналов).

Библиотека позволяет выполнять обработку только одного или сразу всех цветовых каналов изображения.

Цифровое изображение в библиотеке IPL могут составлять значения различных типов знаковое целое (signed integer), беззнаковое целое (unsigned integer) или вещественное с плавающей точкой (floating-point). С использование различных типов данных поддерживаются следующие цветовые модели (s = signed, u = unsigned, f = float):

  • Полутоновая 1, 8s, 8u, 16s, 16u и 32f бит на пиксел.
  • Цветная трехканальная 8u и 16u бит на пиксел.
  • Четырех- и мультиканальная 8s, 8u, 16s, 16u, 32s и 32f бит на пиксел.

Изображение может храниться попиксельно (с различным порядком хранения цветовых компонент RGB, BGR и т.д.) и цветовыми плоскостями (когда отдельно хранятся данные для каждого цветового канала). При создании изображения в библиотеке IPL требуется указать способ её хранения.

В библиотеке IPL поддерживается две координатные системы:

  1. Начало координат находится в левом верхнем углу изображения, при этом координата x увеличивается слева направо, а координата y сверху вниз.
  2. Начало координат находится в левом нижнем углу изображения, при этом координата x увеличивается слева направо, а координата y снизу вверх.

Важным и мощным средством библиотеки IPL является область представляющая интерес (ОПИ, region of interest, ROI). С использованием этого понятия и специальной структуры данных можно выполнять преобразования только над частью изображения. В библиотеке возможны три типа ОПИ:

  • Канал представляющий интерес (КПИ, сhannel of interest, COI).
  • Прямоугольная область представляющая интерес (rectangular ROI).
  • Масочная область представляющая интерес (mask ROI).

Некоторые функции обработки изображений библиотеки IPL позволяют выбрать способ преобразования: по месту (in-place) или во вне (out-of-place). Понятно, что преобразования по месту не требуют переразмещения изображения в памяти, а результат преобразования записывается в исходное изображение. Следует заметить, что такое преобразование возможно не во всех случаях.

Кроме того, библиотека IPL поддерживает механизм фрагментации изображения (image tiling), который позволяет разбивать большое изображение на несколько маленьких. Тогда выполнения функция организуется так, что в памяти находится только небольшой кусок изображения. При определенных условиях это позволяет сделать обработку больших изображений более оптимальной. Для разбиения изображения используется специальная структура данных IplTileInfo.

Изображение в библиотеке IPL представляет собой структуру, которая начинается с заголовка содержащего всевозможные атрибуты и указатели на структуры данных размещенные в памяти. Создать заголовок изображения можно с помощью следующей функции:

IplImage* iplCreateImageHeader(int nChannels, int alphaChannel, int depth, char* colorModel, char* channelSeq, int dataOrder, int origin, int align, int width, int height, IplROI* roi, IplImage* maskROI, void* imageID, IplTileInfo* tileInfo);

nChannels

Количество цветовых каналов в изображении.

alphaChannel

Номер альфа-канала (канала прозрачности). Если в качестве значение этого аргумента указан 0, то это означает, что в изображении нет альфа-канала. Альфа-канал должен быть последним каналом изображения.

depth

Глубина цвета пикселов изображения, может принимать одно из следующих значений: IPL_DEPTH_1U, IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U, IPL_DEPTH_16S, IPL_DEPTH_32S или IPL_DEPTH_32F.

colorModel

Строка, обозначающая цветовую модель изображения: "RGB", "GRAY", "HLS" и т.д.

channelSeq

Порядок следования цветовых каналов, может принимать одно из следующих значений: "G", "GRAY", "BGR", "BGRA", "RGB", "RGBA", "HSV", "HLS", "XYZ", "YUV", "YCr", "YCC", "LUV".

dataOrder

Порядок расположения данных, может быть IPL_DATA_ORDER_PIXEL или IPL_DATA_ORDER_PLANE.

origin

Начало координат в изображении, может принимать одно из следующих значений: IPL_ORIGIN_TL или IPL_ORIGIN_BL.

align

Выравнивание данных, может принимать одно из следующих значений: IPL_ALIGN_DWORD или IPL_ALIGN_QWORD.

width

Ширина изображения в пикселах.

height

Высота изображения в пикселах.

roi

Указатель на структуру, описывающую область представляющую интерес. Этот аргумент может принимать значение NULL, что соответствует ОПИ покрывающей все изображение полностью.

maskROI

Указатель на заголовок другого изображения, которое описывает масочную ОПИ. Значение аргумента NULL указывает, что масочная ОПИ не используется. Пиксел изображения будет обработан, если значение соответствующего пиксела маски равно 1, и не будет обработан, если значение пиксела маски равно 0. Аргумент maskROI в этом изображении, используемом в качестве маски, игнорируется.

imageID

Идентификатор изображения (может использоваться для идентификации изображения в приложении).

tileInfo

Указатель на структуру IplTileInfo, содержащую информацию, используемую для фрагментации изображения.



<== предыдущая лекция | следующая лекция ==>
Методы обработки изображения | Преобразование сигналов оптическими системами


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.553 сек.