問題タブ [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.
matlab - Matlab でのラドン変換の実装、出力サイズ
私の問題の性質上、Matlab でのラドン変換の数値的実装を評価したいと思います (つまり、異なる補間方法では異なる数値が得られます)。
自分のラドンをコーディングして、Matlab の出力と比較しようとしたときに、ラドンの投影サイズが Matlab のものとは異なることがわかりました。
ラドンサンプルが必要な場合の量を計算する方法の少しの直感。2Dの場合をやってみましょう。
アイデアは、最大サイズは、ラドン変換で対角線 (少なくとも長方形) 部分が射影される場合になるということdiago=sqrt(size(I,1),size(I,2))
です。私たちは何も望んでいないので、n_r=ceil(diago)
. n_r
ラドン変換の離散サンプルの量である必要があり、データが取り残されないようにする必要があります。
Matlab の出力は常に偶数であることに気付きましたradon
。これは、常に回転の中心を通る「光線」が必要なため理にかなっています。そして、すべての場合において、配列の端点に 2 つのゼロがあることに気付きました。
その場合、n_r=ceil(diago)+mod(ceil(diago)+1,2)+2;
ただし、Matlab とは若干の相違があるようです。
MWE:
Matlab のラドン変換は調べられない関数なので、なぜこのような矛盾が生じるのだろうか。
matlab - Matlab における遺伝的アルゴリズムの突然変異段階
Matlab で遺伝的アルゴリズムを使用して画像再構成アルゴリズムを最適化しています。2 つの集団でクロスオーバーを行い、matlab で「ga」ツールキットを使用せずに 2 つの子孫を生成しました。したがって、現在、0〜255の範囲の整数値を持つ2つの1 * nマトリックスがあります(これらは、行の主要な順序で2つの画像です)。たとえば
そして、私は単一点順交叉を行い、次のように子孫を得ました
次に、確率率 0.02 で突然変異を行う必要があります。ここでは 'gaoptimset' を使用し、次のようにコーディングしました。
結果を出力しました。値なしでこのような構造が得られます。
クロスオーバーされた子 (Off_1 と Off_2) で突然変異を実行するのを手伝ってくれる人はいますか?事前に感謝します。
matlab - matlab でのフィルター逆投影 / iradon の定性的および定量的分析
誰かがこの問題に遭遇したかどうか疑問に思っていました。
元の画像に似た matlab から画像を再構築できますが、実際の値は常に異なります。
たとえば、元の画像の行列の値は 0 から 1 の範囲ですが、再構築された画像の範囲はたとえば -0.2 から 0.4 です。
再構成された画像は元の画像と似ていますが、画像内のデータの縮尺が異なるだけです。
これは私が意味するサンプルコードです。
matlab - MATLAB でのフィルター処理された逆投影とフィルターの設計
逆ラドン変換 (iradon) を計算するために独自の MATLAB コードを作成しようとしていますが、これまでのところ、ランプ フィルター、ハミング ウィンドウ、および空間での 1D 投影の畳み込みを使用して画像を正常に再構築することができました。 Kak と Shakey の教科書に基づいて、コードにウィンドウ h を含むドメインを作成しました。ただし、ウィンドウ h の FFT を取得し、それを 1D 投影の FFT で乗算すると、同じ再構成を取得できるはずだと思います。残念ながら、私が得るのは混乱です。
= myfbp4('conv') または myfbp4('filter') を実行するだけで、異なる結果が表示されます。畳み込みは正常に機能しているように見えますが、フィルタリングのアプローチは期待どおりに機能していません。
誰でも問題を見ることができますか?(余分なコードがある場合は申し訳ありません。ほとんどを切り取ろうとしました...このコードはどこかから借りて少し変更したことも言及する必要がありますが、どこで見つけたか覚えていません)。
前もって感謝します
編集:問題は解決しました。問題は、周波数ウィンドウを取得するためにウィンドウ h のフーリエ変換の絶対値を取得していなかったことです。これを見つけた人は、hfft = abs(fft(h,N)) を hfft = fft(h, N) に置き換える必要があります。
matlab - 解析式からファントム サイノグラムを直接作成する方法は?
シミュレートされたファントム サイノグラムを作成するには、最初に 2 次元デジタル画像を作成するのが一般的です。
次に、 rand() 変換を適用します
しかし、ファントム画像は解析的な表現を持っているので、その解析的な表現、つまりアナログ画像を直接ラドン変換した方が平行投影をより正確にシミュレートできます。
Matlabで可能ですか?