2017-02-25 59 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