我正在使用OpenCV3.1和python 2.7来校准和纠正立体摄像机设置。
当我尝试使用cv2.remap()将校正和非失真矩阵应用于图像时,我收到以下错误:
&#xA;&#xA; Traceback(最近一次呼叫最后一次):&#xA;文件“C:\ University \ Year3 \ Third Year Project - Gaze Correction \ EclipseWorkspace \ PythonTest \ videoCap.py”,第36行,在&lt; module&gt;&#xA; stereoCalib.rectify(frames)&#xA; File“C :\ University \ Year3 \ Third Year Project - Gaze Correction \ EclipseWorkspace \ PythonTest \ Calibrator.py“,第137行,正在纠正&#xA; borderMode = cv2.BORDER_CONSTANT)&#xA; TypeError:需要一个整数&#xA; < / code>
&#xA;&#xA; 我的代码是:
&#xA;&#xA; new_frames = []&#xA; new_img = []&#xA;对于i,枚举((“左”,“右”)):&#xA; new_img = cv2.remap(frames [i],&#xA; new_img,&#xA; self.undistortion_map [side],&#xA; self.rectification_map [side],&#xA; cv2.INTER_CUBIC,&#xA ; borderMode = cv2.BORDER_CONSTANT)&#xA; new_frames.append(new_img)&#xA;
&#xA;&#xA; 我尝试将INTER_CUBIC和BORDER_CONSTANT设置为int(1)和int(0)可互换。我最后还添加了np.zeros(3)标量,但在我的所有尝试中错误保持不变。
&#xA;答案 0 :(得分:0)
documentation中描述的用法是错误的。 它应该是:
new_img = cv2.remap(src,
map1,
map2,
interpolation=cv2.INTER_<VALUE>)
边框模式完全是可选的,borderValue也是如此。