在深度学习的模型训练中,经常需要将模型裁剪成模型要求的输入尺寸。本文介绍了如何将一个矩形的图像裁剪成指定尺寸的正方形图像。
import cv2
import os
def cut_images(origin_image, image_size):
"""
图像裁剪:将图像裁剪成固定尺寸的大小作为模型的输入。
(1)先将图象resize成短边和image_size一致,然后再从中间截取图像。
(2)此处只考虑了长宽相等的情况,因此image_size只是一个数值。
:return 裁剪后的image数组。
"""
# origin_image = cv2.imread(origin_image_path)
height, width = origin_image.shape[0], origin_image.shape[1]
if height <= width:
new_height = image_size
new_width = int(width/height * image_size)
# 注意:imread()返回的是(height,width), resize的参数是(width,height)
origin_image = cv2.resize(origin_image, (new_width, new_height)