Неискажение без калибровочных изображений - PullRequest
0 голосов
/ 11 июля 2020

В настоящее время я пытаюсь «неискажать» изображения рыбьего глаза с помощью OpenCV на C ++. Я знаю точную модель объектива и камеры, поэтому решил, что смогу использовать эту информацию для расчета некоторых параметров и, в конечном итоге, преобразования изображений «рыбий глаз» в прямолинейные изображения. Однако все обучающие программы, которые я нашел в Интернете, поощряют использование автоматической калибровки с шахматными досками. Есть ли способ откалибровать камеру «рыбий глаз», просто используя параметры камеры + объектива и немного математики? Или мне нужно использовать метод калибровки шахматной доски?

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

Большое спасибо!

1 Ответ

1 голос
/ 11 июля 2020

Чтобы неискажать изображение, вам необходимо знать внутренние c параметры камеры, которые описывают искажение. Вы не можете вычислить их из значений в таблице данных, потому что они зависят от того, как изготовлен объектив, а два объектива одного производителя и модели могут иметь разные коэффициенты искажения, особенно если они дешевые.

Некоторая растровая графика В редактор встроена база данных линз, из которой вы можете запрашивать коэффициенты искажения. Но нету magi c, они построили его, измерив искажение линз и в конечном итоге интерполируя их после.

Но вы все равно можете использовать метод empiri c, чтобы исправить хотя бы эффект ствола. Для этого есть множество шейдеров, и вы всегда можете сделать свои вычисления, чтобы построить карту искажения.

...