在Python中,您可以使用不同的库来调整图片的尺寸,例如`PIL`(Python Imaging Library)或`OpenCV`。以下是使用`OpenCV`调整图片尺寸的示例代码:
import cv2
def resize_image(image, height, width):
获取图像尺寸
h, w, _ = image.shape
对于长宽不相等的图片,找到最长的一边
longest_edge = max(h, w)
计算短边需要增加多少像素宽度使其与长边等长
if h < longest_edge:
dh = longest_edge - h
top = dh // 2
bottom = dh - top
elif w < longest_edge:
dw = longest_edge - w
left = dw // 2
right = dw - left
else:
pass
使用cv2.copyMakeBorder给图像增加边界,使图片长宽等长
cv2.BORDER_CONSTANT指定边界颜色,value为黑色
constant = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(0, 0, 0))
调整图像大小并返回
return cv2.resize(constant, (height, width))
读取原始图片
img = cv2.imread('image.jpg')
设置新的尺寸
new_size = (800, 600)
调整图片尺寸
resized_img = resize_image(img, new_size, new_size)
保存调整后的图片
cv2.imwrite('resized_image.jpg', resized_img)
这段代码定义了一个名为`resize_image`的函数,它接受一个图像和期望的宽度和高度作为参数,然后返回一个调整尺寸后的新图像。在调整大小时,如果原始图像的长宽不等,函数会在较短的一边添加黑色边框,使其与较长的一边等长。
如果您需要旋转图片,可以使用`cv2.rotate`函数,并设置`reshape=True`参数以保持图像完全包含在输出中。