OpenCV批量将图片分为16份或者N份并保存
代码部分
import cv2
import os
import numpy as np
import matplotlib.pyplot as plt
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.imshow(img_copy)
cv2.imwrite(new_path,img_copy)
print('Now recreate the picture {}'.format(new_name))
plt.show()
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)
结果显示