在做图像复原的相关工作中,由于数据集的缺失,我们通常需要将图片裁剪成比较小的crop。比如在做深度学习图像去噪的相关研究的时候,由于图像去噪不太关注整体的图像内容,所以可以先将大的图片裁剪成小的crop,以次来增加数据量。
具体代码如下:
import glob
import cv2
'''cut the img_1024*1024 into img_46*46,the sampling interval is 30'''
src_dir="C:\\Users\\ASUS\\Desktop\\src" #the scr_img 1024*1024
filepath=glob.glob(src_dir+'./*jpg') #return a list
count=0
for i in range(len(filepath)):
img_src= cv2.imread(filepath[i])
for x in range (0,(1024-46),30):
for y in range (0,(1024-46),30):
img_cut = img_src[x:x + 46, y:y + 46]
save_dir = "C:\\Users\\ASUS\\Desktop\\crop_46_46\\crop{}.jpg".format(count)
count += 1
cv2.imwrite(save_dir, img_cut)