调整图像的n维数组大小

时间:2019-03-26 02:47:01

标签: python c++ numpy opencv image-processing

我正在处理不同大小的面部裁切,这些裁切是在从视频推断时生成的。每帧的面部裁切数量可以变化。假设我有n = 3个(127,321,3), (119,258,3), (135,127,3)大小的面部作物。我需要将它们的大小一次调整为新的大小(new_w,new_h,3)。调整大小通常会降低采样率。如果某些农作物需要上采样怎么办?

我当前正在循环使用opencv调整大小功能,但是我需要实时进行(< 10 ms)。我试图将图像转换为numpy数组,并将其调整为numpy数组,但是它扭曲了图像。我也尝试过创建进程池,但是它占用了太多我无法负担的资源,因为我的内存中还装有一个深度学习网络。

new_w, new_h = 112, 112 #  new shape we need to resize images to
crops_batch = [[...],[...],[...]] # contains 3 images
resized_crops = [len(crops_batch),3,new_w,new_h]

for i in range(0, len(crops_batch)):
    temp_img = crops_batch[i] 
    resized_img = cv2.resize(temp_img, (new_h, new_w))
    resized_img = np.transpose(resized_img , (2,0,1)) # channels, width, height 
    resized_crops[i,:,:,:] = resized_img

我的目标是使用批处理来获得resized_crops形状为(n,3,new_w,new_h)的数组,因为我每秒必须处理数百种作物。 **编辑:**如果所有face_crops已经都相同大小怎么办?那我们该如何批量调整大小? **编辑2:**我愿意使用C ++解决方案来帮助调整批量大小。

0 个答案:

没有答案