<<
>>

Реализация блочного построения алгоритмов обработки изображения

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

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

горитмов и позволяет оптимально управлять вычислительными ресурсами, что ведет к повышению эффективности.

Рис. 7.2. Обрабатывающий граф для определения контуров объектов в изо­бражении

Каждая операция над изображением выполняется в виде программного мо­дуля, называемого обрабатывающим фильтром. Обрабатывающий фильтр по­лучает исходные данные и возвращает результаты обработки при помощи входных и выходных каналов данных (data sockets). Количество входных и вы­ходных каналов фильтра не ограничено и зависит от выполняемой им опера­ции. Обрабатывающий граф создается путем соединения выходных каналов одних обрабатывающих фильтров с входными каналами других фильтров. Если фильтр не имеет входных каналов, то такой фильтр является фильтром- источником, который поставляет информацию для обработки ее графом. Обра­батывающий граф должен иметь как минимум один фильтр-источник, напри­мер, фильтр захвата видеокадров или фильтр ввода дополнительных данных.

Пример обрабатывающего графа, реализующего алгоритм Собеля для опреде­ления контуров объектов в изображении и углов нормалей к этим контурам, приведен нарис.

7.2.

Управление оперативной памятью и данными реализовано так, что сами фильтры ответственны только за обработку данных и их инициализацию. Функции хранения и передачи данных по обрабатывающему графу возложены на входные и выходные каналы. Выходные каналы хранят обработанные фильтром данные (изображение) и могут поддерживать соединения с присое­диненными входными каналами по типу «один-ко-многим». Это дает возмож­ность использовать результаты одной операции сразу несколькими другими по­следующими операциями, как показано на рис. 7.2. Входные каналы хранят ссылки на исходные данные в тех выходных каналах, к которым они присоеди­нены. Входные каналы ответственны за создание копий данных в случае соеди­нения по типу «один-ко-многим» для того, чтобы избежать изменения исход­ных данных каким-либо из фильтров. Указанные функции выполняются соеди­ненными каналами автоматически, что значительно облегчает разработку самих фильтров, позволяя разработчику сконцентрироваться только на алгоритме конкретной операции, а не на управлении данными.

Для повышения производительности и избежания излишнего дублирования данных обрабатывающие фильтры могут размещать результаты обработки в той же области памяти, где располагались исходные данные. Фильтр, реализо­ванный таким образом, обрабатывает изображение «на месте» — полученное фильтром изображение замещает исходное изображение в памяти. Это позволя­ет достичь существенного прироста в производительности, так как изображения содержат значительный объем данных, копирование которого требует дополни­тельных вычислительных ресурсов. Если фильтр записывает результаты в об­ласть исходных данных, то он обязан известить об этом обрабатывающий граф путем установки соответствующего ключа у входного канала с исходными дан­ными. Это позволяет системе автоматически создавать копии модифицируемых исходных данных при наличии подключений по типу «один-ко-многим».

Для иллюстрации блочного построения сложных алгоритмов обработки изо­бражения рассмотрим этапы построения и функционирования обрабатывающе­го графа, состоящего из набора фильтров.

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

обработки их графом. Выходные и входные каналы фильтров соединяются в требуемом алгоритмом порядке.

После построения обрабатывающий граф проходит этап инициализации. При инициализации графа, исходя из схемы соединения фильтров в нем, авто­матически определяется порядок следования операций над изображениями и данными. При наличии соединений «один-ко-многим» автоматически опреде­ляются входные каналы, которым необходимо создавать копии исходных дан­ных, если в соединении имеются фильтры, замещающие исходные данные ре­зультатами обработки. Каждый обрабатывающий фильтр в порядке своего сле­дования в графе, начиная с фильтров-источников, инициализирует свои внут­ренние переменные, а также выделяет память для результатов своей операции. Это позволяет остальным фильтрам подстроиться под размер исходного изо­бражения, выдаваемого фильтром захвата в начале графа.

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

7.1.3.

<< | >>
Источник: ЛУКЬЯНОВ АНДРЕЙ АНАТОЛЬЕВИЧ. МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ В ПРОБЛЕМЕ ОБЕСПЕЧЕНИЯ ТОЧНОСТИ ДВИЖЕНИЯ И ПОЗИЦИОНИРОВАНИЯ МОБИЛЬНЫХ МАНИПУЛЯЦИОННЫХ РОБОТОВ. ДИССЕРТАЦИЯ на соискание ученой степени доктора технических наук. Иркутск - 2005. 2005

Еще по теме Реализация блочного построения алгоритмов обработки изображения: