exponenta event banner

viewSet

(Подлежит удалению) Объект для управления данными для структуры от движения и визуальной одометрии

    viewSet объект будет удален в следующем выпуске. Используйте imageviewset вместо этого объект. Дополнительные сведения см. в разделе Вопросы совместимости.

    Описание

    A viewSet объект хранит представления и связи между видами. Вид включает характерные точки и абсолютную позу камеры. Соединение между двумя видами включает в себя соответствия точек и относительную позу камеры между ними. После заполнения viewSet объект можно использовать для поиска дорожек точек на нескольких видах и извлечения поз камеры, которые будут использоваться triangulateMultiview и bundleAdjustment функции.

    Создание

    Синтаксис

    Описание

    пример

    vSet = viewSet создает пустой viewSet объект. Можно добавить виды и соединения с помощью addView и addConnection функции объекта.

    Свойства

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

    Это свойство доступно только для чтения.

    Количество представлений, сохраненных как целое число.

    Это свойство доступно только для чтения.

    Просмотр атрибутов, хранящихся в виде таблицы из четырех столбцов. Таблица содержит столбцы для ViewID, Points, Orientation, и Location. Используйте poses способ получения идентификаторов, ориентации и расположения точек.

    Это свойство доступно только для чтения.

    Парные соединения между представлениями, хранящиеся в виде таблицы из пяти столбцов. Столбцы: ViewID1, ViewID2, Matches, RelativeOrientation, и RelativeLocation. Количество записей в таблице представляет количество подключений. Каждый индекс в Matches столбец представляет соединение между двумя представлениями, указанными идентификаторами представлений.

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

    addConnection(Подлежит удалению) Добавление соединения между двумя видами
    addView(Подлежит удалению) Добавить новое представление для просмотра объекта набора
    deleteConnection(Подлежит удалению) Удаление соединения между двумя видами из объекта набора представлений
    deleteView(Подлежит удалению) Удаление существующего вида из объекта набора видов
    findTracks(Подлежит удалению) Поиск совпадающих точек в нескольких представлениях
    hasConnection(Подлежит удалению) Проверьте наличие соединения между двумя представлениями
    hasView(Подлежит удалению) Проверьте, существует ли вид
    poses(Подлежит удалению) Возвращает позы камеры, связанные с видами
    updateConnection(Подлежит удалению) Изменение соединения между двумя видами в объекте набора видов
    updateView(Подлежит удалению) Изменение существующего вида в объекте набора видов

    Примеры

    свернуть все

    Загрузить изображения.

    imageDir = fullfile(toolboxdir('vision'),'visiondata','structureFromMotion');
    images = imageSet(imageDir);

    Вычислить элементы для первого изображения.

    I = rgb2gray(read(images, 1));
    pointsPrev = detectSURFFeatures(I);
    [featuresPrev,pointsPrev] = extractFeatures(I,pointsPrev);

    Создать viewSet объект.

    vSet = viewSet;
    vSet = addView(vSet,1,'Points',pointsPrev);

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

    for i = 2:images.Count
     I = rgb2gray(read(images,i));
     points = detectSURFFeatures(I);
     [features, points] = extractFeatures(I,points);
     vSet = addView(vSet,i,'Points',points);
     pairsIdx = matchFeatures(featuresPrev,features);
     vSet = addConnection(vSet,i-1,i,'Matches',pairsIdx);
     featuresPrev = features;
    end

    Найти точечные дорожки.

    tracks = findTracks(vSet);

    Вопросы совместимости

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

    Не рекомендуется начинать с R2020a

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