- 日常在使用深度相机(Xtion之类)时,有时没有OpenCV的环境,就会把数据保存成16位的二进制dat文件,但是之后我们的处理一般都是在OpenCV里面的,这时就需要将二进制深度图转换成Mat格式,下面这段例子就实现了这个功能。
#include <iostream>
#include <string>
#include <fstream>
#include <opencv2/opencv.hpp>
#include <QFileDialog>
using namespace std;
using namespace cv;
int main()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open Next Map"), "./", tr("DepthImageFile(*.dat)"));
Mat depth(480, 640, CV_16UC1);
FILE *fp = fopen(fileName.toStdString().c_str(), "rb");
if( fp == NULL) {
cout << "not open" << endl;
return;
}
char *pdata = (char*) depth.data;
cout << fread(pdata, 2, 640*480, fp) << endl;
fclose(fp);
return;
}