1 介绍
图像剪切在深度学习扩展训练数据集中有着非常广泛的用处。本文主要分享最近实现的图像批量剪切python源代码。希望对你有所帮助!
将裁剪之后的图像进行拼接的源代码:https://blog.csdn.net/u013419318/article/details/102805476
2 源代码
import os
import matplotlib.pyplot as plt
import cv2
import numpy as np
n = 1 # 拆分多少行?
m = 20 # 拆分多少列?
def divide_imgs(img_path, img_name, save_path):
'''
拆分图像
:param img_path:
:param img_name:
:param save_path:
:return:
'''
imgg = img_path + img_name
img = cv2.imread(imgg)
# img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
h = img.shape[0]
w = img.shape[1]
print('h={},w={},n={},m={}'.format(h, w, n, m))
dis_h = int(np.floor(h / n))
dis_w = int(np.floor(w / m))
num = 0
for i in range(n):
for j in range(m):
num += 1
print('i,j={}{}'.format(i, j))
sub = img[dis_h * i:dis_h * (i + 1), dis_w * j:dis_w * (j + 1), :]
save_imgs_path = save_path + '\\' + str(img_name.split('.')[0]) + '\\'
if not os.path.exists(save_imgs_path):
os.makedirs(save_imgs_path)
cv2.imwrite(save_imgs_path + str(img_name.split('.')[0]) + '_{}.png'.format(num), sub)
if __name__ == '__main__':
img_path = 'I:\\LONGBO\\ZXB_data\\test\\no_div\\'
save_path = 'I:\\LONGBO\\ZXB_data\\test\\div\\'
img_list = os.listdir(img_path)
for name in img_list:
print(name)
divide_imgs(img_path, name, save_path)
3 效果展示
待剪切图像:
剪切完成后每个原图对应一个文件夹:
剪切完成后单独文件夹的图像信息: