Python 批量处理图像尺寸

简介:
import os

from PIL import Image, ImageDraw, ImageFont


class ImageMerger():
    def __init__(self):
        self.font = ImageFont.truetype("font\\simhei.ttf", 18)

    def merge(self, src_img_path, des_width, des_height=None):
        if os.path.exists(src_img_path) is False:
            print("图片不存在", src_img_path)
            return
        src_im = Image.open(src_img_path)
        orate = src_im.width / src_im.height;
        width = des_width;
        height = des_height;
        if des_height is None:
            height = width / orate;
            height=int(height)
        #print(width, height)
        if src_im.width > src_im.height:
            re_width = width
            re_height = re_width / orate;
            re_width=int(re_width)
            re_height=int(re_height)
            src_im = src_im.resize((re_width, re_height),Image.ANTIALIAS)
        else:
            re_height = height;
            re_width = orate * re_height
            re_width = int(re_width)

            src_im = src_im.resize((re_width, re_height),Image.ANTIALIAS)
        #print("调整之后", src_im.width, src_im.height)
        des_im = Image.new('RGB', (width, height), 0xffffff)
        box = self.get_box_pos(width, height, src_im.width, src_im.height)
        #print("粘贴区域",box)
        des_im.paste(src_im, box)
        des_im.save(src_img_path)

    def get_box_pos(self, des_width, des_height, src_width, src_height):
        del_width = des_width - src_width
        del_height = des_height - src_height;
        x1 = del_width / 2;
        y1 = del_height / 2
        x2 = x1 + src_width;
        y2 = y1 + src_height;
        x1 = int(x1)
        y1 = int(y1)
        x2 = int(x2)
        y2 = int(y2)
        return (x1, y1, x2, y2)

import os

from pic_merger import ImageMerger


class BatchResize():
    def __init__(self):
        self.main_dir = "C://software//导数据//AllCarRacing"
        self.resizer = ImageMerger()

    def get_file_ex(self,path):
        try:
            return os.path.splitext(path)[1]
        except:
            return None;

    def resize(self):
        file_list = os.listdir(self.main_dir)
        for item in file_list:
            banner_dir = self.main_dir + "//" + item + "//banner"
            banner_imgs = os.listdir(banner_dir)
            for banner_img in banner_imgs:
                banner_img_path = banner_dir + "//" + banner_img;
                if self.get_file_ex(banner_img_path)!=".jpg":
                    continue;
                try:
                    self.resizer.merge(banner_img_path, 1000, 1000)
                except:
                    print("文件错误", banner_img_path)

            showpic_dir = self.main_dir + "//" + item + "//showpic"
            showpic_imgs = os.listdir(showpic_dir)
            for showpic_img in showpic_imgs:
                showpic_img_path = showpic_dir + "//" + showpic_img;

                try:
                    self.resizer.merge(showpic_img_path, 1000)
                except:
                    print("文件错误", showpic_img_path)


resizer = BatchResize()
resizer.resize()
目录
相关文章
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
763 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
816 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
1380 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
748 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
909 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
存储 JSON API
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
1133 7
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
878 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
455 3
|
JSON API 数据格式
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
|
机器学习/深度学习 自动驾驶 计算机视觉
使用Python实现简单的图像识别
【8月更文挑战第31天】在本文中,我们将探索如何使用Python语言和其强大的库来创建一个简单的图像识别系统。通过逐步指导,我们将了解如何准备图像数据,选择和训练模型,以及评估我们的成果。无论你是机器学习的初学者还是希望扩展你的技能集,这篇文章都将为你提供实用的知识和代码示例。

推荐镜像

更多