-1

.pcdファイル形式 ( .pcd のドキュメント)で 3D ポイントを YELLOW 色で表示したい。以下の C# コードを使用して、YELLOW カラー (R: 255、G:255、B: 0) から PCD カラー フォーマットを取得します。

 byte red = 255;
 byte green = 255;
 byte blue = 0;
 int rgb = ((int)red) << 16 | ((int)green) << 8 | ((int)blue);
 float rgb2 = (float)rgb;

次に、返される値はrgb2 = 1.677696E+7

ポイントを のように PCD ファイルに保存します(x, y, z, 1.677696E+7)

ポイントを表示するために PCD ビューアーを使用していますが、期待どおりに色が黄色ではありませんか?

ビューラーに何か問題がありますか?

4

2 に答える 2

1

私はC#を使用していませんが、intからfloatへのキャストはビット構造ではなく値を保持していると思います。つまり、キャストを再解釈するのではなく、実際に数値を変換しています。

この Web サイトを検索すると、BitConverter が必要になると思います。

C# に関する 2 つの質問。float を int に再解釈するにはどうすればよいですか? C# には、「this」で変換が行われるように、非静的変換演算子またはユーザー定義の代入演算子がありますか?

于 2013-08-21T13:27:23.973 に答える
0

問題は解決しました。Integer代わりにPCD カラー構造を使用するだけですFloat(整数でカラーを使用するには、PCD ファイル構造を変更する必要があります)。intこのようにして、からへのキャストを再解釈する必要はありませんfloat

于 2013-08-22T08:32:26.983 に答える