0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C3D文件LabVIEW編輯方法

LabVIEW逆向工程高級編程 ? 來源:LabVIEW逆向工程高級編程 ? 作者:LabVIEW逆向工程高級 ? 2022-10-17 15:38 ? 次閱讀

*c3d文件是一種公用文件格式,自1980年代中期以來,已在生物力學(xué),動(dòng)畫和步態(tài)分析實(shí)驗(yàn)室中用于記錄同步的3D和模擬數(shù)據(jù)。3D Motion Capture System制造商、Animation行業(yè)的公司基本都為它提供支持。

作者這里大體上描述下*c3d文件格式。*c3d文件是一種二進(jìn)制文件,這有利于應(yīng)用程序快速讀取與存儲(chǔ),但就是不直觀。二進(jìn)制數(shù)據(jù)根據(jù)CPU的不同分為Intel、DEC、SGI三種,Intel和DEC是低位在前存儲(chǔ),SGI是高位前端存儲(chǔ)。大家在讀*c3d文件時(shí)首先要讀取文件具體是哪種二進(jìn)制文件格式,后面的解析才是準(zhǔn)確的。C3D文件文件格式是按照數(shù)據(jù)塊存儲(chǔ)的,每512個(gè)bit為一個(gè)數(shù)據(jù)塊,這有利于數(shù)據(jù)查找與組織。

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

*c3d文件主要是頭文件塊512個(gè)字節(jié),組與參數(shù)塊1個(gè)或者多個(gè)數(shù)據(jù)塊,再就是三維點(diǎn)和模擬數(shù)據(jù)塊。

<頭文件數(shù)據(jù)塊>

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

*c3d頭文件主要描述了,三維點(diǎn)的數(shù)量、模擬數(shù)據(jù)量、每幀模擬數(shù)據(jù)量、點(diǎn)的采樣頻率、Scal值等參數(shù)以及事件參數(shù)。*c3d存儲(chǔ)三維點(diǎn)及模擬數(shù)據(jù)可以是I16整型數(shù)據(jù)格式或者是32位的浮點(diǎn)型,通過Scal值的正負(fù)來判斷,Scal為負(fù)值,就是32位的浮點(diǎn)型,正值就是I16整型數(shù)據(jù)存儲(chǔ)。

<組與參數(shù)數(shù)據(jù)塊>

*c3d文件的組與參數(shù)主要是存儲(chǔ)對各個(gè)參數(shù)的描述,比如POINT組(指的是三維點(diǎn))這一個(gè)組里面又包含很多的參數(shù),比如USED、SCAL、LABLES...;類似于一級樹形結(jié)構(gòu)。

<組的存儲(chǔ)格式>

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

<參數(shù)存儲(chǔ)格式>

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

*c3d文件組與參數(shù)的存儲(chǔ)并不是先存組后存參數(shù),是無需狀態(tài),有可能是存完一個(gè)組后,跟著存另一個(gè)組,也有可能是存第一個(gè)組下面的參數(shù),具體存的組或者是參數(shù)根據(jù)第二個(gè)字節(jié)的正負(fù)判斷,負(fù)數(shù)是組,正數(shù)是組下面的參數(shù)。

<數(shù)據(jù)塊>

點(diǎn)與模擬數(shù)據(jù)的存儲(chǔ)包含多個(gè)數(shù)據(jù)塊。數(shù)據(jù)可以是整型數(shù)據(jù)存儲(chǔ)也可以浮點(diǎn)類型存儲(chǔ),整形數(shù)據(jù)格式會(huì)小一倍,整形點(diǎn)數(shù)據(jù)需要乘以Scal還原成浮點(diǎn)類型,浮點(diǎn)類型則不需要。數(shù)據(jù)是一幀一幀的存儲(chǔ),先存點(diǎn)再存模擬信號(如果有的話)。

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

<整型點(diǎn)的數(shù)據(jù)格式>

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

一共是8個(gè)bit,注意最后的2個(gè)字節(jié),1-7位是相機(jī)的掩碼,最后8位是數(shù)據(jù)的殘差。

<32位浮點(diǎn)型點(diǎn)的格式>

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

一共是16個(gè)bit,前12個(gè)bit是點(diǎn)的XYZ坐標(biāo),后面4個(gè)先轉(zhuǎn)成16位整形再解析相機(jī)的掩碼和數(shù)據(jù)的殘差。

<模擬信號存儲(chǔ)>

模擬信號的數(shù)據(jù)格式與點(diǎn)的數(shù)據(jù)格式必須保持一致,都是整型或者都是浮點(diǎn)型。模擬信號需要通過以下公式進(jìn)行換算

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

