私の仕事は、バイナリ リトルエンディアン .ply ファイルから頂点データを読み取ることです。問題は、end_header 行の後からデータを正しく抽出する方法が見つからないことです。
PLY ファイル:
ply
format binary_little_endian 1.0
element vertex 240753
property float x
property float y
property float z
property float nx
property float ny
property float nz
element face 477808
end_header
(after the end header there is a A0 byte indicating the new line then, ...)
AC76A0C04301644163416a42 ...
最初のフロートさえも正しく識別できません。float の IEE754 表現を使用して最初の 4 バイトを変換すると、結果は -3.5047936775001176e-12 になりますが、最初の 4 バイト (= 最初の頂点の最初の x 座標) は -5.01449 になるはずです (バイナリから ascii ply ファイルへの meshlab の変換によると) )。
私はc++のfread、fseekなどを使用しています...
4 バイトごとにエンディアン スワップを試みましたが、結果も悪いです。
間違った方法でバイトを抽出していると思います。