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()
目录
相关文章
|
3月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
98 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
19天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
42 3
|
2月前
|
存储 JSON API
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
54 7
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
|
3月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
133 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
3月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
110 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
2月前
|
JSON API 数据格式
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
52 0
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
|
4月前
|
机器学习/深度学习 人工智能 TensorFlow
利用Python和TensorFlow实现简单图像识别
【8月更文挑战第31天】在这篇文章中,我们将一起踏上一段探索人工智能世界的奇妙之旅。正如甘地所言:“你必须成为你希望在世界上看到的改变。” 通过实践,我们不仅将学习如何使用Python和TensorFlow构建一个简单的图像识别模型,而且还将探索如何通过这个模型理解世界。文章以通俗易懂的方式,逐步引导读者从基础到高级,体验从编码到识别的整个过程,让每个人都能在AI的世界中看到自己的倒影。
|
4月前
|
机器学习/深度学习 自动驾驶 计算机视觉
使用Python实现简单的图像识别
【8月更文挑战第31天】在本文中,我们将探索如何使用Python语言和其强大的库来创建一个简单的图像识别系统。通过逐步指导,我们将了解如何准备图像数据,选择和训练模型,以及评估我们的成果。无论你是机器学习的初学者还是希望扩展你的技能集,这篇文章都将为你提供实用的知识和代码示例。
|
4月前
|
机器学习/深度学习 人工智能 算法框架/工具
使用Python构建简单神经网络进行图像识别
【8月更文挑战第31天】在本文中,我们将探索如何利用Python编程语言和深度学习框架Keras来搭建一个简单的神经网络模型。通过这个模型,我们能够实现基础的图像识别功能。文章将引导读者了解神经网络的基本概念,手把手教学如何准备数据集、构建网络结构、训练模型以及评估结果。最终,我们将看到即使是简单的神经网络也能在处理图像识别任务时展现出惊人的能力。
WK
|
4月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
如何使用Python识别图像?
在Python中识别图像涉及计算机视觉和图像处理技术。常用库包括OpenCV,用于基础图像处理和计算机视觉任务;Pillow则适用于基本图像操作。对于复杂图像识别,如对象检测和分类,可采用TensorFlow等深度学习框架。首先,通过`pip install opencv-python`安装OpenCV,然后使用其读取、显示图像及转换颜色空间等功能。
WK
47 0