参考

https://docs.opencv.org/3.2.0/d3/d14/tutorial_ximgproc_disparity_filtering.html

  1. // This file is part of OpenCV project.
  2. // It is subject to the license terms in the LICENSE file found in the top-level directory
  3. // of this distribution and at http://opencv.org/license.html.
  4. #include "test_precomp.hpp"
  5. #include "opencv2/ximgproc/disparity_filter.hpp"
  6. #include <string>
  7. //CV_TEST_MAIN("")
  8. using namespace cv;
  9. using namespace std;
  10. using namespace ximgproc;
  11.  
  12. int main()
  13. {
  14. string left_im = "C:\\Users\\Administrator\\Desktop\\green_tree\\left.bmp";
  15. string right_im = "C:\\Users\\Administrator\\Desktop\\green_tree\\right.bmp";
  16. Mat left = imread(left_im, IMREAD_COLOR);
  17. if (left.empty())
  18. {
  19. cout << "Cannot read image file: " << left_im;
  20. return -;
  21. }
  22. Mat right = imread(right_im, IMREAD_COLOR);
  23. if (right.empty())
  24. {
  25. cout << "Cannot read image file: " << right_im;
  26. return -;
  27. }
  28.  
  29. int max_disp = ;
  30. max_disp /= ;
  31. if (max_disp % != )
  32. max_disp += - (max_disp % );
  33. Mat left_for_matcher, right_for_matcher;
  34. resize(left, left_for_matcher, Size(), 1.0, 1.0);
  35. resize(right, right_for_matcher, Size(), 1.0, 1.0);
  36.  
  37. int wsize = ;
  38. Ptr<StereoBM> left_matcher = StereoBM::create(max_disp, wsize);
  39.  
  40. Ptr<DisparityWLSFilter> wls_filter;
  41. wls_filter = createDisparityWLSFilter(left_matcher);
  42.  
  43. Ptr<StereoMatcher> right_matcher = createRightMatcher(left_matcher);
  44. cvtColor(left_for_matcher, left_for_matcher, COLOR_BGR2GRAY);
  45. cvtColor(right_for_matcher, right_for_matcher, COLOR_BGR2GRAY);
  46. double matching_time = (double)getTickCount();
  47. Mat left_disp, right_disp, filtered_disp;
  48. left_matcher->compute(left_for_matcher, right_for_matcher, left_disp);
  49. right_matcher->compute(right_for_matcher, left_for_matcher, right_disp);
  50. matching_time = ((double)getTickCount() - matching_time) / getTickFrequency();
  51.  
  52. double lambda = 8000.0;
  53. double sigma = 0.5;
  54. wls_filter->setLambda(lambda);
  55. wls_filter->setSigmaColor(sigma);
  56. double filtering_time = (double)getTickCount();
  57. wls_filter->filter(left_disp, left, filtered_disp, right_disp);
  58. filtering_time = ((double)getTickCount() - filtering_time) / getTickFrequency();
  59.  
  60. Mat raw_disp_vis;
  61. double vis_mult = 10.0;
  62. getDisparityVis(left_disp, raw_disp_vis, vis_mult);
  63. namedWindow("raw disparity", WINDOW_AUTOSIZE);
  64. imshow("raw disparity", raw_disp_vis);
  65. Mat filtered_disp_vis;
  66. getDisparityVis(filtered_disp, filtered_disp_vis, vis_mult);
  67. namedWindow("filtered disparity", WINDOW_AUTOSIZE);
  68. imshow("filtered disparity", filtered_disp_vis);
  69. waitKey();
  70.  
  71. return ;
  72. }

