python用skimage的IO口剪切图片(.tif、.jpg、.png等)

python用skimage的IO口剪切图片(.tif、.jpg、.png等),第1张

先前用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)

也可以自定义要剪切的区域,修改相应的程序即可。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/885693.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-14
下一篇2022-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存