Преобразование перспективы с высоты птичьего полета из калибровки камеры opencv pythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Преобразование перспективы с высоты птичьего полета из калибровки камеры opencv python

Сообщение Гость »


Я пытаюсь получить преобразование перспективы с высоты птичьего полета на основе внутренних и внешних матриц камеры и коэффициентов искажения.

Я попробовал использовать ответ из этого вопроса.

Использованное изображение — это образец изображения left02.jpg из официального репозитория opencv на github


Изображение


Я откалибровал камеру и нашел внутреннюю, внешнюю матрицы и коэффициенты искажения.

Я не искажал изображение и нашел позу. Чтобы проверить правильность параметров.


Изображение


Уравнения, которые я использовал для нахождения матрицы преобразования перспективы (см. ссылку выше):

Hr = K * R.inv() * K.inv() где R — матрица вращения (из cv2.Rodrigues()), а K получена из cv2.getoptimalnewcameramatrix() [ 1 0 | ] Хт знак равно [ 0 1 | -K*C/Cz ] [ 0 0 | ] Где C=-R.inv()*T Где T — вектор трансляции из cv2.solvePnP() а Cz — 3-я компонента вектора C

Необходимое преобразование: H = Ht * Hr

Код, который я использовал для построения приведенного выше уравнения:

K = newcameramtx # из cv2.getoptimalnewcameramatrix() ret,rvec,tvec = cv2.solvePnP(world_points,corners2,K,dist) R,_ = cv2.Родригес(rvec) _,R_inv = cv2.invert(R) _,K_inv = cv2.invert(K) Hr = np.matmul(K,np.matmul(R_inv,K_inv)) C = np.matmul(-R_inv,tvec) Сз = С[2] temp_vector = np.matmul(-K,C/Cz) Ht = np.identity(3) для я, значение в перечислении (temp_vector): Ht[2] = значение гомография = np.matmul(Ht,Hr) warped_img =cv2.warpPerspective(img,homography,(img.shape[1],img.shape[0])) # где img — это неискаженное изображение выше с визуализированной позой Полученное искаженное изображение неверно.
Изображение


Если я удалю перевод из гомографии, используя приведенный ниже код

homography = Hr.copy() warped_img =cv2.warpPerspective(img,homography,(img.shape[1],img.shape[0])) Я получаю следующее изображение
Изображение


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

Поскольку трансляционная матрица (Ht) является расширенной матрицей, я не уверен, правильна ли моя конструкция приведенной выше матрицы.

Я специально хочу выяснить преобразование перспективы с высоты птичьего полета на основе калибровки камеры.

Итак, как мне исправить приведенные выше уравнения, чтобы получить идеальное изображение шахматной доски с высоты птичьего полета?

Может ли кто-нибудь объяснить, как получаются приведенные выше уравнения для Ht и Hr? Я не особо знаком с линейной алгеброй, поэтому эти уравнения для меня не очень очевидны.

ОБНОВЛЕНИЕ:

homography = np.matmul(Ht,Hr) warped_img =cv2.warpPerspective(img,homography,(img.shape[1],img.shape[0]),flags=cv2.WARP_INVERSE_MAP) Флаг cv2.WARP_INVERSE_MAP дал мне другой результат
Изображение


Все еще не тот результат, который мне нужен!
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как получить вид с высоты птичьего полета от KITTI с помощью Projection Matrix?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Матричный светодиодный симулятор вида с высоты птичьего полета
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Ошибка выполнения калибровки корпуса белого калибровки с использованием Quantlib в Python
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Python OpenCV повышает точность калибровки камеры
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • OpenCV повышает точность калибровки камеры
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»