0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C3D文件LabVIEW编辑方法

LabVIEW逆向工程高级编程 来源:LabVIEW逆向工程高级编程 作者:LabVIEW逆向工程高级 2022-10-17 15:38 次阅读

*c3d文件是一种公用文件格式,自1980年代中期以来,已在生物力学,动画和步态分析实验室中用于记录同步的3D和模拟数据。3D Motion Capture System制造商、Animation行业的公司基本都为它提供支持。

作者这里大体上描述下*c3d文件格式。*c3d文件是一种二进制文件,这有利于应用程序快速读取与存储,但就是不直观。二进制数据根据CPU的不同分为Intel、DEC、SGI三种,Intel和DEC是低位在前存储,SGI是高位前端存储。大家在读*c3d文件时首先要读取文件具体是哪种二进制文件格式,后面的解析才是准确的。C3D文件文件格式是按照数据块存储的,每512个bit为一个数据块,这有利于数据查找与组织。

e613acd8-4c63-11ed-a3b6-dac502259ad0.png

*c3d文件主要是头文件块512个字节,组与参数块1个或者多个数据块,再就是三维点和模拟数据块。

<头文件数据块>

e65351e4-4c63-11ed-a3b6-dac502259ad0.png

*c3d头文件主要描述了,三维点的数量、模拟数据量、每帧模拟数据量、点的采样频率、Scal值等参数以及事件参数。*c3d存储三维点及模拟数据可以是I16整型数据格式或者是32位的浮点型,通过Scal值的正负来判断,Scal为负值,就是32位的浮点型,正值就是I16整型数据存储。

<组与参数数据块>

*c3d文件的组与参数主要是存储对各个参数的描述,比如POINT组(指的是三维点)这一个组里面又包含很多的参数,比如USED、SCAL、LABLES...;类似于一级树形结构。

<组的存储格式>

e69ce8ea-4c63-11ed-a3b6-dac502259ad0.png

<参数存储格式>

e6f4de60-4c63-11ed-a3b6-dac502259ad0.png

*c3d文件组与参数的存储并不是先存组后存参数,是无需状态,有可能是存完一个组后,跟着存另一个组,也有可能是存第一个组下面的参数,具体存的组或者是参数根据第二个字节的正负判断,负数是组,正数是组下面的参数。

<数据块>

点与模拟数据的存储包含多个数据块。数据可以是整型数据存储也可以浮点类型存储,整形数据格式会小一倍,整形点数据需要乘以Scal还原成浮点类型,浮点类型则不需要。数据是一帧一帧的存储,先存点再存模拟信号(如果有的话)。

e7fb9e52-4c63-11ed-a3b6-dac502259ad0.png

<整型点的数据格式>

e91f0f30-4c63-11ed-a3b6-dac502259ad0.png

一共是8个bit,注意最后的2个字节,1-7位是相机的掩码,最后8位是数据的残差。

<32位浮点型点的格式>

e9687c88-4c63-11ed-a3b6-dac502259ad0.png

一共是16个bit,前12个bit是点的XYZ坐标,后面4个先转成16位整形再解析相机的掩码和数据的残差。

<模拟信号存储>

模拟信号的数据格式与点的数据格式必须保持一致,都是整型或者都是浮点型。模拟信号需要通过以下公式进行换算

e9fb196c-4c63-11ed-a3b6-dac502259ad0.png

ANALOG组下面读出OFFSET,SCAL,GEN_SCALE参数。

模拟信号的存储是每帧一个sample一个sample的存储,比如点的帧频是50Hz,模拟信号的帧频是200Hz,每帧需要存储4个sample,这个参数在头文件里面有描述。每个Sample里面包含多个通道的数据,具体多少通道参考ANALOG组下面USED参数的数值。

ea735044-4c63-11ed-a3b6-dac502259ad0.png

<方法一>

首先介绍下官网的方法,下载C3Dserver_setup.exe安装,安装完成后计算机就存在了C3Dserver的ActiveX控件。LabVIEW通过ActiveX控件对文件进行操作,比如读、修改及存储。这个分免费版和付费版。免费版与付费版的唯一区别就是免费版速度会慢,就是故意加了延时!但是这个打包成自己的做的软件毕竟是不方便,一个是慢一个是要安装插件,不是很专业。

eb0f429c-4c63-11ed-a3b6-dac502259ad0.png

<方法二>

最好的解决方案就是认真读文档用LabVIEW写一套*c3d文件编辑工具,不依赖第三方,作者就干了这事,制作了Motion_Lab_C3D LabVIEW库。

eb9b15ce-4c63-11ed-a3b6-dac502259ad0.png

ebac8282-4c63-11ed-a3b6-dac502259ad0.png

