問題タブ [ply-file-format]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4261 参照

c++ - OpenGL で .ply オブジェクトを表示/描画するにはどうすればよいですか?

でロードしている図をOpenGLに描画させようとしていOPENFILENAMEます。私が今持っているのは、コメント、頂点、面の数などを表示できますが、図を描くことができず、その方法がわかりません。他の所定の図形を描画できますが、開こうとしている図形は描画できません。


これは私がすべてを初期化しているところです:

ここで、開いている要素の内容を確認します。

そして、これがクラス Figure の場所で、ここですべてを描画することになっています。

私はできる限り自分自身を説明しようとしました。まだ説明が必要だと思われる場合は、教えてください。別の方法で説明します

ええ、説明するのを忘れていました。私が描こうとしている図形だと思います...まあ、OPENFILENAME を使用して 1 つのランダムな図形を開いて描画しているため、どの図形になるかわかりません。三角形で私は何でも描くことができ、またクラスで試しましたパラメータは、私が扱っている頂点の数を要求し、クラスDrawで「for」を作成しますが、機能しませんでした

0 投票する
3 に答える
2696 参照

graphics - メモリ リークのない .ply ファイルの解析

スタンフォードの 3D スキャン リポジトリで .ply ファイルをダウンロードし、そのページからスタンフォードのコード (ply.h、plyfile.c) を使用して解析しています。しかし、このコードを見ると、決して解放されない malloc がはびこっていることがわかります。目を閉じて横を見ることもできますが、歯がかゆくなります.

2 つの回避策が考えられます。

1 つは、Hans Boehm のガベージ コレクタ、またはガベージ コレクタ内で実行するように「malloc」を再定義する同様のものを使用することです。私はこのライブラリを使用したことはありませんが、スタンフォード コードの malloc だけで動作し、他の場所では動作しないようにする方法があるかもしれません。

他の回避策は、別のパーサーを使用することです。できれば、適切に RAII 化されたメモリ管理を備えた C++ パーサーを使用してください。上記のリンクにいくつかの代替パーサーとコンバーターがリストされていますが、それらすべてを試すのに1日か2日を費やすのではなく、ここで推奨事項を取得したいと考えていました.

スタンフォード パーサーでメモリ リークを封じ込めるか、別のパーサーを使用するか、または私が考えもしなかった第 3 の方法を使用して、メモリ リークなしで .ply ファイルを解析する方法を推奨できる人はいますか?

0 投票する
2 に答える
1637 参照

java - ply ファイルを書き出すための Java ライブラリはありますか?

ply ファイルを書き出すための Java ライブラリを探しています。無い場合は書いてみたいと思います。

0 投票する
1 に答える
1925 参照

c++ - バイナリ PLY ファイルを読み取ると、奇妙な結果が生成される

私の仕事は、バイナリ リトルエンディアン .ply ファイルから頂点データを読み取ることです。問題は、end_header 行の後からデータを正しく抽出する方法が見つからないことです。

PLY ファイル:

最初のフロートさえも正しく識別できません。float の IEE754 表現を使用して最初の 4 バイトを変換すると、結果は -3.5047936775001176e-12 になりますが、最初の 4 バイト (= 最初の頂点の最初の x 座標) は -5.01449 になるはずです (バイナリから ascii ply ファイルへの meshlab の変換によると) )。

私はc++のfread、fseekなどを使用しています...

4 バイトごとにエンディアン スワップを試みましたが、結果も悪いです。

間違った方法でバイトを抽出していると思います。

0 投票する
1 に答える
1194 参照

transform - Meshlab またはその他の 3D 相似変換

Meshlab に 2 つの .ply データセットがあります。A はシーンの点群です。B は、A のシーンの 30% を含む点群ですが、未知の要因によって回転、平行移動、スケーリング (7 度の自由度) されています。

A と B を手で大まかに合わせて、重なっている部分がどの程度一致しているかを把握したいと考えています。誰かがこれについて専門知識を持っていますか? 私は本当にMeshlabを使いたいのですが、別々の座標フレームに従って別々のレイヤーをスケーリング/平行移動/回転する方法がないようです.2つのレイヤー間の対応を手動で選択することによって平行移動/回転する方法があるようです. 、しかし、これはスケーリングの問題を扱っていません(私が見る限り...)

理想的には、手動で B を可能な限り A に近づけて調整し、変換された B の .ply ファイルを保存してから、新しいデータセットで反復的な最近接ポイントを実行できます。

0 投票する
1 に答える
9658 参照

