मेरे पास एक मस्तिष्क की 3 डी छवि है (चलिए इसे फ्लैश कहते हैं) और वर्तमान में यह 263 x 256 x 185 है। मैं इसे किसी अन्य छवि का आकार बदलने के लिए आकार बदलना चाहता हूं (इसे पूरा_ब्रेन_ब्रावो कहते हैं) ; 256 x 256 x 176, और (उम्मीद है) अनुकरण करने के लिए एक लांज़ोस इंटरपोलेशन का उपयोग करें (Image.ANTIALIAS)। मेरा (असफल) प्रयास:एक 3 डी छवि (और resampling) का आकार बदलना
from scipy import ndimage as nd
import nibabel as nib
import numpy as np
a = nib.load('flash.hdr') # nib is what I use to load the images
b = nib.load('whole_brain_bravo.hdr')
flash = a.get_data() # Access data as array (in this case memmap)
whole = b.get_data()
downed = nd.interpolation.zoom(flash, zoom=b.shape) # This obviously doesn't work
क्या आपने कभी 3 डी छवि पर इस तरह की चीज की है?
यह वास्तव में अच्छा धन्यवाद है। क्या आप यह भी जान लेंगे कि किसी भी मौके से कैसे हटाना है? – elefun
यही 'np.interpolation.zoom'' फ्लैश' से 'डाउनड' उत्पन्न करने के लिए करता है! आप 'ऑर्डर =' पैरामीटर के माध्यम से उपयोग किए जाने वाले स्पलीन इंटरपोलेशन के क्रम को बदल सकते हैं (मुझे numpy/scipy में लांज़ोस इंटरपोलेशन के किसी भी कार्यान्वयन के बारे में पता नहीं है)। –
आह, मैं देखता हूं कि आपका क्या मतलब है। मैं उम्मीद कर रहा था कि मैं लांज़ोस का उपयोग कर सकता हूं। हालांकि यह एक सौदा का बड़ा नहीं है। और हाँ lanczos पायथन इमेजिंग पुस्तकालय में लागू किया गया है; Image.ANTIALIAS वास्तव में सी में लिखे गए 3-लोब लैंक्सोज़ हैं (प्रलेखन के अनुसार) – elefun