ANALOG組下面讀出OFFSET,SCAL,GEN_SCALE參數(shù)。

模擬信號的存儲(chǔ)是每幀一個(gè)sample一個(gè)sample的存儲(chǔ),比如點(diǎn)的幀頻是50Hz,模擬信號的幀頻是200Hz,每幀需要存儲(chǔ)4個(gè)sample,這個(gè)參數(shù)在頭文件里面有描述。每個(gè)Sample里面包含多個(gè)通道的數(shù)據(jù),具體多少通道參考ANALOG組下面USED參數(shù)的數(shù)值。

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

<方法一>

首先介紹下官網(wǎng)的方法,下載C3Dserver_setup.exe安裝,安裝完成后計(jì)算機(jī)就存在了C3Dserver的ActiveX控件。LabVIEW通過ActiveX控件對文件進(jìn)行操作,比如讀、修改及存儲(chǔ)。這個(gè)分免費(fèi)版和付費(fèi)版。免費(fèi)版與付費(fèi)版的唯一區(qū)別就是免費(fèi)版速度會(huì)慢,就是故意加了延時(shí)!但是這個(gè)打包成自己的做的軟件畢竟是不方便,一個(gè)是慢一個(gè)是要安裝插件,不是很專業(yè)。

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

<方法二>

最好的解決方案就是認(rèn)真讀文檔用LabVIEW寫一套*c3d文件編輯工具,不依賴第三方,作者就干了這事,制作了Motion_Lab_C3D LabVIEW庫。

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

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

C3D_Reader支持文件頭、事件頭、組與參數(shù)、數(shù)據(jù)的讀取。

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

C3D_Writer根據(jù)輸入的頭、組與參數(shù)、點(diǎn)、模擬數(shù)據(jù),保存為標(biāo)準(zhǔn)的*c3d文件。另外開發(fā)了快速搜索數(shù)據(jù)結(jié)構(gòu),支持組與參數(shù)數(shù)據(jù)的快速檢索與修改。

后面這套工具將集成到Azure Kinect Sensor&BodyTracking For LabVIEW工具包,用于人體跟蹤后的動(dòng)捕數(shù)據(jù)存儲(chǔ),這將有助于開發(fā)者將跟蹤的動(dòng)捕數(shù)據(jù)快速遷移到第三方軟件進(jìn)行運(yùn)動(dòng)生物力學(xué)學(xué)分析、動(dòng)畫制作等應(yīng)用。下一個(gè)版本更新!

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 3D
    3D
    +關(guān)注

    關(guān)注

    9

    文章

    2843

    瀏覽量

    107178
  • LabVIEW
    +關(guān)注

    關(guān)注

    1957

    文章

    3651

    瀏覽量

    321413
  • 文件格式
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    15061

原文標(biāo)題:*c3d File Edit For LabVIEW

