Я использую OpenCV3.1 с python 2.7 для калибровки и исправления настроек стереокамеры.
Когда я пытаюсь применить матрицы исправления и искажения изображения, используя cv2.remap (), я получаю следующую ошибку:
Traceback (most recent call last):
File "C:\University\Year3\Third Year Project - Gaze Correction\EclipseWorkspace\PythonTest\videoCap.py", line 36, in <module>
stereoCalib.rectify(frames)
File "C:\University\Year3\Third Year Project - Gaze Correction\EclipseWorkspace\PythonTest\Calibrator.py", line 137, in rectify
borderMode=cv2.BORDER_CONSTANT )
TypeError: an integer is required
Мой код такой:
new_frames = []
new_img=[]
for i, side in enumerate(("left", "right")):
new_img = cv2.remap(frames[i],
new_img,
self.undistortion_map[side],
self.rectification_map[side],
cv2.INTER_CUBIC,
borderMode=cv2.BORDER_CONSTANT )
new_frames.append(new_img)
Я попытался установить INTER_CUBIC и BORDER_CONSTANT как int (1) и int (0) взаимозаменяемо. Я также добавил скаляр np.zeros (3) в конце, но ошибка осталась прежней во всех моих попытках.
Использование, как описано в документация неправильно.
Так должно быть :
new_img = cv2.remap(src,
map1,
map2,
interpolation=cv2.INTER_<VALUE>)
Режим границы полностью необязателен, как и borderValue.
Других решений пока нет …