python 批量图片拆分
扫描仪扫出来的A3的图片需要处理拆成2个A4的图片,用这个py处理一下
# -*- encoding: utf-8 -*- """ # @Time : 2020-04-03 11:04 # @Author : bootloader # @Site : # @File : 图片切割为原宽度2分之1的2张图片.py # @Software: PyCharm """ import os import time import cv2 import numpy as np # ---------------------------------------------------------------------------------------------------------------- # --脚本所支持的文件扩展名 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 not os.path.exists(out_dir): 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--") # ----------------------------------------------------------------------------------------------------------------
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库