viewSet

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

    The 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