OpenCV создает неискаженные изображения с разных точек зрения - PullRequest
0 голосов
/ 03 февраля 2019

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

Я использовал opencv fisheye.calibrate в python, используя изображения шахматной доски, сделанные под разными углами, и это корректно не искажает «рыбий глаз»образ, дающий мне достойный результат.Однако полученное изображение имеет значительно худшее поле зрения, чем изображение «рыбий глаз», из-за того, как оно не искажает изображение.

Изображение «рыбий глаз» :

enter image description here

Неискаженное изображение Отсутствует поле зрения :

enter image description here

Текущий код :

DIM=(960, 540)
K=np.array([[263.1021173128426, 0.0, 477.98780306608234], [0.0, 261.30612719984185, 300.714230825097], [0.0, 0.0, 1.0]])
D=np.array([[-0.0007727739728155351], [-0.10019345132548932], [0.10790597488851726], [-0.040655761660861996]])
def undistort(img):
    h,w = img.shape[:2]
    map1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3), K, DIM, cv2.CV_16SC2)
    return cv2.remap(img, map1, map2, interpolation=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT)

Насколько я понимаю, нет никакого способа увеличить поле обзора выходного сигнала без искажения без растягивания выходного сигнала в нежелательную форму (например, на этом изображении ).Тем не менее, я видел людей, способных создавать несколько неискаженных изображений с разных точек зрения.Например, учитывая исходное изображение типа «рыбий глаз» выше, я хочу иметь возможность создавать изображения с разных точек зрения, таких как , и , , которые затем можно соединить для более широкого поля зрения.,Есть ли способ отрегулировать параметры калибровки функции разворота opencv для достижения этой цели?

Я предполагаю, что это возможно, поскольку я видел это в других контекстах, таких как здесь (используя java и boofCV)) .

Буду также признателен за любые советы по альтернативным способам достижения более широкого поля зрения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...