【问题标题】:Resizing ndarray of images efficiently有效地调整图像的ndarray
【发布时间】:2017-03-05 06:03:42
【问题描述】:

我有一个包含 100 个彩色图像的 ndarray I,其中 I.shape 是:(100,1,3,100,200)

这会调整单个图像的大小:i=cv2.resize(i,(10,25)),但是调整I 中所有图像大小的有效方法是什么,使得ndarray 形状变为:(100,1,3,10,25)

【问题讨论】:

  • 看看here
  • @HishamKaram 感谢Hisham。您能否尝试为我的问题编辑该代码?我做不到。

标签: python opencv resize


【解决方案1】:

这是一个使用来自ndimagezoom 函数的命题。在我的电脑上调整大小大约需要 69 毫秒:

import numpy as np
I=np.random.randint(0,255,size=(100,1,3,100,200),dtype=np.uint8)

from scipy.ndimage.interpolation import zoom
I2=zoom(I,zoom=(1,1,1,1./10,1./8),order=1)

【讨论】:

  • 这是一个简洁的解决方案。它应该是:“1./10.,1./8”。尽管。谢谢。
  • 哦,对了,对不起!现在应该适用于 python2 和 3。
  • 当我在深度学习应用程序中使用 50 万张图像时,这效率低下 :( 如果你有一些提示可以加快或瘫痪它,我希望你。比你。
  • @HeshamEraqi 您能否更准确地了解高效对您意味着什么? 50 万张 100x200 8 位 RGB 图像是 30 GB 的数据,计算量很大,需要大量内存。但就效率而言,我真的不确定你在追求什么......从我的笔记本电脑上的测试来看,调整 20K 图片(1.2GB)的大小大约需要 12.5 秒,所以你的 0.5M 需要大约 5 分钟来处理,是这对你来说还不够快?
  • @HeshamEraqi 实际上代码是在 69 毫秒内调整 一个 100 个图像的大小,因此调整 50 万个图像需要 5 或 6 分钟
猜你喜欢
  • 1970-01-01
  • 2019-04-04
  • 2012-08-28
  • 2011-03-08
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2019-02-25
  • 1970-01-01
相关资源
最近更新 更多