python切割图片

  因为想搭建CNN网络来识别不规则异常纹理(缺陷),直接使用原图512*512准确度不高,便想了一下能否将图像分割成小块让缺陷占图像面积更大、更明显,以提高识别的准确度。

#将图像切成小块 便于训练提高准确度

from PIL import Image
import os

#图像切割 分割成 block*block 块小图像
def cut_image(image, block=8):
    width, height = image.size
    item_width = int(width / block)
    box_list = []
    for i in range(0,block):
        for j in range(0,block):
            #small_img(left,upper,right,lower)
            box = (j*item_width, i*item_width, (j+1)*item_width, (i+1)*item_width)
            box_list.append(box)

    image_list = [image.crop(box) for box in box_list]
    return image_list

#图像保存
def save_images(image_list, image_name, file_name):
    index = 0
    image_name += '_'
    for image in image_list:
        image.save(file_name+image_name+str(index)+.png, PNG)
        index += 1

file_path = ./data/Class1/Train/
file_list = os.listdir(file_path)
file_list.pop()
for f in file_list:
    img = Image.open(file_path+f)
    img_list = cut_image(img, 8)
    f = f[:-4]
    save_images(img_list, f, ./data/small_Img/)

2020-03-29 21:23:24 星期日

点赞

发表评论