python将不定长宽比的图像调整到制定5922x3567的大小,并转为二值图像可以用空白填充
时间: 2024-01-21 12:20:02 浏览: 92
python-opencv获取二值图像轮廓及中心点坐标的代码
5星 · 资源好评率100%
可以使用Pillow库来实现图像调整大小和二值化,具体操作如下:
```python
from PIL import Image
# 打开原图像
img = Image.open("original_image.png")
# 调整图像大小并保持宽高比
width, height = img.size
if width > height:
new_width = 5922
new_height = int(height * (new_width / width))
else:
new_height = 3567
new_width = int(width * (new_height / height))
resized_img = img.resize((new_width, new_height), resample=Image.LANCZOS)
# 创建新的空白画布并将调整后的图像粘贴在中心位置
background = Image.new('RGB', (5922, 3567), (255, 255, 255))
x = int((5922 - new_width) / 2)
y = int((3567 - new_height) / 2)
background.paste(resized_img, (x, y))
# 将图像转为灰度图像并进行二值化
gray_img = background.convert('L')
binary_img = gray_img.point(lambda x: 0 if x < 128 else 255, '1')
# 保存处理后的图像
binary_img.save('processed_image.png')
```
在上面的代码中,我们首先打开原始图像,然后调整大小并保持宽高比。接下来,我们创建一个新的空白画布,并将调整后的图像粘贴在中心位置。最后,我们将图像转换为灰度图像并进行二值化。最终,我们保存处理后的图像。
阅读全文