图像处理代码1【改变格式、缩略图、切九宫格】

# -*- coding:utf-8 -*-
# Author:        I_am_Vic (PL Z)
# Product_name:  PyCharm
# File_name:     CV_Preprocess
# @Time:         10:01  2022/2/12

import os
import sys
from PIL import Image, TarIO


def Image_FormPreprocess_to_X(in_path="data/", X=".jpg"):  # 输入图片所在的
    """
    把所有图片格式
    :param in_path:
    :return:
    """
    fin = [fname for fname in os.listdir("data")]
    cur = 1
    for infile in fin:
        print(f'Preprocessing...    * {cur}/{len(fin)}')
        cur += 1
        f, e = os.path.splitext(infile)
        if e != '.tar':
            outfile = f + X
            if infile != outfile:
                try:
                    Image.open(in_path + infile).save(in_path + outfile)
                    print("DONE!For:", infile, "->", outfile)
                except Exception as R:
                    print(R, "filename: ", infile)


def Image_FormPreprocess_to_Thumbnail(in_path="data/", size=(224, 224)):
    """
    缩略图
    """
    fin = [fname for fname in os.listdir("data")]
    cur = 1
    for infile in fin:
        print(f'Preprocessing...    * {cur}/{len(fin)}')
        cur += 1
        f, e = os.path.splitext(infile)
        if e != '.tar':
            outfile = f + ".thumbnail"
            if infile != outfile:
                try:
                    im = Image.open(in_path + infile)
                    im.thumbanil(size)
                    im.save(outfile, "JPEG")
                    print("DONE!For:", infile, "->", outfile)
                except Exception as R:
                    print(R, "filename: ", infile)


def Image_SizePreprocess_CutN(in_path, num_p=3):
    """
    切成N^2分
    N = 3 时就是九宫格
    """
    img = Image.open(in_path)
    # img.resize(())
    size = img.size
    
    # 准备切分
    b = int(size[0] // num_p)
    h = int(size[1] // num_p)

   for i in range(num_p):
    for j in range(num_p):
        print(f"正在剪切图片位置{(i, j)}")
        box = (b * i, h * j, b * (i + 1), h * (j + 1))
        reg = img.crop(box)
        f, e = os.path.splitext(in_path)
        reg.save(f+f"CUT{i, j}"+e)
        print(f+f"CUT{i, j}"+e)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JamePrin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值