問題タブ [volume-rendering]
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.
3d - ボリューム レンダリング用の vtkgdcmimagereader
一連の 2D dicom 画像を読みたいです。次に、3D ボリュームとして表示します。そのために、次の手順に従いました。
1- ipp ソーター 2- setfilenames 3- vtkimagechangeinformation
これらの後、vtkimageviewer2 を使用してそれらを視覚化しようとしました。私が書いたほとんどすべてのコードを送ります。画像を読み込んで並べ替えると確信しています。しかし、それは次のようなエラーを出します
ソート成功:0.5
ソート成功:1.5
プログラムは予期せず終了しました。
これが私のコードです:
ご協力いただきありがとうございます。
opengl - 大量の画像を処理する
2GBを超えるサイズの巨大な3Dボリュームがあります。このデータをロードして処理し、アプリケーションに3Dボリュームとして表示します。このボリュームで、ボリュームのズームと回転を実行します。
この巨大なデータを読み込んで表示するアプリケーションを見ました。
私の疑問は、Windows32ビットアプリケーションのアドレス空間が2GBに制限されていることです。それでは、この巨大なボリュームを処理するためにこれらのアプリケーション内で使用される手法は何でしょうか。
また
アプリケーションでこれらの巨大なデータを最適なパフォーマンスで管理するにはどうすればよいですか?
math - OpenGL ModelView Matrix からビューの方向を取得するにはどうすればよいですか?
私は、常にカメラに面するように平面ジオメトリを常に調整するボリューム レンダリング プログラムを作成しています。プレーン ジオメトリは、カメラが回転するたびに回転し、シーン内の他のすべてのものに対して移動していないように見えます。(私は、カメラの視線方向を、これらの平面ジオメトリの法線ベクトルとして使用します。)
現在、カスタム回転ベクトル (「回転」) を手動で保存し、レンダリング関数で次のようにその影響を適用しています。
その後、回転からの値を使用して、x 軸と y 軸を中心に初期ビュー方向 (0,0,-1) を回転させることにより、ビュー方向を取得します。これは、次の方法で行われます。最終的な視線方向は 'view' に保存されます。
現在、このプログラムを、カメラの回転がサードパーティのグラフィック ライブラリによって処理される、より大きなプロジェクトに移行しています。回転ベクトルがありません。ビュー方向ベクトルを取得する方法はありますか:
http://3dengine.org/Modelview_matrixを参照してこれを見ていますが、ビューの方向を思いつく方法がまだわかりません。それが可能かどうか、そしてそれがどのように機能するかを誰かが説明してもらえますか?
javascript - テクスチャが有効に生成されていません (おそらく)
WebGL でのボリューム レイ キャスティング用のアプリはほぼ完成しています。しかし、私は問題を発見しました。2D テクスチャで 3D テクスチャをシミュレートする必要があります。問題ありません。小さなスライスから巨大なテクスチャを作成しています。巨大なテクスチャの寸法は約 4096x4096px です。問題は、いくつかの例 (スライスの数によって異なります) で sth が作成されていることです。下の画像のように(フラグメントがより見やすくなるように、巨大なテクスチャを白に塗りつぶしました)。
ストライプの数は、巨大なテクスチャの行数に依存することを知っています。このテクスチャを 4096x4096px 近くで生成しています (正確ではありません)。4080x4060などになる可能性があります。問題は、Three.jsがテクスチャをgpuにロードすることですが、4096x4096にスケーリングしないことです..だから、テクスチャの境界にあるフラグメントシェーダの黒い色を読んでいます.webglは正方形のテクスチャ (512x512、1024x1024... など)。レンダリング イメージに黒い縞が発生していました。
問題は、私の Three.js アプリが WebGL Inspector で動作しないことです..だから、よくわかりません。
それを修正する方法はありますか?
ありがとう。
トマーシュ
編集:
OK、私は問題を見つけました..そして「解決策」...しかし、解決策はうまくいきませんでした。2 つのデータセットがあります。1 つは問題ありませんが、2 番目はまだ同じエラーです。
コードの 2 つのバリアント (それぞれが 1 つのデータセットでは正常に機能しますが、2 番目のデータセットでは機能しません):
初め)
2番)
なぜ両方のデータセットで機能しないのか、本当にわかりません... GPU(WebGLインスペクター)をダンプしようとしました。両方のテクスチャが GPU で有効に読み込まれます (同じ向き、同じ寸法)。すべてが同じです。
私を助けてください....ありがとう。
opengl - 3D テクスチャでの OpenGL のパフォーマンスの低下
OpenGL とレイ キャスティングを使用してボリューム レンダラーを実装しようとしています。すべてがうまく機能しますが、マイナスの方向を見るとパフォーマンスの問題が発生します。これは、正の x 方向 (ベクトル 1、0、0 を表示) を見ると、パフォーマンスが問題ないことを意味します。しかし、負の x 方向 (-1、0、0) を見ると、フレームレートは 2 ~ 3 fps に低下します。im データセットのデータを保持するために 3D テクスチャを使用します。GPU でのテクスチャのキャッシュに問題があるのでしょうか? または、負の方向を見るとフレームレートが低下するという問題は何でしょうか?
問題が何であるか、いくつかのヒントを得ることができれば素晴らしいことです。
c++ - OpenGL glTexture3D によるテクスチャ アーティファクトとバイリニア フィルタリング
ボリューメトリック データの平面を切断する必要があるボリューメトリック レンダリング アプリケーションに取り組んでいます。問題は、解像度が限られているため、白いゾーンの境界にアーティファクトが発生することです。
255
ボリュームは、 s とsがある GLubyte M[depth][width][height]0
です。ご覧のとおり、モデルを回転すると境界線に明らかな問題があります。
OpenGL の次の設定が既にあります。
粒子の粗い境界線や迷惑なアーティファクトを滑らかにするのに役立つ sampler3D を使用して、GLSL で texture3D 用のバイリニア フィルターを作成できるかどうか疑問に思っています。
texture2D の双一次フィルタリングの例はたくさんありますが、3D テクスチャの例は見つかりません。
このコードを 3D サンプラーに適応させることは可能ですか?
または、ボリューム データのサイズを大きくせずに補間を改善することは可能ですか (実際には 512x512x512 Glubyte です)。
matlab - 3D 画像の PCA で 3 つの主軸を取得
インデックス付き画像 i、j、k である解剖学的ボリューム画像 (B) があります。
ファイルには 0 と 1 のみが含まれます。
等値面で正しく視覚化できます。
isosurface(B);
jのある座標でボリュームをカットしたいと思います(ボリュームごとに異なります)。
問題は、ボリュームが垂直に傾いていることです。おそらく 45% の角度を持っているため、カットは解剖学的ボリュームに沿っていません。
データの新しい直交座標系を取得したいので、座標 j の平面はより正確な方法で解剖学的ボリュームを切断します。
PCAでやるように言われましたが、やり方が分からず、ヘルプページを読んでも役に立ちませんでした。どんな方向でも大歓迎です!
編集:私は推奨事項に従ってきましたが、今では中心がゼロの新しいボリュームを取得しましたが、軸が解剖学的イメージに従っていないと思います。これらは前後の画像です。
これは、画像を作成するために使用したコードです(回答からいくつかのコードを取得し、コメントからアイデアを取得しました):
誰が何が起こっているのかヒントを提供できますか? 問題は reshape コマンドにあるようですが、以前に行った作業をキャンセルしている可能性はありますか?