exponenta event banner

visionhdl. BirdsEyeView

Преобразование изображения с фронтальной камеры в вид сверху вниз

Описание

visionhdl.BirdsEyeView Система object™ деформирует изображение с фронтальной камеры в вид сверху вниз. Она использует аппаратно эффективную архитектуру, которая поддерживает генерацию кода HDL.

Необходимо указать матрицу гомографии, описывающую преобразование. Эта матрица может быть вычислена на основе физических свойств камеры или эмпирически получена путем анализа изображения узора сетки, сделанного камерой. Объект использует матрицу для вычисления преобразованных координат каждого пикселя. Преобразование не интерполируется между местоположениями пикселей. Вместо этого результат округляется до ближайшей координаты.

Объект работает на трапециевидной области входного изображения ниже точки исчезновения. Эти изображения показывают область ввода, выбранную для преобразования, и результирующий вид сверху вниз.

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

Поскольку объект реплицирует строки из области ввода для создания большего выходного кадра, он не может завершить преобразование одного кадра до прихода следующего кадра. Объект игнорирует любые новые входные кадры при преобразовании предыдущего кадра. Поэтому в зависимости от сохраненных строк и размера вывода объект может сбрасывать входные кадры. Эта синхронизация также позволяет объекту поддерживать интервалы гашения входного потока пикселей.

Для преобразования изображения с фронтальной камеры в вид сверху вниз:

  1. Создать visionhdl.BirdsEyeView и задайте его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

birdsEyeXfrm = visionhdl.BirdsEyeView(hM,MaxBufferSize,Name,Value) возвращает объект системы преобразования птичьего глаза с матрицей гомографии, равной hMи размер буфера, равный MaxBufferSize пикселы. При необходимости можно задать дополнительные свойства с помощью пар имя-значение. Заключите каждое имя свойства в отдельные кавычки.

Свойства

развернуть все

Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.

Если свойство настраивается, его значение можно изменить в любое время.

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Передаточная функция, производная от параметров камеры, заданная как матрица 3 на 3.

Матрица гомографии h получена из четырех собственных параметров настройки физической камеры: фокусное расстояние, шаг, высота и главная точка (из модели камеры с точечным отверстием). Значением по умолчанию является матрица для настройки камеры, используемой в примере определения полосы движения.

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

Число входных пикселов в буфере, указанное как целое число. Вычислить это значение из MaxSourceLinesBuffered* ActiveTalkedPerLine. Объект использует память такого размера для хранения входных пикселей. Если задано значение, которое не является степенью два, объект использует следующую наибольшую степень два .

Число строк для преобразования, указанное как целое число. Объект сохраняет и преобразует это количество строк в выходное изображение с видом на птицу, начиная с точки исчезновения, определяемой HomographyMatrix.

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

Например, использование значения по умолчанию HomographyMatrix при входном изображении размером 640 на 480 пикселей полноразмерное преобразование приводит к выходному изображению размером 900 на 640. Анализ x-координатного отображения ввода-вывода показывает, что около 50 строк входного изображения требуется для генерации верхних 700 строк выходного изображения вида с высоты птичьего полета. Это количество входных линий может быть сохранено с использованием встроенной памяти. Точка схода для настройки камеры по умолчанию находится вокруг линии 200, и линии выше этой точки не вносят вклад в результирующий вид с высоты птичьего полета. Поэтому объект может хранить только входные строки 200-250 для преобразования.

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

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

Использование

Синтаксис

Описание

[pixelOut,ctrlOut] = birdsEyeXfrm(pixelIn,ctrlIn) возвращает преобразование вида птичьего глаза входного потока. Размер кадра выходного потока соответствует размеру, заданному в BirdsEyeViewPixels и BirdsEyeViewLines свойства.

Этот объект использует потоковый пиксельный интерфейс со структурой для сигналов управления кадрами. Этот интерфейс позволяет объекту работать независимо от размера и формата изображения и подключаться к другим объектам Vision HDL Toolbox™. Объект принимает и возвращает значение скалярного пикселя и управляющие сигналы в виде структуры, содержащей пять сигналов. Сигналы управления указывают достоверность каждого пикселя и его местоположение в кадре. Чтобы преобразовать матрицу пикселей в поток пикселей и управляющие сигналы, используйте visionhdl.FrameToPixels объект. Полное описание интерфейса см. в разделе Потоковый пиксельный интерфейс.

Входные аргументы

развернуть все

Один пиксель изображения в потоке пикселей, заданный как скалярное значение, представляющее интенсивность.

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Типы данных: uint8 | uint16 | uint32 | int8 | int16 | int32 | fi | logical | double | single

Управляющие сигналы, сопровождающие входной поток пикселей, указанный как pixelcontrol структура, содержащая пять logical сигналы типа данных. Сигналы описывают достоверность пикселя и его местоположение в кадре. Дополнительные сведения см. в разделе Структура пиксельного управления.

Типы данных: struct

Выходные аргументы

развернуть все

Один пиксель изображения в потоке пикселей, возвращаемый как скалярное значение, представляющее интенсивность.

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Типы данных: uint8 | uint16 | uint32 | int8 | int16 | int32 | fi | logical | double | single

Управляющие сигналы, сопровождающие вывод потока пикселей, возвращаемого в виде pixelcontrol структура, содержащая пять logical сигналы типа данных. Сигналы описывают достоверность пикселя и его местоположение в кадре. Дополнительные сведения см. в разделе Структура пиксельного управления.

Типы данных: struct

Функции объекта

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

release(obj)

развернуть все

stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System

Алгоритмы

Преобразование из входной пиксельной координаты (x, y) в пиксельную координату птичьего глаза получают из матрицы гомографии h. Матрица гомографии основана на физических параметрах и поэтому является константой для конкретной установки камеры.

(x ^, y ^) = круглый (h11x + h12y + h13h31x + h32y + h33, h21x + h22y + h23h31x + h32y + h33)

Реализация преобразования птичьего глаза в аппаратном обеспечении напрямую не выполняет этот расчет. Вместо этого объект предварительно вычисляет таблицы поиска для горизонтальных и вертикальных аспектов преобразования.

Сначала объект сохраняет входные строки, начиная с предварительно вычисленной точки схода. Сохраненные пиксели образуют трапецию с короткими линиями вблизи точки исчезновения и более широкими линиями около камеры. Это хранилище использует MaxBufferSize ячейки памяти.

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

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

Таблицы подстановки используют 3 *MaxSourceLinesBuffered ячейки памяти.

См. также

Блоки

Объекты

Функции

  • (Панель инструментов компьютерного зрения) | (Панель инструментов обработки изображений)

Темы

Представлен в R2017b