問題タブ [tomography-reconstruction]
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.
c - プロジェクト:ボディスキャナー、ACM 1993
私は自分の大学のために作らなければならない非常に難しいプロジェクトを持っています。これはボディスキャナーであり、コンセプトは1993年のACMファイナルの問題H 、スキャナーに基づいています。
問題を理解するために写真を見てください。
だから、私たちのポイントに。データ入力用の数値を取得し、これらの数値に基づいてテーブル(この場合は10x15)を生成するアルゴリズムを作成するためにあなたの助けが必要です。最初の10個の数字は、すべての行の非白血球の数を表します(1)。次の24は、左から右の対角線にある非白血球の数です(2)。次の15は、すべての列の非白血球の数(3)であり、最後の24は、右から左の対角線の非白血球の数(4)です。私はこれらすべてのデータを組み合わせて配列を作成するアルゴリズムを考えようとしてきましたが、結果はありません。
c - CT: Matlab から C/OpenCV へのコード変換エラー
CT装置が生成する生データまたはサイノグラムの生成をシミュレートする必要があるCT問題に取り組んでいます。
Matlab には、同じことをシミュレートする組み込み関数「radon()」があります。サイノグラムを生成するためのカスタムコードをMatlabで正常に作成しました(つまり、 radon() を使用せずに)。
このコードを C に変換し、OpenCV ライブラリを使用して画像の読み込み/表示/保存を処理しました。
問題は、私の matlab 出力が期待どおりにサイノグラムを生成するにもかかわらず、私の C コードが生成しないことです。Matlab コードを C に変換しただけですが、C 出力の方向が異なり、間に黒い帯があります。C 出力の種類のグレー レベルは、MATLAB コードによって生成された Sinogram グレー レベルとパターンに似ています。Cでセグメント化されているように見える唯一のもの.
なぜこれが起こっているのか、誰かが私を助けてくれますか? 私は自分のコードを査読し、型キャスト エラー、メモリ割り当てなどをチェックしましたが、それらはすべて正しいようです。
matlab は C とは異なる方法でデータを処理しますか? 傾斜の説明は何ですか?
私を助けてください。問題の説明についてさらに説明が必要な場合、またはアルゴリズムを確認する必要がある場合はお知らせください。
ありがとう!
matlab - トモグラフィ 3D 再構成
学校のプロジェクトをしなければならないのですが、どこから始めればよいかわかりません。トモグラフィーを行った後に取得した画像から 3D 再構成を行う必要があります。また、画像が再構築された後、ユーザーが必要に応じて臓器をスライスし、作成したセクションを見ることができるツールを提供する必要があります。
どんな助けでも本当に感謝しています。ありがとう。
image - 3D画像での簡単な形状認識
数千個の粒子 (それぞれ 20 ~ 30 ボクセルの長さスケール) が詰まった 3D X 線断層撮影画像があり、すべて同じ形状 (球体、立方体、ドロなど) ですが、ランダムに散らばっています (接触している)。互いに)、ランダムな向きで。さまざまなライブラリの 2D でのテンプレート マッチングについて読みましたが、3D で適切なものを見つけることができず、テンプレート マッチングが適切かどうかさえわかりません。球体の場合、2 値化された画像を連続的に侵食することで各粒子の位置を特定しましたが、より複雑な形状の場合、これはうまく機能しません。何か案は?私はPythonに固執したいと思いますが、必要なものは何でも使用/学習できます。ありがとう!
matlab - CT 投影 (距離駆動型) 演算子の実装?
MATLAB を使用して、CT (コンピューター断層撮影) 投影演算子 A を実装しようとしています。これは、「システム マトリックス」とも呼ばれることが多いと思います。
基本的に、N x N 画像 M の場合、投影データ P は、投影演算子を画像に乗算することによって取得できます。
午前=午前
逆投影手順は、投影演算子の (共役) 転置を投影データに乗算することによって実行できます。
M = A'P
行列 A (例: ラドン変換) を実装する方法に関するアイデア/例/サンプル コードはありますか? 可能であれば、8 x 8 または 16 x 16 などの小さなサイズのマトリックスから始めたいと思っています。
私の質問は本当に: 投影演算子を実装する方法です。演算子に画像を掛けることで投影を取得でき、演算子の (共役) 転置と投影を乗算することで、元の画像を取得できます。 .
編集:
特に、距離駆動のプロジェクターを実装したいと考えています。その場合、ビームの軌道 (平行、ファンなど) は問題になりません。非常に単純な例 (MATLAB を推奨) から始めるのが最適です。
math - 行と列の合計が与えられたバイナリ行列が存在するかどうかを調べる
指定された行と列の合計でバイナリ行列を構築できるかどうかを調べる方法。
入力:
入力の最初の行には、行列の行と列の数である 1≤m,n≤1000 の 2 つの数値が含まれます。次の行には、行列の各行の合計である m 個の数値 0≤ri≤n が含まれます。3 番目の行には、n 個の数値 0≤cj≤m (行列の各列の合計) が含まれます。
出力:
m 行 n 列の行列 A が存在し、各要素が 0 または 1 の場合は「YES」を出力します。それ以外の場合は「NO」を出力します。
トモグラフィーアルゴリズムについて読んでみましたが、トモグラフィーアルゴリズムに関連するすべての論文は非常に複雑であるため、答えを見つけることができませんでした.
誰か助けてください..
matlab - matlab アルゴリズムの並列化
SART メソッドを使用して、断層撮影アルゴリズムに取り組んでいます。3D ボリュームを取得するために 2D プロジェクションを使用しています。
私の主な問題は、計算時間が非常に長いことです..
たとえば、サイズが 88*75 ピクセルのプロジェクションでは、プログラムが完了するまでに 5 日かかります。
matlab プロファイラーを使用すると、(重い) ラドン行列の乗算を含む行に非常に時間がかかっていることがわかります。
そのため、アルゴリズムを並列化したいのですが、よくわかりません。
これは、並列化したいアルゴリズムの一部です。
matlab - 線の長方形の交差セグメントを取得するには?
代数的再構成法の重み行列を見つけたいです。このために、グリッドとの線の交点を見つける必要があります。線との直接線の交点を見つけることができますが、交差した線セグメントのグリッド番号を保存する必要があります。したがって、グリッドの最初の正方形がグリッドと交差しない場合、重み行列の最初の要素にゼロを置くとします。
私が線の交点で試したコードは次のとおりです。
m, h
parametersで定義された線があります。y = m*x + h
この線はグリッド (つまり、ピクセル) を横切ります。
グリッドの各正方形(a, b)
(つまり、正方形) について、指定された線がこの正方形と交差するかどうか[a, a+1]x[b, b+1]
を判断したいと考えています。代数再構成法に不可欠です。
matlab - サイノグラムから直接 2D FFT。Matlab での極座標からデカルト座標へのグリッド補間
断層撮影イメージングの理論では、サイノグラムが記録されます。これは、サンプルのさまざまな角度での一連の投影です。この投影の FFT を取得すると、周波数空間でのサンプルの極座標のスライスが得られます。
コマンド[X,Y] = pol2cart(THETA,RHO)
はそれを自動的に行いません。では、極座標からデカルト座標へのグリッド補間は、Matlab の 2D で数値的にどのように実装されるのでしょうか?