Преобразуйте изображение фронтальной камеры в вид сверху вниз
The visionhdl.BirdsEyeView
Система object™ деформирует изображение фронтальной камеры в вид сверху вниз. Он использует аппаратно эффективную архитектуру, поддерживающую генерацию HDL-кода.
Вы должны предоставить матрицу гомографии, которая описывает преобразование. Эта матрица может быть вычислена из свойств физической камеры или эмпирически выведена путем анализа изображения шаблона сетки, сделанного камерой. Объект использует матрицу, чтобы вычислить преобразованные координаты каждого пикселя. Преобразование не интерполируется между пикселями. Вместо этого результат округляется до ближайшей координаты.
Объект действует на трапециевидной области входного изображения ниже точки исчезновения. Эти изображения показывают входную область, выбранную для преобразования, и полученный вид сверху вниз.
Можно задать количество линий в преобразованной области и размер выхода системы координат. Если заданная матрица гомографии не может сопоставить требуемое количество линий с требуемым размером выхода, объект возвращает предупреждение.
Поскольку объект реплицируется линиями из области входа, чтобы создать большой выход системы координат, он не может завершить преобразование одной системы координат до прибытия следующей системы координат. Объект игнорирует любые новые входные кадры, пока он все еще преобразует предыдущий кадр. Поэтому, в зависимости от сохраненных линий и размера выхода, объект может сбросить входные кадры. Эта синхронизация также позволяет объекту поддерживать интервалы гашения входного потока пикселей.
Чтобы преобразовать изображение фронтальной камеры в вид сверху вниз:
Создайте visionhdl.BirdsEyeView
Объекту и установите его свойства.
Вызывайте объект с аргументами, как будто это функция.
Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».
birdsEyeXfrm = visionhdl.BirdsEyeView(
возвращает Системный объект преобразования птичьего глаза с матрицей гомографии, установленной на hM
,MaxBufferSize
,Name
,Value
)hM
и buffer size MaxBufferSize
пиксели. Вы можете опционально задать дополнительные свойства, используя пары "имя-значение". Заключайте каждое имя свойства в одинарные кавычки.
[
возвращает преобразование вида птичьего полета входа потока. Формат кадра потока выхода соответствует размеру, который вы сконфигурировали в pixelOut
,ctrlOut
] = birdsEyeXfrm(pixelIn
,ctrlIn
)BirdsEyeViewPixels
и BirdsEyeViewLines
свойства.
Этот объект использует интерфейс потокового пикселя со структурой для сигналов управления системой координат. Этот интерфейс позволяет объекту работать независимо от размера и формата изображения и соединяться с другими объектами Vision HDL Toolbox™. Объект принимает и возвращает скалярное значение пикселя и сигналы управления как структуру, содержащую пять сигналов. Сигналы управления указывают валидность каждого пикселя и его местоположение в системе координат. Чтобы преобразовать пиксельную матрицу в поток пикселей и сигналы управления, используйте visionhdl.FrameToPixels
объект. Полное описание интерфейса см. в разделе Потоковый пиксельный интерфейс.
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj
, используйте следующий синтаксис:
release(obj)
Преобразование из входной пиксельной координаты (x,y) в пиксельную координату птичьего глаза получают из гомографической матрицы h. Матрица гомографии основана на физических параметрах и поэтому является константой для конкретной установки камеры.
Реализация преобразования птичьего глаза в оборудовании не выполняет непосредственно этот расчет. Вместо этого объект предварительно компилирует интерполяционные таблицы для горизонтального и вертикального аспектов преобразования.
Во-первых, объект хранит входные линии, начиная с предварительно вычисленной точки исчезновения. Сохраненные пиксели образуют трапецию с короткими линиями около точки исчезновения и более широкими линиями около камеры. Это хранилище использует MaxBufferSize
местоположения памяти.
Горизонтальная интерполяционная таблица содержит параметры интерполяции, которые описывают растяжение каждой линии трапеций входной области до требуемой ширины выходной системы координат. Линии, которые падают ближе к точке исчезновения, растягиваются больше, чем линии ближе к камере.
Вертикальная интерполяционная таблица содержит сопоставление y-coordinate и количество повторений каждой линии для заполнения требуемой высоты выходной системы координат. Рядом с точкой исчезновения одна входная линия сопоставляется со многими выходными линиями, в то время как каждая линия ближе к камере преобразуется в уменьшающееся количество выходных линий.
В интерполяционных таблицах используются 3 * MaxSourceLinesBuffered
местоположения памяти.
estimateGeometricTransform
(Computer Vision Toolbox) | imwarp
(Набор Image Processing Toolbox)