单张图像变换大小---使用img.resize(), cv2.resize(),img.thumbnail()函数

例如:
img.resize((width, height),Image.ANTIALIAS)
第一个参数:width,height, 表示设置传入图片的宽和高。
第二个参数:

  • Image.NEAREST :低质量
  • Image.BILINEAR:双线性
  • Image.BICUBIC :三次样条插值
  • Image.ANTIALIAS:高质量

上面是单张图片尺寸的改变,针对大量数据集图片,可以批量操作

from PIL import Image
import os.path
import glob
def convertjpg(jpgfile,outdir,width=1280,height=720):
    img=Image.open(jpgfile)   
    new_img=img.resize((width,height),Image.BILINEAR)   
    new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
for jpgfile in glob.glob("E:/test/picture/12/*.jpg"): #返回12文件夹下所有的jpg路径
    convertjpg(jpgfile,"E:/test/picture/111/") #返回的是111文件夹下下个文件的所有路径

还可以借助于cv

比如宽和高按照一定比例缩放

im_scale=1.5
cv2.resize(img, None, None, fx=im_scale, fy=im_scale, interpolation=cv2.INTER_LINEAR)

或者直接将原来图片缩放到(521,500)的尺寸

re_im = cv2.resize(img, (521, 500), interpolation=cv2.INTER_LINEAR)

还可使用下面方法读取图片:

from PIL import Image 
import numpy as np 
from os import listdir
from os.path import isfile, join 
from IPython.display import display 

imgList = [f for f in listdir("/home/xilinx/jupyter_notebooks/bnn/pictures/road_signs/") if isfile(join("/home/xilinx/jupyter_notebooks/bnn/pictures/road_signs/", f))] 
images = []   
for imgFile in imgList:    
	img = Image.open("/home/xilinx/jupyter_notebooks/bnn/pictures/road_signs/" + imgFile)    
	images.append(img)       
	img.thumbnail((64, 64), Image.ANTIALIAS)    
	display(img)
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值