OpenCV在版本3.0之后发生了较大变化,比如sift特征以及立体匹配等等,基于OpenCV2.3.1版本使用StereoBM计算视差(戳这里)在3.0版本中StereoBM的变化:,
(1)StereoBM定义为了纯虚类,不能直接实例化了,只能使用智能指针的形式实例化
(2)视差值的类型为CV_16S,所以最终要得到真实的视差值还需要转到 CV_32F;
(3)StereoBM的参数需要使用setter和getter方法来设置、获取。
1.环境
opencv库:3.0.0
系统:win10 64位
2.StereoBM的使用
void calDisparity(const IplImage * left, const IplImage * right, Mat & disparity)
{
Mat _left = cvarrToMat(left); //IplImage *转Mat
Mat _right = cvarrToMat(right);
Rect leftROI, rightROI;
cv::Ptr<cv