python批量图像分割_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--")

# ----------------------------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值