8.進行圖片的裁剪,同時使用resize將圖片的維度進行變化


1.img.crop((x1, y1, x2, y2)) 進行圖片的裁剪

 參數說明: x1, y1, x2, y2 表示圖片的大小

2. img.resize((w, h)) # 進行圖片的維度變化

參數說明:(w, h) 表示變換以后的圖片的大小

代碼說明:創建一個新的文件,對每張圖片進行1/4 - 3/4進行裁剪, 對裁剪以后的圖片進行圖片維度的變化

第一步:進行文件,然后創建一個文件用於進行存儲,如果不存在,就使用os.mkdir 進行創建

第二步:使用img.crop() 進行圖片的裁剪,使用img.resize() 進行圖片的尺度變換,img.save(path) 進行圖片的保存

# -*- coding: utf-8 -*-
''' 
Created on 2019/7/5/0005 9:33
    
@Author : Sheng1994
 '''


import os
from PIL import Image


def crop_from_image(src_file, dec_file, crop_size):
    img = Image.open(src_file)  # 圖片打開
    img_width, img_height = img.size # 圖片的尺度
    x_start = int(img_width / 4)  # 進行圖片的裁剪
    y_start = int(img_height / 4)
    x_move = x_start + int(img_width / 2)
    y_move = y_start + int(img_height / 2)
    box = (x_start, y_start, x_move, y_move)
    img_crop = img.crop(box)
    img_resize_crop = img_crop.resize(crop_size) # 進行尺度的變化
    img_resize_crop.save(dec_file) # 進行圖片的保存



def folder_for_crop(db_folder, result_folder, crop_size):
    number = 0
    if not os.path.exists(result_folder):
        os.mkdir(result_folder)
    # 第一步:進行文件的讀入
    for people_folder in os.listdir(db_folder):
        number += 1
        src_people_path = db_folder + os.sep + people_folder
        dec_people_path = result_folder + os.sep + people_folder
        if not os.path.exists(dec_people_path):
            os.mkdir(dec_people_path)
        count = 0
        step = 0
        for vedio_folder in os.listdir(src_people_path):
            step += 1
            src_vedio_folder = src_people_path + os.sep + vedio_folder
            dec_vedio_folder = dec_people_path + os.sep + vedio_folder
            if not os.path.exists(dec_vedio_folder):
                os.mkdir(dec_vedio_folder)
            for img_file in os.listdir(src_vedio_folder):
                count += 1
                src_img_folder = src_vedio_folder + os.sep + img_file
                dec_img_folder = dec_vedio_folder + os.sep + img_file
                # 第二步:進行圖片的裁剪操作
                crop_from_image(src_img_folder, dec_img_folder, crop_size)



def run():
     db_folder = 'image\\origin'
     result_folder = 'image\\result'
     folder_for_crop(db_folder, result_folder, (47, 55))

if __name__ == '__main__':
     run()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM