自动裁剪图像—学习笔记

文章目录

    • 方法1
    • 方法2
    • 参考资料

方法1

from PIL import Image
import numpy as np

image=Image.open('2.png')
image.load()

image_data = np.asarray(image)
image_data_bw = image_data.min(axis=2)
non_empty_columns = np.where(image_data_bw.max(axis=0)>0)[0]
non_empty_rows = np.where(image_data_bw.max(axis=1)>0)[0]
cropBox = (min(non_empty_rows), max(non_empty_rows), min(non_empty_columns), max(non_empty_columns))

image_data_new = image_data[cropBox[0]:cropBox[1]+1, cropBox[2]:cropBox[3]+1 , :]

new_image = Image.fromarray(image_data_new)
new_image.save('2_cropped.png')

方法2

def img_crop(image, crop_pixel=5):
    choice = np.where(image[:,:,3] != 0)
    crop_box = (min(choice[0]), max(choice[0]), min(choice[1]), max(choice[1]))
    img_new = image[max(crop_box[0]-crop_pixel, 0):min(crop_box[1]+1+crop_pixel,image.shape[0]),
              max(crop_box[2]-crop_pixel,0):min(crop_box[3]+1+crop_pixel,image.shape[1]), :]
    return img_new

参考资料

使用python / PIL自动裁剪图像
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
python-opencv识别蜜蜂并截取
python 识别图像主题并切割
python使用PIL自动裁剪图像
Python返回数组不为0位置,并组合起来

你可能感兴趣的:(自动裁剪图像—学习笔记)