以下为代码和个人的一些注释。一个没有注释的代码简直浪费别人生命去研究你写的是啥
import cv2
import numpy as np
import os
# 判断是否存在目标文件夹,不存在则创建
new_file_path = r'C:\Users\Aisin Gioro dong po\Desktop\train2'
if os.path.isdir(new_file_path):
pass
else:
os.makedirs(new_file_path)
img = cv2.imread(r'C:\Users\Aisin Gioro dong po\Desktop\train\2.tiff') # 读取图片
# 因为opencv读取的图片是BGR格式
# img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
# plt.imshow(cv2.cvtColor(img ,cv2.COLOR_BGR2RGB))
# plt.show()
# os.path.basename() 输出带后缀的最后一级目录,即“图片名称.后缀名”
basename = os.path.basename(r'C:\Users\Aisin Gioro dong po\Desktop\train\2.tiff')
# 裁剪块的大小512*512
patchsize = 512
# 裁剪的数量
num_patches = 10
# h,w分别代表原图像的高和宽;‘c’:接收图像通道数(没其他作用)
h, w, c = img.shape
for j in range(num_patches):
rr = np.random.randint(0, h - patchsize) # 代表随机生成一个整数:a<=随机数<=b
cc = np.random.randint(0, w - patchsize)
# 在原图片中切出一个新图片patchs并保存
patchs = img[rr:rr + patchsize, cc:cc + patchsize, :]
cv2.imwrite(
os.path.join(new_file_path, basename.split('.')[0] + '{}.png'.format(j)),
patchs)