首页 > 编程语言 > 详细

python 批量图片拆分

时间:2020-04-01 20:06:13      阅读:70      评论:0      收藏:0      [点我收藏+]
import sys,os
import cv2
import numpy as np
import time
#---------------------------------------------------------------------------------------------
#--脚本所支持的文件扩展名
supExpName = ["jpg","png"]

countNum = 0  #--处理图片计数

print("该脚本将脚本所在目录的所支持的图片拆分为宽度为原来1/2的两个图片")
print("--程序将在5s后自动执行--脚本执行需要使用 cv2库--")
print("--使用 pip install opencv-python 命令可以安装该库--")
print("Loading",end = "")
for i in range(10):
    print(".",end=‘‘,flush = True)
    time.sleep(0.5)


#---------------------------------------------------------------------------------------------
#--获取当前路径
in_dir = os.path.abspath(‘.‘) +"/"
#--设置输出路径
out_dir = os.path.abspath(‘.‘) + "/out_dir/"

#判断输出文件夹是否存在,若不存在则创建
if os.path.exists(out_dir) == False:
    os.mkdir("out_dir")
    print("创建输出目录")

#---------------------------------------------------------------------------------------------
#--打开图片
def cv_imread(in_pash):
    cv_img = cv2.imdecode(np.fromfile(in_pash, dtype=np.uint8), -1)  # -1表示cv2.IMREAD_UNCHANGED
    print(os.path.basename(in_pash) + "\t宽&高",cv_img.shape[1],cv_img.shape[0])
    return cv_img

#--保存图片
def cv_imwrite(out_path, img_mp):
    cv2.imencode(‘.png‘, img_mp)[1].tofile(out_path)
#---------------------------------------------------------------------------------------------
#--遍历 in_dir 路径下所有文件
for file_name in os.listdir(in_dir):
    extName = os.path.splitext(file_name)[-1][1:]  #--分离并截取扩展名
    extName = extName.lower()  #--将取得的扩展名转为小写

    #--判断文件是否为所支持的图片格式
    if extName in supExpName:
        countNum = countNum + 1;
        print("\n正在处理第 %d 张图片" %(countNum))
        img = cv_imread(in_dir + file_name)
        h,w,w2 = img.shape[0],img.shape[1],img.shape[1]//2
        # print(h,w,w2)

        # print(os.getcwd())  #--这个命令可以用来获取当前脚本所在目录--
        img_name = file_name.split(‘.‘)[0]

        cropped1 = img[0:int(h), 0:int(w2)]
        cropped2 = img[0:int(h), int(w2):int(w)]
        cv_imwrite(out_dir + img_name+"-1"+".png",cropped1)
        cv_imwrite(out_dir + img_name+"-2"+".png",cropped2)
        
print("--complete--")

python 批量图片拆分

原文:https://www.cnblogs.com/guyk/p/12614888.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!