
先前用PIL中的Image去剪切图片,发现对于大的图片切不了,所以考虑用skimage的IO口模块。
from skimage import io
def cut_image(img):
width_part = 2 #图片宽度要分割的份数
height_part = 3 #图片高度要分割的份数
index = 2 #保存图片名字序号开始
height = img.shape[0]
width = img.shape[1]
item_width = int(width / width_part)
item_height = int(height / height_part)
for j in range(0, height_part):
for i in range(0, width_part):
image = img[j * item_height: (j + 1) * item_height, i * item_width: (i + 1) * item_width]
print((j * item_height, (j + 1) * item_height, i * item_width, (i + 1) * item_width))
io.imsave('F:/' + str(index) + '.tif', image) #保存路径和图片序号和格式(’.tif‘、‘.jpg’、‘.png’)
index = index + 1 #图片序号
if __name__ == '__main__':
file_path = 'F:/0.tif' #源图片路径
img = io.imread(file_path)
cut_image(img)
print('done')
# # io.imshow(img)
# print(type(img)) #显示类型
# print(img.shape) #显示尺寸
# print(img.shape[0]) #图片高度
# print(img.shape[1]) #图片宽度
# # print(img.shape[2]) #图片通道数
# print(img.size) #显示总像素个数
# print(img.max()) #最大像素值
# print(img.min()) #最小像素值
# print(img.mean()) #像素平均值
# print('done')
img[0:height,0:width] 意思:
|(0,0)——————————————————
| | (height)
|________________|
| (width)
也可以自定义要剪切的区域,修改相应的程序即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)