C3D_Reader支持文件头、事件头、组与参数、数据的读取。

ebc8a6ec-4c63-11ed-a3b6-dac502259ad0.png

C3D_Writer根据输入的头、组与参数、点、模拟数据,保存为标准的*c3d文件。另外开发了快速搜索数据结构,支持组与参数数据的快速检索与修改。

后面这套工具将集成到Azure Kinect Sensor&BodyTracking For LabVIEW工具包,用于人体跟踪后的动捕数据存储,这将有助于开发者将跟踪的动捕数据快速迁移到第三方软件进行运动生物力学学分析、动画制作等应用。下一个版本更新!

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2756

    浏览量

    106455
  • LabVIEW
    +关注

    关注

    1918

    文章

    3619

    浏览量

    316993
  • 文件格式
    +关注

    关注

    0

    文章

    17

    浏览量

    15015

原文标题:*c3d File Edit For LabVIEW

文章出处:【微信号:gh_63f7cd07072a,微信公众号:LabVIEW逆向工程高级编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何用C编写DLL文件labview调用?

    最近在学习labview调用DLL文件方法,目前已经知道如何使用VI生成DLL文件labview调用,现在想学习使用
    发表于 09-07 11:09

    LabVIEW树形文件编辑位置”

    是通过树形控件的“编辑位置”这个属性来操作,第一种方法已经实现 第二种方法却实现不了。我看了帮助文件对“编辑位置”的说明,“使用该属性设置控
    发表于 05-17 22:34

    LabVIEW编写的简单3D模型预览工具

    ` 本帖最后由 ewb_topic 于 2018-8-7 16:29 编辑 最低兼容LabVIEW 8.6版本,支持ase、stl、wrl三种3D模型文件。小工具一个Pass:tl
    发表于 08-06 10:55

    LABVIEW中调用C方法和配置CIN节点

    的数据类型由连接在输入(输出)口上的控件的数据类型决定。(1)生成C源代码编辑格式文件。(2)在C源代码编辑格式
    发表于 05-07 09:40

    LabVIEWC接口的设计方法

    摘 要:介绍一种LabVIEWC接口的设计方法。利用此接口方法,可以根据实际应用的要求,扩展LabVIEW的功能。  关键词:
    发表于 05-10 09:40

    LabVIEW中读取多列数据文件的通用方法

    针对LabVIEW中提供的文件读取函数功能的不足,介绍了一种读取多列数据文件的通用方法。关键词:LabVIEW;多列数据;
    发表于 08-05 16:31 305次下载

    LabVIEW中导出波形图或图表至文件

    LabVIEW中导出波形图或图表至文件LabVIEW中导出波形图或图表至文件LabVIEW中导出波形图或图表至
    发表于 02-18 11:44 206次下载

    LABVIEW的setup文件

    这是labview的建立文件,后续还有执行的。
    发表于 12-09 23:03 0次下载

    LABVIEW文件重命名的几种方法——陈树学《labview宝典》

    日期等等。二采用读取文件复制的方法实际上创建的是一个新的文件,因此文件创建日期等属性与原来的文件不同。特殊情况下,可能会需要采用这种原始
    发表于 01-03 16:35 4276次阅读
    <b class='flag-5'>LABVIEW</b>中<b class='flag-5'>文件</b>重命名的几种<b class='flag-5'>方法</b>——陈树学《<b class='flag-5'>labview</b>宝典》

    labview软定时dll文件下载

    labview软定时dll文件
    发表于 01-22 13:46 6次下载

    如何读取本地文件labview中,获得文件信息资料下载

    读取本地文件labview中,获得文件信息。
    发表于 03-27 10:21 40次下载

    M4V编辑器:如何在Windows/Mac上轻松编辑M4V文件

    M4V文件的最佳转换器和编辑器,以及使用iMovie或Windows Movie Maker编辑M4V文件的免费方法。 第1部分。适用于W
    的头像 发表于 01-14 09:19 3290次阅读

    Labview Excel例子文件下载

    Labview Excel例子文件下载
    发表于 04-13 10:16 137次下载

    编辑与改写IP核源文件方法

    有些时候,根据设计需求可能会想要修改IP核生成的源文件(只能修改未加密文件),包括HDL文件和XDC约束文件。这种修改不能直接修改源文件,因
    的头像 发表于 08-25 14:38 1785次阅读

    labview生成exe文件如何配置文件

    LabVIEW是一种用于实时测试、控制和数据采集的编程环境。在开发过程中,您可以使用LabVIEW软件生成可执行文件(.exe),以便在没有LabVIEW开发环境的计算机上运行您的应用
    的头像 发表于 12-27 16:28 634次阅读