激光雷达数据读取与opencv显示1.0

来源:互联网 发布:剑三数据库 编辑:程序博客网 时间:2024/05/16 14:43

C++的学习在阅读书本知识的同时进展课题,阅读别人代码实现自己的代码。
1.验证数据读取正确
使用的数据是HOKUYO公司UTM-30LX,数据格式可以从网上查找的到。我使用的数据是已经经过处理,变为一帧一帧.csv的距离数据。
这里写图片描述
内部的数据是这样的
这里写图片描述(1)
这里写图片描述(2)
我是用excel打开的(1),所以数据有个坑,两列数据以逗号分隔,但万万没想到数据结尾也已逗号分隔,最后已空格结束用Notepad++打开显示(2)。一直出现数据读取错误,最后才改正过来。
数据读取程序

#include<iostream>#include<fstream> #include <string>#include <stdio.h>using namespace std; int main(){    int x[1080][2];    int j,i,n=0;    FILE *fp;    fp=fopen("ss.csv","r");    if(!feof(fp)){        cout << " open file" << endl;        while(1){                       fscanf(fp,"%d,%d, ",&x[n][0],&x[n][1]);            if (feof(fp))break;            n++;}    }else        cout << "Cannot open file" << endl;    fclose(fp);    printf("n=%d\n",n);    for (j=0;j<n;j++){        for (i=0;i<2;i++)        printf("%d ",x[j][1]);        printf("\n");    }    system("pause");    return 0;}

定义了数据安行读取两列数据,因为只有第二列数据有用,所以我只显示第二列数据,以备使用。

2.接下来工作就得在opencv里面显示
参考的
激光雷达学习笔记(二)数据读取和显示
修改了一下数据格式,还有就是我想要的显示是白底黑点的图像显示。因此修改了一下显示效果。
修改处代码。

//改成白底cvSet(RadarImage,cvScalar(255,255,255,255),0);
            Pixel = cvGet2D(RadarImage, x, y);            //修改各点的值,描点为黑色            Pixel.val[0] = 0; // B分量            Pixel.val[1] = 0; // G分量            Pixel.val[2] = 0; // R分量            cvSet2D(RadarImage, x, y,Pixel);

最终的结果为

一帧的激光雷达数据显示

原创粉丝点击