标签:col print oat cout read isp 需要 数值 end
首先,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<ushort>读取出来直接cout就是数值,不会像uchar那样读出来是字符,其实是因为ushort本身就是数值,uchar本身是可以和字符转换,cout任何uchar的都是字符.所以不用用int来转换
顺便说一下,如果用uint来读,会是一个很大的值,因为uint本身是一个32位的,相当于对原来的uint8进行了uint转换.如果用uint8,编译就会报错
这是kitti双目disparity的说明文档,kitti中disparity存储的gt图像是以uint16存储的,真实的disparity需要将其转换为float然后除以256.0
并且他说等于0的点是无效的点
kitti中stereo的disparity的gt数据的读取和使用
标签:col print oat cout read isp 需要 数值 end
原文地址:https://www.cnblogs.com/ymjyqsx/p/9074343.html