代码之家  ›  专栏  ›  技术社区  ›  singa1994

在python中调整图像大小并合并数据集

  •  0
  • singa1994  · 技术社区  · 6 年前

    我有两个数据集,images1和images2(在下面的函数中生成,通过给定路径在循环中读取图像)

    def measure(images1,path):
          images2=[]
          for filename in glob.glob(path): #looking for pngs
              temp = cv2.imread(filename).astype(float)
              images2.append (augm_img)
    
              print(np.array(images2).dtype)
              print(np.array(images).dtype)
    
              print(np.array(images2).shape)
              print(np.array(images).shape)
    

    打印输出:

      float64
      float64
    
        (1, 24, 24, 3)
    (60000, 32, 32, 3)
    (2, 24, 24, 3)
    (60000, 32, 32, 3)
    (3, 24, 24, 3)
    (60000, 32, 32, 3)
    (4, 24, 24, 3)
    (60000, 32, 32, 3)
           ....
           ....
    
    etc
    

    从路径读取图像后,我想调整大小 图像2 从文件读取到与相同的大小 图像 (:,32,32,3)

    并将这两个数据集合并为一个(通过concatenate或append?) 为了训练我的模特。

    到目前为止,我还找不到一种方法来做这件事,所以任何建议都会有帮助。

    1 回复  |  直到 6 年前
        1
  •  0
  •   singa1994    6 年前

    我找到了解决方案:

    def resize_images(image_arrays, size=[32, 32]):
    # convert float type to integer
    image_arrays = (image_arrays * 255).astype('uint8')
    
    resized_image_arrays = np.zeros([image_arrays.shape[0]] + size + [3])
    for i, image_array in enumerate(image_arrays):
        image = Image.fromarray(image_array)
        resized_image = image.resize(size=size, resample=Image.ANTIALIAS)
    
    
        resized_image_arrays[i] = resized_image
    
    
    return resized_image_arrays
    

    通过调用此函数,图像将按特定大小调整大小。