Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中将正方形图像调整为带白色边框的矩形_Python_Image Processing_Python Imaging Library - Fatal编程技术网

如何在Python中将正方形图像调整为带白色边框的矩形

如何在Python中将正方形图像调整为带白色边框的矩形,python,image-processing,python-imaging-library,Python,Image Processing,Python Imaging Library,我有很多708x708图片,我需要将它们调整为500x250px,保持比例不变。我设想可以通过image.thumboil('image.jpg')将实际图像的大小调整为250x250,并添加两个白色边框来填充剩余的空间。然而,我不知道如何做后者。下面的代码给出了250x250px的缩略图 image = img img image.thumbnail((500, 250)) image.save('image_thumbnail.jpg') print(image.size) 问题类似于

我有很多708x708图片,我需要将它们调整为500x250px,保持比例不变。我设想可以通过
image.thumboil('image.jpg')
将实际图像的大小调整为250x250,并添加两个白色边框来填充剩余的空间。然而,我不知道如何做后者。下面的代码给出了250x250px的缩略图

image = img
img
image.thumbnail((500, 250))
image.save('image_thumbnail.jpg')

print(image.size) 
问题类似于

任何建议都将不胜感激

skiliage
包装中检查此项。有一个名为
mode
的参数,您可以在其中控制所需的行为。

尝试以下操作:

import cv2
import numpy as np

img = cv2.imread('myimage.jpg', cv2.IMREAD_UNCHANGED)

print('Original Dimensions : ',img.shape)

width = int(img.shape[1] * 35.31 / 100) # 250/708 is 35%
height = int(img.shape[0] * 35.31 / 100)
dim = (width, height)
resized_image = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)

print('Resized_image Dimensions : ',resized_image.shape)


row, col = resized_image.shape[:2]
bottom = resized_image[row-2:row, 0:col]

bordersize = 125
border = cv2.copyMakeBorder(
    resized_image,
    top=bordersize,
    bottom=bordersize,
    left=0,
    right=0,
    borderType=cv2.BORDER_CONSTANT,
    value=[255, 255, 255]
)

cv2.imshow('image', resized_image)
cv2.imshow('left', bottom)
cv2.imshow('right', border)
cv2.waitKey(0)
cv2.destroyAllWindows()

我尝试了下面的代码。我首先制作一个大小为(250250)的缩略图,并用
ImageOps修改图像。展开
添加两个白色边框以生成尺寸(250250)


您只是想调整它的大小还是同时添加白色边框?我想将图片的大小从708x708调整为250x250(缩略图),并在图片的顶部和底部添加白色边框,使其成为500x250。@Liri阅读了有关内容,代码只是调整了图像的方向,它不会按要求调整图像的大小。
from PIL import Image, ImageOps
img = Image.open('801595.jpg')
img.thumbnail((500, 250))
print(img.size)
img_with_border = ImageOps.expand(img, border = (125, 0) ,fill='white')
img_with_border.save('imaged-with-border2.jpg')