point-clouds - プライ形式の頂点に色を追加する

XYZ ポイントの各頂点にそれぞれ異なる色/値属性が付加された 3D ポイント クラウドがあります。

生データは、x、y、z、V1、V2、V3 という列の単純な .txt / csv 形式であり、.ply を使用して画像を作成しようとしている次のポイントの新しい行です。次のような 3D 画像を作成したい:

これ.

これらの各値に基づいて各面または頂点に色を付けるための ply 形式の適切なコードは何ですか? 同じ形状で異なる色をサーフェスにマッピングする複数のマップを作成したいと考えています。

0 投票する
0 に答える
2343 参照

javascript - three.js + plyloader の使用

three.jsのplyloaderを使ってplyファイルを読み込もうとしています。頂点 (xyz) と面 (形式: 3 インデックス 0 インデックス 1 インデックス 2) の両方がある場合にのみ、プライのロードに成功しました。顔なしで使用する方法はありますか?xyz ポイントのみを指定して、three.js で顔を作成する簡単な方法についてのアイデアはありますか? 元のファイルには xyz 座標が含まれています。CloudCompare を使用してメッシュを生成し、xyz ポイントと面を持つ ply ファイルとして保存しました。ありがとう。

このコードはplyloaderからのものです:

0 投票する
0 に答える
1960 参照

image-segmentation - バイナリ PLY ファイルをインポートし、セグメンテーションに Point Cloud Library を使用する

Meshlab で表示した Visual Structure from Motion を使用して、バイナリ ポイント クラウド (PLY) を生成しました。点群は、面を持たない点のみです。これらのファイルを PCL にロードしてセグメンテーションを行いたいのですが、ファイルを正しく読み取ることができません。コード (loadPLYFile を使用) は実行されますが、インデックスを生成できません。

このコードを実行すると、次のエラーが発生します。

[pcl::RegionGrowingRGB::prepareForSegmentation] 指定されたインデックスを空にします! [pcl::KdTreeFLANN::setInputCloud] 空の入力クラウドで KDTree を作成できません!

0 投票する
1 に答える
716 参照

matlab - Matlab PLY サーフェス メッシュの測地線

心臓の CT スキャンがあり、その上に載るデバイスを設計しています。そのため、特定の属性に対して適切な長さを取得することが重要です。CT スキャンは MeshLab でセグメント化され、アドバイザーは、PLY_IO を使用して MeshLab からエクスポートされた ply ファイルを読み取るコードを教えてくれました。これから、私は表面の地図を持っています。surf(Map.X, Map.Y,Map.Z) は 3D モデルを出力します。今、私が理想的に望むのは、図ウィンドウを介してグラフィカルにポイントを選択し、Matlab にポイントが何であるかを教えてもらうか、測地線を描いてその長さを決定できるようにすることです。質問:これを簡単な方法で行う方法を知っている人はいますか?

最終的には、正しい向きで取得できれば、図形に描画するだけでも問題ないかもしれません。ただし、理想的には、始点と終点を選択すると、Matlab がサーフェス上に測地線をグラフィカルに表示し、後でその長さを見つけることができます。このためのプログラミングを行ってみたいと思っていますが、皆さんが既に知っている何かがあることを願っています。

0 投票する
1 に答える
641 参照

mesh - 生成された破損した大きな ply ファイル - エラーを見つける方法

ply ファイルに格納された円柱リストからメッシュを生成する Java クラスを作成しました。手動で生成した 3 つのシリンダーのリストを使用してファイルをテストしました。結果のファイルは、Meshlab と Cloudcompare の両方で開くことができます。実際のプログラムでこのクラスを使用すると、13000 を超えるシリンダーのメッシュを作成する必要があります。Cloudcompare で次のエラーが表示されます:読み取りエラー(アクセス権がありませんか?)

Meshlab これ : エラーの詳細、予期しない eof

ヘッダーで定義された正確な数の頂点と面が ply ファイルに含まれているかどうかは既に確認しました。また、nan (winedit で「n」、「a」などをチェック) 値が含まれていないことも確認しました。

最後の行を削除することで、3 つの手作りのシリンダー ファイルからテスト ファイルでエラーを再現できます。しかし、前述のように、行番号が正しいかどうかは既に確認しました (ただし、50 万行下にスクロールすることは不可能であるため、私の目には空の行である可能性があります)。

ply ファイルのエラーを解析するプログラムはありますか? ここでは、オープンソース ツールを歓迎します。それとも、ファイルが大きすぎますか? 正確には436302行。plyのASCIIバージョンを使用しています。