0
当我初始化StereoBM对象时,出现错误“无法定义抽象类的对象”。我检查了calib3d.hpp,发现StereoBM是一个抽象类。请给我提供的解决方案如何定义所有这些功能StereoBM类StereoBm Opencv函数给出错误“无法定义抽象类的对象”
cv::Mat leftimg =cv::imread("leftimage.jpg");
cv::Mat rightimg = cv::imread("rightimage.jpg");
cv::Size imagesize = leftimg.size();
cv::Mat g1,g2,disp,disp8;
cv::cvtColor(leftimg,g1,cv::COLOR_BGR2GRAY);
cv::cvtColor(rightimg,g2,cv::COLOR_BGR2GRAY);
cv::StereoBM *sbm;
sbm->setDisp12MaxDiff(1);
sbm->setSpeckleRange(8);
sbm->setSpeckleWindowSize(0);
sbm->setUniquenessRatio(0);
sbm->setTextureThreshold(507);
sbm->setMinDisparity(-39);
sbm->setPreFilterCap(61);
sbm->setPreFilterSize(5);
sbm->compute(g1,g2,disp);
normalize(disp, disp8, 0, 255, CV_MINMAX, CV_8U);
cv::imshow("left", leftimg);
cv::imshow("right", rightimg);
cv::imshow("disp", disp8);
OpenCV的版本? (也是像这样的指针:'sbm.state-> preFilterSize = 5;'看起来可疑错误 – berak 2014-09-27 11:36:59
opencv版本3.0和我已编辑包含正确的代码,我最初写错码。任何帮助将不胜感激。 – 2014-09-28 03:35:53
Ptr sbm = createStereoBM(16,2); //否则在你使用它之前它会死掉。(你*需要*智能指针在这里) –
berak
2014-09-28 06:09:22