为什么在使用TQM时,在调整图像大小时,处理时间会有很大的差异?

2024-09-27 16:20:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调整我在谷歌colab上的论文的图片大小。但是当我使用TQM和不使用TQM时,会有巨大的时差

以下是我使用TQM时的代码:

import glob
import os
from tqdm import tqdm
import math
from PIL import Image

new_width = 224
file = r'path\\*.jpeg'
images = glob.glob(file)
for i in tqdm(range(len(images))):
  for image in images:
    img = Image.open(image)
    width,height = img.size
    if width >= new_width:
      new = img.resize((224,224))
    else:
      new = img
    
    new.save('path'+os.path.basename(image))

以下是我不使用TQM的时候:

import glob 
import os
import math 
from PIL import Image

new_width = 224
file = r'path\\*.jpeg'
images = glob.glob(file)
for image in images:
  img = Image.open(image)
  width,height = img.size
  if width >= new_width:
    new = img.resize((224,224))
  else:
    new = img
    
  new.save('path\\'+os.path.basename(image))

tqdm的结果需要1个多小时,但当我不使用它时,只需要10秒。我的代码有什么问题


1条回答
网友
1楼 · 发布于 2024-09-27 16:20:19

在第一个代码中,您有两个嵌套循环,而不是一个循环,因此每个图像处理N次,而不是仅处理一次,其中N是图像的数量。总运行时间与N2而不是N成正比

您应该只使用tdqm()包装现有循环,而不是添加另一个循环:

images = glob.glob(file)
for image in tdqm(images):
    img = Image.open(image)

相关问题 更多 >

    热门问题