float32位,4字节

原本的stixel-world是用sgbm生成深度图,并且转成了float型

psmnet保存最终的disparity图是保存成uint16的,skimage.io.imsave(test_left_img[inx].split('/')[-1],(img*256).astype('uint16'))

最开始我采用的是直接保存成图片,cv2.save(save_dir,img),img本身是个一通道的,保存之后是个三通道的,然后在stixel-world读取图片的时候只读一个通道cv::imread(img,-1)就可以读出disparity

直接操作不能得出正确的值,因为图片本身是uchar型,也就是0到255,不能是其他的.这样精确度就只能到整数,原本的float被强制变成了int型

我想要保存原本的float型,opencv可以使用xml保存这些值,imwrite无法实现

因为PSMnet的代码是python的,也可以将这些值保存为.npy格式的文件,但stixel-world是c++的,读取是mat,这样就不好操作,有一些开源项目能进行这种转换,但太麻烦

最终我选择了将img直接保存成txt格式,stixel-world把这些txt读取到mat中

numpy保存成txt有个专门的函数是savetxt,我这样使用:np.savetxt(save_dir,img,fmt="%f",delimiter=",")

从txt可以看出值的差别不是特别大,所以保存成int就没区别了

之前跑代码会出现有时候没办法跑,有时候能跑,加了cout之后反而能跑

cout能够清理缓存,猜测可能是这个原因

在这段代码之前还用了infile1 open了一个文件,如果使用infile.close就能清理缓存

其实这个跟python的一样,只是with open自己使用了close.以后在使用infile读取的时候,使用完了之后还是要close清理一下,这样能避免很多错误

stixel-world和psmnet结合出现的问题的更多相关文章

  1. stixel提升思路总结

    1.用psmnet获得更好的disparity 2.用edgebox获得整个rgb图片的边缘,然后通过原本的stixel的上下边缘去寻找最优,用两个的边缘去重新得到一个新的边缘,但获得的轮廓不仅仅是外 ...

  2. stixel world论文总结

    1.The Stixel World - A Compact Medium Level Representation of the 3D-World:http://pdfs.semanticschol ...

  3. stixel上边缘

    上图是2^x-1的曲线,取值范围在(-1,正无穷) 上面两个公式组成了隶属函数(membership)表示隶属度,隶属度就是衡量这个点同下边缘点是否属于同一个物体.实际上M函数就是2^x-1,但M函数 ...

  4. stixel 理解

    在车辆所处平面建立极坐标占位网格(polar occupancy grid),将视差图所代表的三维世界(3D world) 正交投影到该平面中. occupancy:每个网格被赋予一个占位数,代表了该 ...

  5. 获得stixel的gt数据

    这是论文中的作者博客地址https://sites.google.com/site/danmlevi/ 这是作者现在的博客地址https://sites.google.com/view/danlevi ...

  6. doppia代码结构

    代码地址:https://bitbucket.org/rodrigob/doppia/src stereo_matching下的几个目录相当于这几篇论文中求stixel的几个步骤 cost_volum ...

  7. doppia代码支持

    stixels_t在stixel.hpp里,存储class stixel的vector

  8. Stixel_World(single)学习笔记

      1. 算法背景 Q: 如何有效处理数以百万的视差图数据(提供了每个像素的精确深度信息)? 以及如何在大量数据中找到所有相关的障碍物? 提出方法 “ stixel_world ”, It takes ...

  9. hourglassnet网络解析

    hourglassnet中文名称是沙漏网络,起初用于人体关键点检测,代码,https://github.com/bearpaw/pytorch-pose 后来被广泛的应用到其他领域,我知道的有双目深度 ...

随机推荐

  1. codevs3145 汉诺塔游戏

    3145 汉诺塔游戏  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 白银 Silver     题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知 ...

  2. Node.js 内置模块crypto加密模块(3) HMAC

    HMAC:哈希消息认证码 ( Hash-based Message Authentication Code ) HMAC是密钥相关的哈希算法 使用 HMAC 进行加密的Node实现的一种方法: &qu ...

  3. SequoiaDB培训视频

    很久之前录制的SequoiaDB培训视频,现在都放上百度云盘了,感兴趣的同学可以看看. 第一讲:图形界面-安装前准备 链接: https://pan.baidu.com/s/1d2B3qUYqtKrE ...

  4. 整理的各种模板 (随时弃坑emmmmm)

    线段树: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> ...

  5. 常用CMD指令

    快捷方式: dcomcnfg.exe   打开windows的组件服务. regedit   打开windows的注册表的界面,进行管理. services.msc  打开service面板 calc ...

  6. Mybatis Plugin(拦截器)的开发

    1.Plugin   MyBatis 允许使用插件来拦截的方法调用包括: • Executor (update, query, flushStatements, commit, rollback, g ...

  7. Codeforces Round #563 (Div. 2) C. Ehab and a Special Coloring Problem

    链接:https://codeforces.com/contest/1174/problem/C 题意: You're given an integer nn. For every integer i ...

  8. Net Core2.0下使用Dapper

    Net Core2.0下使用Dapper 今天成功把.Net Framework下使用Dapper进行封装的ORM成功迁移到.Net Core 2.0上,在迁移的过程中也遇到一些很有意思的问题,值得和 ...

  9. C# 实现Tree,包含parentId和children

    1.先定义一个类型 public class Node { [JsonProperty(PropertyName = "id", NullValueHandling = NullV ...

  10. Linux大棚版vimrc配置

    Linux大棚版vimrc配置—V2.0版本,如下: [shell] $cat .vimrc “== “Author :roc “Website:roclinux.cn “Version:2.0 “= ...