文章出處:【微信號:gh_63f7cd07072a,微信公眾號:LabVIEW逆向工程高級編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    LabVIEWC# 注冊事件相關(guān)方法

    利用C#編寫事件相關(guān)的類庫,在WinForm和LabVIEW中進(jìn)行測試,并描述相關(guān)程序的調(diào)用方法。
    的頭像 發(fā)表于 10-09 17:48 ?2157次閱讀
    <b class='flag-5'>LabVIEW</b>與<b class='flag-5'>C</b># 注冊事件相關(guān)<b class='flag-5'>方法</b>

    LabVIEW樹形文件編輯位置”

    是通過樹形控件的“編輯位置”這個(gè)屬性來操作,第一種方法已經(jīng)實(shí)現(xiàn) 第二種方法卻實(shí)現(xiàn)不了。我看了幫助文件對“編輯位置”的說明,“使用該屬性設(shè)置控
    發(fā)表于 05-17 22:34

    LabVIEWC接口的設(shè)計(jì)方法

    摘 要:介紹一種LabVIEWC接口的設(shè)計(jì)方法。利用此接口方法,可以根據(jù)實(shí)際應(yīng)用的要求,擴(kuò)展LabVIEW的功能?! £P(guān)鍵詞:
    發(fā)表于 05-10 09:40

    LabVIEWC語言接口的方法

    摘要介紹了一種LabVIEWC 語言接口的方法,由實(shí)例證明,該方法高效、易行,是增強(qiáng)LabVIEW整體功能的一條有效的途徑。關(guān)鍵詞虛擬儀器
    發(fā)表于 01-17 21:54 ?82次下載

    LabVIEW中讀取多列數(shù)據(jù)文件的通用方法

    針對LabVIEW中提供的文件讀取函數(shù)功能的不足,介紹了一種讀取多列數(shù)據(jù)文件的通用方法。關(guān)鍵詞:LabVIEW;多列數(shù)據(jù);
    發(fā)表于 08-05 16:31 ?307次下載

    第四屆 C3D World 論壇暨展覽會(huì)再度升溫

    第四屆 C3D World 論壇暨展覽會(huì)再度升溫   信息化推動(dòng)工業(yè)化、3D 信息技術(shù)促進(jìn)產(chǎn)業(yè)升級 -- 亞太3D 信息的盛宴
    發(fā)表于 10-15 16:49 ?810次閱讀

    LabVIEWC接口設(shè)計(jì)

    LabVIEWC接口設(shè)計(jì) 介紹一種LabVIEWC接口的設(shè)計(jì)方法。利用此接口方法,可以根據(jù)
    發(fā)表于 10-16 09:30 ?3686次閱讀
    <b class='flag-5'>LabVIEW</b>與<b class='flag-5'>C</b>接口設(shè)計(jì)

    LabVIEW寶典課件

    的運(yùn)行結(jié)構(gòu),以及LabVIEW的基本數(shù)據(jù)結(jié)構(gòu)和文件存儲(chǔ)方式;高級篇細(xì)致地講解了引用、屬性、方法以及各類高級控件的運(yùn)用,LabVIEW的文本方式編程以及DLL、
    發(fā)表于 05-26 11:46 ?0次下載

    labview實(shí)現(xiàn)3d模型

    20多年來,NILabVIEW較件致力于簡化高效的設(shè)計(jì)用戶界面的創(chuàng)建,實(shí)現(xiàn)2D圖表顯示。LabVIEW8.6加入了全新的數(shù)據(jù)可視化概念3D傳感器映射?,F(xiàn)在您可以輕松將CAD模型集成到LabVI
    發(fā)表于 11-20 14:05 ?2.2w次閱讀

    LabVIEW寶典帶你從LabVIEW入門到詳細(xì)了解最后讓你熟練的應(yīng)用LabVIEW

    的運(yùn)行結(jié)構(gòu),以及LabVIEW的基本數(shù)據(jù)結(jié)構(gòu)和文件存儲(chǔ)方式;高級篇細(xì)致地講解了引用、屬性、方法及各類高級控件的運(yùn)用,LabVIEW的文本方式編程及DLL、
    發(fā)表于 07-25 08:00 ?0次下載
    <b class='flag-5'>LabVIEW</b>寶典帶你從<b class='flag-5'>LabVIEW</b>入門到詳細(xì)了解最后讓你熟練的應(yīng)用<b class='flag-5'>LabVIEW</b>

    LabVIEW使用圖形化編輯語言G編寫程序

    LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā),類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計(jì)算機(jī)語言的顯著區(qū)別是:其他計(jì)算機(jī)語言都是采用基于文本的語言產(chǎn)生代碼,而
    的頭像 發(fā)表于 07-01 08:22 ?5741次閱讀

    用于微表情識別的三維卷積神經(jīng)網(wǎng)絡(luò)進(jìn)化方法

    Neural Network,C3D)來提取微表情在時(shí)域和空域上的特征;同時(shí)使用具有全局搜索和優(yōu)化能力的遺傳算法對C3D的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,以獲取最優(yōu)的C3D網(wǎng)絡(luò)結(jié)構(gòu)和避免
    發(fā)表于 05-17 15:22 ?10次下載

    C3D Facebook視頻分析工具

    ./oschina_soft/C3D.zip
    發(fā)表于 06-01 10:11 ?1次下載
    <b class='flag-5'>C3D</b> Facebook視頻分析工具

    編輯與改寫IP核源文件方法

    有些時(shí)候,根據(jù)設(shè)計(jì)需求可能會(huì)想要修改IP核生成的源文件(只能修改未加密文件),包括HDL文件和XDC約束文件。這種修改不能直接修改源文件,因
    的頭像 發(fā)表于 08-25 14:38 ?2480次閱讀

    labview程序生成exe文件怎么還原

    了程序運(yùn)行所需的所有指令和數(shù)據(jù),但不再以LabVIEW的圖形化編程形式存在。 然而,如果你需要修改或查看exe文件背后的LabVIEW邏輯,你可以考慮以下幾種方法: 保留原始項(xiàng)目
    的頭像 發(fā)表于 09-04 17:12 ?561次閱讀