OpenCV批量将图片分为16份或者N份并保存

OpenCV批量将图片分为16份或者N份并保存

代码部分

import cv2
import os
import numpy as np
import matplotlib.pyplot as plt
#将图像分成16分,并保存下来
def shuffle_to_randomscale(src_image,h,w,pic,scale):
    plt.figure()
    pic_name = pic.split('.jpg')[0]
    for i in range(scale):
        grid_h = h/scale
        for j in range(scale):
            grid_w = w/scale
            img_copy = src_image[int(grid_h)*j:int(grid_h)*(j+1),int(grid_w)*i:int(grid_w)*(i+1)]
            new_name = pic_name + '_' + str(i) + str(j) + '.jpg'
            new_path = os.path.join('New_Dataset',new_name)
            print('Now recreate the picture {}'.format(new_name))
            # plt.subplot(4,4,i*4+j+1)
            plt.imshow(img_copy)
            # if (i==3 and j==3):
            cv2.imwrite(new_path,img_copy)
            print('Now recreate the picture {}'.format(new_name))
    plt.show()

#获得所有图像并完成图像分割成16段的任务
def main(path,scale):
    pic_names = os.listdir(path)
    for pic in pic_names:
        pic_path = path + '/' + pic
        src_image = cv2.imread(pic_path)
        h,w,_ = src_image.shape
        shuffle_to_randomscale(src_image,h,w,pic,scale)

if __name__ == '__main__':
    #设置想要裁剪的尺度
    scale = 4
    path = 'Dataset'
    main(path,scale)

结果显示

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值