2016-10-25 6 views
2

私はポイントクラウドのデータファイルを読み込むためにpythonを使用しようとしました。拡張子は ".pcd"です。 1つのnumpy float32でRGBAカラー情報を保存します。 は、どのように私はPythonで4つのuint8番号にfloat32データ型を変換することができますか? たとえば、番号4.51073351e-39に隠されているrgb値は何ですか? http://rgbd-dataset.cs.washington.edu/dataset/rgbd-dataset_pcd_ascii/apple_1.tarfloat32をnumpyで4つのuint8と解釈するにはどうすればよいですか?

と私は、ファイルを読むためにpypcdを使用:ここで

In [13]: pc.pc_data["rgb"] 
Out[13]: 
array([ 4.51073351e-39, 4.41853788e-39, 4.87845245e-39, ..., 
     3.31220574e-39, 2.94594696e-39, 3.12997949e-39], dtype=float32) 

は、データセットをダウンロードするためのリンクがあり、ここでpypcdのgithubのリンクです:https://github.com/dimatura/pypcd

+2

これらの値は非常に低いようです...フォーマットはOKですか? –

+1

可能DUP:http://stackoverflow.com/questions/16444726/binary-representation-of-float-in-python-bits-not-hex – corn3lius

+0

@ corn3lius:回答なしnumpyの – Eric

答えて

2

は、私はあなたがpc.pc_data["rgb"].view((np.uint8, 4))をしたいと思いますが、そのためにあなたの例は次のようになります:

array([[23, 30, 49, 0], 
     [22, 29, 48, 0], 
     [36, 31, 53, 0], 
     ... 
     [21, 17, 36, 0], 
     [26, 20, 32, 0], 
     [28, 21, 34, 0]], dtype=uint8) 
+0

これを使用するときに良い習慣がありますまさに私が必要とするものです〜ありがとう〜 – Tang

関連する問題