c语言fread函数的用法_用Matlab处理LAS点云(2)——基本函数介绍

8196cc96b04addcd561b34e3c528ba33.png

千呼万唤始出来,上一篇文章讲了LAS的文件结构,那这篇就讲一下Matlab是怎么读取文件对应位置的数据的。

说出来你们可能不信,整个读取过程只涉及三个函数,fopen、fread、fseek

首先是fopen,对于此函数的用法,我们仅挑选对处理点云最有用、最简单的方式:

fid 

此处返回值为大于等于3的正整数,通常情况下是3,后续在不使用fclose的情况下,每调用一次fopen函数,fid的值加1。其他参数不填,使用默认值。

其次是fread,这个函数用于读取文件中的数据,在读取las文件时选择如下调用方式:

Value 

Value存储所读取的值,该值的类型由参数precision决定,变量所占存储空间由参数size决定。

最后时fseek,这个函数在处理las文件时的调用方式为:

fseek

此函数其实就是为了移动标识符到指定位置,标识符就是告诉电脑:我们要处理这个文件的***位置了,我把标志放在这了。

offset就是我要移动的字节数,origin就是我从哪开始算移动的字节数(从文件开头算就是‘bof’,当前位置开始算就是‘cof’,结尾开始算就是‘eof’)。


理论讲完了我们具体操作一个实例:

根据上一篇文章我们看到每个las文件是由对应版本号的,那我们就读取一个las文件的主、副版本号吧。

function

根据前一篇文章中的文件结构表,我们发现版本号存储位置开始于距离文件开头的第24个字节(4+2+2+4+2+2+8=24),于是使用fseek将标识符移动到指定位置:

fseek

之后我们使用fread函数读取该位置的数据:

version1 

查表得主版本号的数据类型为‘uchar’,占用1储存空间。

最后看一下输出版本编号算法的结果

>> 

成功啦!这样我们就完成了对于las文件的数据读取,大家可以试着读取一下自己的las数据中的数据。

随缘更新,有事留言。

ball ball大家看完点个赞同吧!码字不易啊!T.T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值