Я пытался вычислить функции в 2 изображениях, а затем передать эти функции обратно CameraParams.R
без везения. Функции вычисляются и сопоставляются успешно, однако проблема заключается в их возврате в R & t
.Оценка R/T от гомографии
Я понимаю, что вы должны разложить Homography
, чтобы это было возможно, что я сделал, используя что-то вроде этого: https://github.com/syilma/homography-decomp, но действительно ли я делаю это правильно?
Прямо сейчас я просто с помощью:
Matching:
vector< vector<DMatch> > matches;
Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create(algorithmName);
matcher->knnMatch(descriptors_1, descriptors_2, matches, 50);
vector<DMatch> good_matches; // Storing good matches here
Я заметил, что good_matches
нигде не используется. Поэтому, я думаю, мой вопрос в том, как я могу пройти обратно good_matches
до cameras.R/t
?
Извлечение омографии:
Mat K;
cameras[img_idx].K().convertTo(K, CV_32F);
findHomography -> decomposeHomography(H, K, outputR,outputT,noarray()).
Затем, используя библиотеку выше, я пройти в значениях от R
& t
но ответ является то, что гомография не найден в 4-х возможных исходов.
Я на правильном пути здесь? Похоже, что разложениеГомография - это трехмерное решение, но findHomography - 2D?
Абсолютная Цель:
Уточнить CameraParam.R/t
в зависимости от особенностей, обнаруженных на изображениях.
Почему? Потому что я сейчас перехожу в .R
из матрицы вращения устройств, но вращение немного неточно. Узнайте больше об этом по моему предыдущему вопросу: Refining Camera parameters and calculating errors - OpenCV
Я хотел бы знать, если это лучше этот код (https://github.com/LaurentBerger/TestHomograhy) – LBerger
Я попробую! Спасибо @LBerger –
Быстрый вопрос, я читал документацию OpenCV в & out и нашел несколько интересных функций, которые могли бы помочь мне достичь моей цели. Что вы думаете о 'calibrateCamera' /' calibrationMatrixValues'/'solvePNP'? @LBerger –