OpenCV 3.1重映射函数类型值错误

时间:2016-02-12 16:21:11

标签: python c++ opencv computer-vision stereoscopy

我正在使用OpenCV3.1和python 2.7来校准和纠正立体摄像机设置。
当我尝试使用cv2.remap()将校正和非失真矩阵应用于图像时,我收到以下错误:




  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;

1 个答案:

答案 0 :(得分:0)

documentation中描述的用法是错误的。 它应该是:

new_img = cv2.remap(src,
                    map1,
                    map2,
                    interpolation=cv2.INTER_<VALUE>)

边框模式完全是可选的,borderValue也是如此。