2017-02-25 54 views
1

我有一個3D numpy數組,它是100個300x300圖像的堆棧。我想調整堆棧中的所有圖像的大小爲200x200。我試圖使用numpy調整大小功能:在Python中調整3D圖像堆棧的大小

import numpy as np 

img_stack_sm = np.resize(img_stack, (100, 200, 200)) 

...但這樣做擾亂了圖像(如圖所示)。這怎麼能一次完成呢?謝謝。

+0

numpy的調整隻是砍掉值。閱讀其文檔。你想要一個圖像大小調整插值新值或resamples。 – hpaulj

+0

你將如何調整一個圖像? – hpaulj

回答

3

我只是用一個在端部線圈和CV2:

import cv2 

width = 200 
height = 200 
img_stack_sm = np.zeros((len(img_stack), width, height)) 

for idx in range(len(img_stack)): 
    img = img_stack[idx, :, :] 
    img_sm = cv2.resize(img, (width, height), interpolation=cv2.INTER_CUBIC) 
    img_stack_sm[idx, :, :] = img_sm