cut4picture

import cv2
import os
import os.path as osp
# 设置切割份数
cut_row = 2   # 行切割份数
cut_col = 2   # 列切割份数

# 读取图片
img_dirs = "/原图文件夹/picture2/"
save_dirs = "/切割图文件夹/cut_picture2/"
os.makedirs(save_dirs, exist_ok=True)
# 获取图片尺寸
for name in os.listdir(img_dirs):
    print("name:", name)
    Img_path = osp.join(img_dirs, name)
    img = cv2.imread(Img_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    #print("img:", img)
    file_name, extension = os.path.splitext(name)
    print(file_name)
    row, col, cha = img.shape
    print('row=', row)
    print('col=', col)
    print('cha=', cha)
    # 设置图片切割的步长及切割后图片的尺寸
    cutting_step_row = row/cut_row      # 行移动步长
    cutting_step_col = col/cut_col      # 列移动步长
    cutting_row = row/cut_row           # 裁剪图像的行数
    cutting_col = col/cut_col           # 裁剪图像的列数
    index = 1                           # 图片的命名序号
    # i代表行 j代表列
    # 四张图分别为左上,左下,右上,右下
    for i in range(cut_row):
        for j in range(cut_col):
            print('i=', i)
            print('j=', j)
            y0 = 0 + j * cutting_step_col            # 初始起始点列坐标 + 水平方向移动参数 * 列移动步长
            y1 = cutting_col + j * cutting_step_col  # 初始截至点列坐标 + 水平方向移动参数 * 列移动步长
            x0 = 0 + i * cutting_step_row            # 初始起始点横坐标 + 垂直方向移动参数 * 行移动步长
            x1 = cutting_row + i * cutting_step_row  # 初始截至点列坐标 + 垂直方向移动参数 * 行移动步长
            # 切割
            cropped = img[int(y0):int(y1), int(x0):int(x1)]
            cropped1 = cv2.resize(cropped, (1280, 960), interpolation=cv2.INTER_AREA)
            # 保存
            if index < 10:
                savegtsem_path = osp.join(save_dirs, file_name + str(index) + ".jpg")
                cv2.imwrite(savegtsem_path, cv2.cvtColor(cropped1, cv2.COLOR_BGR2RGB))
                index = index + 1
            elif index < 100:
                savegtsem_path = osp.join(save_dirs, file_name + str(index) + ".jpg")
                cv2.imwrite(savegtsem_path, cv2.cvtColor(cropped1, cv2.COLOR_BGR2RGB))
                index = index + 1
print("done!")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值