最近在学习医学图像处理,需要对图片进行切片,因为图片太大,我的GPU和一般服务器都带不动,于是只能对图片进行切片。原来的图片是1000×1000的,切片后给我切成了256×256的。
代码如下:
import cv2
import os
path = './CoNSeP/Train/new_Images/'#文件原始路径,即1000×1000图片的路径
save_path = './CoNSeP/Train/Images_slices/'# 文件保存路径,即生成的256×256图片的保存路径
img_ids = sorted(os.listdir(path))#这样做是为了方便取出文件名
print(img_ids)
for filename in img_ids:
cols=256
rows=256
m = 0
img = cv2.imread(path+filename, 1) # 1为彩色图读入
sum_rows = img.shape[0]
sum_cols = img.shape[1]
# 如果文件夹不存在则自动创建一个文件夹
if not os.path.exists(save_path):
os.makedirs(save_path)
for i in range(int(sum_cols/cols)):
for j in range(int(sum_rows/rows)):
m += 1
cv2.imwrite(save_path+os.path.splitext(filename)[0]+"_"+str(m)+os.path.splitext(filename)[1],img[j*rows:(j+1)*rows,i*cols:(i+1)*cols,:])