opencv wlsfilter depth refinement demo的更多相关文章

  1. 转:基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴等)【模式识别中的翘楚】

    文章来自于:http://blog.renren.com/share/246648717/8171467499 基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴 ...

  2. 【AdaBoost算法】基于OpenCV实现人脸检测Demo

    一.关于检测算法 分类器训练: 通过正样本与负样本训练可得到分类器,opencv有编译好的训练Demo,按要求训练即可生成,这里我们直接使用其已经训练好的分类器检测: 检测过程: 检测过程很简单,可以 ...

  3. 高强度学习训练第二天总结:Opencv+Android+CameraView小demo

    前言:网上已经有很多人将Opencv集成进Android项目中了.因此我只给大家看Gradle文件和项目目录. 1.gradle 三个gradle script // Top-level build ...

  4. opencv.js小项目demo

    1.博客连接 https://blog.csdn.net/weixin_38361925/article/details/82528529 2.demo连接 https://github.com/mt ...

  5. OpenCV学习4-----K-Nearest Neighbors(KNN)demo

    最近用到KNN方法,学习一下OpenCV给出的demo. demo大意是随机生成两团二维空间中的点,然后在500*500的二维空间平面上,计算每一个点属于哪一个类,然后用红色和绿色显示出来每一个点 如 ...

  6. OpenCV中Camshitf算法学习(补充)

    结合OpenCV中Camshitf算法学习,做一些简单的补充,包括: 实现全自动跟随的一种方法 参考opencv中的相关demo,可以截取目标物体的图片,由此预先计算出其色彩投影图,用于实际的目标跟随 ...

  7. [OpenCV] IplImage and Functions

    In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra.  Ref: http://blog.c ...

  8. [OpenCV] Basic data types - Matrix

    http://docs.opencv.org/2.4.13/ Basis 矩形 "modules/core/src/drawing.cpp" CV_IMPL void cvRect ...

  9. Opencv step by step - 基本数据类型

    CvArr,CvMat,IplImage这三者是继承的关系. 打开opencv 3.0的源码: cvArr /* CvArr* is used to pass arbitrary  * array-l ...

随机推荐

  1. 从零开始搭建一个从Win7环境备份至CentOS7的SVN双机备份环境

    ★几个关键的事项★ 需要关闭防火墙filewalld跟selinux ,在root用户下操作: [root@localhost svnRepos]# systemctl stop firewalld ...

  2. 2018 完美搭建VS Code 的JAVA开发环境并解决print乱码问题

    出自微软的Visual Studio Code 并不是一个 IDE,它是个有理想,有前途的编辑器,通过相应语言的插件,可以将其包装成一个 轻量级的功能完善的IDE. 自从遇见了她,真的是对她一见钟情不 ...

  3. JS基本数据类型

    基本数据类型: Undefined,null,boolean,number,string symbol(ES6) 复杂数据类型: object undefined: 变量声明未初始化,自动为undef ...

  4. 移动游戏ui设计(二)--游戏世界的基本法则

    游戏世界的基本法则游戏体验的层次感很重要,制作一款趣味性强,宗旨明确的游戏并不简单. l  风格统一性:要先明白游戏的game genres,因为游戏类型与风格密切联系.常见游戏类型有:动作类.冒险类 ...

  5. 学习 IOC 设计模式前必读:依赖注入的三种实现

    一直以来就是越难的东西越值钱! 嘿嘿,这篇博文章转载自:http://www.cnblogs.com/liuhaorain/p/3747470.html 摘要 面向对象设计(OOD)有助于我们开发出高 ...

  6. oracle函数返回结果集

    一.用自定义类型实现 1.创建表对象类型. 在Oracle中想要返回表对象,必须自定义一个表类型,如下所示: create or replace type type_table is table of ...

  7. elasticsearch服务安装采坑

    笔者这里下载的elastic search,是5.3.0版本,下载地址:https://www.elastic.co/downloads/past-releases/elasticsearch-5-3 ...

  8. SpringBoot无废话入门01:最简SpringBoot应用

    虽然本篇讲的是一个最简的SpringBoot应用,但是要说明的是:学习SpringBoot是有门槛的,这个门槛就是, 1:首先得有框架的基础,比如SSM: 2:MAVEN基础. 在学好上面两者的基础上 ...

  9. opencv+python-图片文本倾斜校正

    # -*- coding: UTF-8 -*- import numpy as np import cv2 ## 图片旋转 def rotate_bound(image, angle): #获取宽高 ...

  10. SpringBoot(九):多模块下mapper分散后无法启动SpringBoot解决方法

    问题描述: SpringBoot项目之前是一个项目*-web,运行没问题,后来将项目拆分为多个项目,就出现启动失败问题. SpringBoot项目结构: 项目被分为多块:*-mapper(mybati ...