kitti中stereo的disparity的gt数据的读取和使用

首先,kitti中disparity的gt的值是uint16的

https://blog.csdn.net/chenxicx1992/article/details/44784559

这个博客是讲解如何读取存储的是uint16型数据的图片

 

我也做过实验:

python

import cv2 as cv

img = cv.imread('/home/sensetime/000000_10.png',-1)
print img.dtype

c++

cv::Mat img = cv::imread(img_dir,0);
cout << "type: " << img.type() << endl;

如果用0读出来,读出的uint8型的,只有用-1才能读出uint16的类型

 

 

这个用img.at读取出来直接cout就是数值,不会像uchar那样读出来是字符,其实是因为ushort本身就是数值,uchar本身是可以和字符转换,cout任何uchar的都是字符.所以不用用int来转换

顺便说一下,如果用uint来读,会是一个很大的值,因为uint本身是一个32位的,相当于对原来的uint8进行了uint转换.如果用uint8,编译就会报错

 

 

 

这是kitti双目disparity的说明文档,kitti中disparity存储的gt图像是以uint16存储的,真实的disparity需要将其转换为float然后除以256.0

kitti中stereo的disparity的gt数据的读取和使用_第1张图片

并且他说等于0的点是无效的点

你可能感兴趣的:(kitti中stereo的disparity的gt数据的读取和使用)