問題タブ [mri]
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.
python - Python 3.7 で NIFTI の画像スライス全体を変更する
私は実際に Python を使用して MRI 画像に取り組んでいます。画像形式は、x、y、または z 軸でスライスを視覚化する方法を取得した NIFTI 形式ですが、それぞれにソーベル フィルタリングを使用し、それらのスライスで新しい NIFTI 画像を作成する必要があります。
そのために:
- メインの .nii.gz イメージを読み込みます (img = nib.load(im_path))
- メインの .nii.gz イメージを新しい名前「img_sobel」(img_sobel = nib.load(im_path)) で再度読み込みます。
- スライスごとにループを作成する
- スライスのソーベル フィルタリング
- このスライスを img_sobel の対応するスライスに置き換えます ("img_sobel_data[:, :, sl] == np.hypot(sx, sy)")
- ループの後、img_sobel を「image_XXX_Sobel」という名前で保存します。
サブプロットを使用すると、各スライスでソーベル フィルタリングが機能することがわかりますが、「img_sobel_data[:, :, sl] == np.hypot(sx, sy)」という行が機能しないようです。なぜですか?
これが lopp セクションです:
どうしたの ?Python で画像スライスを別のスライスから置き換えることはできませんか? この問題を解決するためのトリックはありますか?
ありがとうございました !
編集:わかりました、なぜそんなに簡単にできないのか、もう少しわかりました:NIFTI画像のスライスを抽出し、それらをフィルタリングしましたが、NIFTI画像自体は変更していません!!! だから私の質問:img_sobel.get_fdata()から取得したNIFTIイメージを変更するにはどうすればよいですか?
python - Nibabel を介して Nifti をロードし、形状関数を使用する
nifti ファイル1.nii.gzがあります
今、私は nifti ファイルを扱ったことはありません。
それで、このソフトウェアを使用して開くだけで、nii.gz は2D 画像の 3 つの配列を含む一種のコンテナーであることがわかりました。実際、マウスをスクロールすると、図に 1 とラベル付けされた「方向」の 448 個の 2D 写真、「方向」2 の 448 個の 2D 写真、「方向」3 の 25 個の 2D 写真が表示されます。
この後、シェルを開き、このnii.gzをNibabelライブラリで使用しようとしました
しかし、私がタイプすると
結果として (448,448,25) が得られるので、この .nii.gz は 3D マトリックスであり、2D 画像の 3 つの配列を含むコンテナーではないようです。説明して頂けますか ?