OpenCV 3.1 StereoBM 获取正确视差Dispariy
OpenCV更新到3.0版本后,Stereo模块变化的挺多的,首先去掉了StereoBMState和StereoSGBMState这两个专门控制BM和SGBM算法参数的类,而且StereoBM不能直接声明实例,需要放到智能指针里cv::Ptr<cv::StereoBM>声明才行,而且不能直接通过访问state来访问参数,只能通过setter和getter方法来设置和获取参数,参考下面这段实例代码:
cv::Ptr<cv::StereoBM> bm = cv::StereoBM::create(,); // setter
bm->setPreFilterType(CV_STEREO_BM_NORMALIZED_RESPONSE);
bm->setPreFilterSize();
bm->setPreFilterCap();
bm->setBlockSize();
bm->setMinDisparity(-);
bm->setNumDisparities();
bm->setTextureThreshold();
bm->setUniquenessRatio();
bm->setSpeckleWindowSize();
bm->setSpeckleRange();
bm->setROI1(roi_left);
bm->setROI2(roi_right); // getter
int pfs = bm->getPreFilterSize();
int pfc = bm->getPreFilterCap();
int bs = bm->getBlockSize();
int md = bm->getMinDisparity();
int nd = bm->getNumDisparities();
int tt = bm->getTextureThreshold();
int ur = bm->getUniquenessRatio();
int sw = bm->getSpeckleWindowSize();
int sr = bm->getSpeckleRange(); // Compute disparity
bm->compute(left, right, disp);
注意新版本下的BM和SGBM方法计算出的视差都是CV_16S格式的,使用32位float格式可以得到真实的视差值,所以我们需要除以16,需要加上下面一行代码:
// Convert
disp.convertTo(disp, CV_32F, 1.0/);
还有就是我怎么在3.1版本下找不到GC算法了,难道是嫌速度慢删去了?新加了StereoBeliefPropagation算法,但是需要用Cuda运行的,有机会一定要试试看效果如何~
OpenCV 3.1 StereoBM 获取正确视差Dispariy的更多相关文章
- IBM Domino 9 出现 Domino Designer 您正在试图升级多用户安装。请获取正确的安装包以完成升级。 解决方案
如果网上搜索的其他方法解决不了,那么我的这个方法可以试一下. 出现的场景: 先装好了Notes,后准备装Designer. 在装Designer解压包之后,出现下面的错误,不能安装: 您正在试图升级多 ...
- 用非GUI模式执行测试,jp@gc - PerfMon Metrics Collector会出现无法获取正确数据的解决办法
用非GUI模式执行测试,jp@gc - PerfMon Metrics Collector会出现无法获取正确数据(实际显示的是Response Times Over Time),解决办法:在GUI模式 ...
- OpenCV stereo matching 代码 matlab实现视差显示
转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/44151213, 来自:shiter编写程序的艺术 基础知识 计算机视觉是一门研究 ...
- 利用opencv从USB摄像头获取图片
由于opencv自带的VideoCapture函数直接从usb摄像头获取视频数据,所以用这个来作为实时的图像来源用于实体检测识别是很方便的. 1. 安装opencv 安装的步骤可以按照之前这个文章操作 ...
- 使用Python和OpenCV通过网址URL获取图片
在OpenCV中通过图片的URL地址获取图片: # -*- coding: utf-8 -*- import numpy as np import urllib import cv2 # URL到图片 ...
- opencv根据摄像头名称获取索引值
OpenCV的VideoCapture是一个视频读取与解码的API接口,支持各种视频格式.网络视频流.摄像头读取. 针对一般摄像头的读取,opencv为了实现跨平台读取摄像头时是使用的摄像头索引, V ...
- Eureka在有虚拟网卡的情况下获取正确的IP
发现问题 最近项目在Eureka注册时,发现一个问题:注册的IP地址不是 192.168.0.XXX 的网络IP,而是另外一个网段的地址,如图 通过 ipconfig 命令查看本机的IP地址发现,该I ...
- [opencv]approxDP多边形逼近获取四边形轮廓信息
#include "opencv2/opencv.hpp" #include <iostream> #include <math.h> #include & ...
- Qt之QHeaderView自定义排序(获取正确的QModelIndex)
简述 前几节中分享过关于自定义排序的功能,貌似我们之前的内容已经可以很好地解决排序问题了,但是,会由此引发一些很难发现的问题...比如:获取QModelIndex索引错误. 下面,我们先来实现一个整行 ...
随机推荐
- TI Zigbee Light Link 参考设计
TI Zigbee Light Link 参考设计 原文出处: http://processors.wiki.ti.com/index.php/Category:ZigBee_Light_Link ...
- vector 之删除元素
删除指定位置的元素 删除vector中第5个位置的元素 vector<int> vec; //执行vector初始化操作 vector<; //获取第五个元素的iterator ve ...
- POJ 1163:The Triangle
Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 shows a number triangle. Write a progr ...
- web2py学习之getting start环境搭建
一般如果做一个工程,可能需要ide,需要好的工具,web2py自包含了一个基于web的开发工具,但是并不算很好的编辑器 第二个可以使用的是pycharm,利用pycharm可以创建web2py的web ...
- AndroidStudio中创建Assets文件
- 【转】最近搞Hadoop集群迁移踩的坑杂记
http://ju.outofmemory.cn/entry/237491 Overview 最近一段时间都在搞集群迁移.最早公司的hadoop数据集群实在阿里云上的,机器不多,大概4台的样子,据说每 ...
- JVM参数调优
JVM参数调优 JVM参数调优是一个很头痛的问题,可能和应用有关系,下面是本人一些调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,d ...
- java 线程演示
package unit8; public class Mainthread { public static void main(String[] args) { Thread t = new Thr ...
- 记一次小团队Git实践(上)
公司规模不大,成立之初,选择了svn作为版本控制系统.这对于用惯了git的我来说,将就了一段时间后,极为不爽,切换到git-svn勉强能用.随后,因为产品需要发布不同的版本,而git-svn对远程分支 ...
- DHCP欺骗(DHCP Sproofing)
DHCP欺骗(DHCP Sproofing) DHCP Sproofing同样是一种中间人攻击方式.DHCP是提供IP地址分配的服务.当局域网中的计算机设置为自动获取IP,就会在启动后发送广播包请 ...