【图像处理】基于opencv3.0使用StereoBM计算视差
2017-04-20 09:18
656 查看
OpenCV在版本3.0之后发生了较大变化,比如sift特征以及立体匹配等等,基于OpenCV2.3.1版本使用StereoBM计算视差(戳这里)在3.0版本中StereoBM的变化:,
(1)StereoBM定义为了纯虚类,不能直接实例化了,只能使用智能指针的形式实例化
(2)视差值的类型为CV_16S,所以最终要得到真实的视差值还需要转到 CV_32F;
(3)StereoBM的参数需要使用setter和getter方法来设置、获取。
系统:win10 64位
(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::StereoBM> bm = cv::StereoBM::create(16, 9); bm->setPreFilterType(CV_STEREO_BM_XSOBEL); //CV_STEREO_BM_NORMALIZED_RESPONSE或者CV_STEREO_BM_XSOBEL bm->setPreFilterSize(9); bm->setPreFilterCap(31); bm->setBlockSize(15); bm->setMinDisparity(0); bm->setNumDisparities(64); bm->setTextureThreshold(10); bm->setUniquenessRatio(5); bm->setSpeckleWindowSize(100); bm->setSpeckleRange(32); bm->setROI1(leftROI); bm->setROI2(rightROI); copyMakeBorder(_left, _left, 0, 0, 80, 0, IPL_BORDER_REPLICATE); //防止黑边 copyMakeBorder(_right, _right, 0, 0, 80, 0, IPL_BORDER_REPLICATE); bm->compute(_left, _right, disparity); disparity = disparity.colRange(80, _left.cols); disparity.convertTo(disparity, CV_32F, 1.0 / 16); }
相关文章推荐
- javacpp-opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(增加实时帧率计算方法)
- (未实用 需多个函数配套使用)opencv3.0 函数学习 10——morphologyEx 形态学图像处理:开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 基于qml创建最简单的图像处理程序(3)-使用opencv&qml进行图像处理
- 基于OpenCV3.0图像处理中常见的五个滤波函数
- javacpp-opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(增加实时帧率计算方法)
- 基于opencv和c++的图像处理:直方图匹配
- 基于Opencv图像处理的时时头像採集试验
- 使用OpenCV开发iOS图像处理应用(To be continued..)
- OpenGL使用OpenCV处理图像进行纹理映射的使用范例
- 使用OpenCV读、操作、写图像并与bash合作对某个目录下所有图像进行类似处理
- 基于opencv和c++的图像处理:直方图匹配
- Arm下使用Qt和Opencv进行图像处理的入门例程和遇到的问题
- opencv和magick两个图像处理库的使用心得
- 基于OpenCV的CT图像处理
- VS2012中MFC使用Picture Control显示OpenCV处理的图像
- 对比使用C# unsafe代码和OpenCV进行图像处理的效率(上)
- 基于Opencv计算图像的均值和方差
- Opencv教程基础篇(一)--MFC使用Opencv处理图像
- 图像处理之基础---基于opencv的灰度图像微分
- 基于OPENCV的视频图像处理算法和应用