2016-07-05 4 views
2

私は3つのdicomスタックのサイズが512x512x133, 512x512x155 and 512x512x277です。私はすべてのスタックをresampleして、サイズを512x512x277, 512x512x277 and 512x512x277にしたいと思います。どうやってするか?データベース内のすべての画像を同じボクセルサイズに再サンプリング

スライスの太さとピクセル間隔を使ってリサンプリングを行うことができます。しかし、それはそれぞれのケースで同数のスライスを保証するものではありません。

+0

重複した質問はしないでください。あなたの質問が答えを得ていない場合は、質問を改善するか、少しだけ時間を与えてください。 – beaker

+0

実際、何が起こったのか、私は夜に質問を掲載しました。しかし、いくつかの不具合(かもしれない)のために、それは朝に表示されていませんでした。だから、私は再びそれを掲示した。 :(申し訳ありません! –

答えて

0

あなたは、このような各軸のズーム因子の配列を指定して、scipy.ndimage.interpolate.zoomを使用することができます。

# example for first image 
zoomArray = desiredshape.astype(float)/original.shape 
zoomed = scipy.ndimage.interpolate.zoom(original, zoomArray) 

はUPDATE:

ことが遅すぎる場合、あなたは別にイメージを作成するために何とかしようとすることができあなたの「イメージキューブ」の垂直スライスを作成し、高速イメージライブラリ(ImageMagickが好きな人や、PILやopencvなどもあります)を使ってそれらを処理し、それらを再びスタックします。そうすれば、512x133のサイズの画像を512枚撮り、512x277にサイズ変更してから、もう一度512x512x277にスタックして最終的に必要なサイズにします。また、この分離によって並列化が可能になります。これは、横軸(2D画像をスライスする軸)がリサイズされない場合にのみ機能します。

+0

desiredshapeには(512,512,277)が含まれていますか? –

+0

遅すぎます!/ –

+0

私は答えを更新しましたが、スピードを大幅に向上させるかどうかは疑問です。 – heltonbiker