visionhdl.BirdsEyeView

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

Описание

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

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

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

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

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

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

  1. Создайте visionhdl.BirdsEyeView Объекту и установите его свойства.

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

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

Создание

Описание

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

Свойства

расширить все

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

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

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

Эта матрица может быть вычислена из свойств физической камеры или эмпирически выведена путем анализа изображения сетчатого тестового шаблона, взятого камерой. Посмотрите estimateGeometricTransform (Computer Vision Toolbox) или приложение Single Camera Calibrator (Computer Vision Toolbox).

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

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

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

Для примера используйте HomographyMatrix по умолчанию с входом изображением 640 на 480 пикселей полноразмерное преобразование результатов в выходном изображении 900 на 640. Анализ отображения «вход-выход- x-координат» показывает, что для генерации верхних 700 линий выходного изображения «птичий глаз» требуется около 50 линии входного изображения. Это количество входных линий может быть сохранено с помощью встроенной памяти. Точка исчезновения для настройки камеры по умолчанию находится вокруг линии 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 сигналы типа данных. Сигналы описывают валидность пикселя и его местоположение в системе координат. Для получения дополнительной информации смотрите Pixel Control Structure.

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

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

расширить все

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

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

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

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

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

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

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

release(obj)

расширить все

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

Алгоритмы

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

(x^,y^)=round(h11x+h12y+h13h31x+h32y+h33,h21x+h22y+h23h31x+h32y+h33)

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

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

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

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

В интерполяционных таблицах используются 3 * MaxSourceLinesBuffered местоположения памяти.

См. также

Блоки

Объекты

Функции

Темы

Введенный в R2017b