python降低图片分辨率_使用numpy快速降低图像分辨率的Python代码
时间: 2024-02-06 11:04:00 浏览: 145
可以使用numpy和PIL库来快速降低图像分辨率,以下是示例代码:
```python
import numpy as np
from PIL import Image
def reduce_resolution(image_path, factor):
# 打开图像并转换为numpy数组
with Image.open(image_path) as img:
img_arr = np.array(img)
# 计算新图像的大小
new_shape = (img_arr.shape[0]//factor, img_arr.shape[1]//factor, img_arr.shape[2])
# 使用均值池化降低分辨率
new_arr = np.zeros(new_shape)
for i in range(new_shape[0]):
for j in range(new_shape[1]):
new_arr[i, j] = np.mean(img_arr[i*factor:(i+1)*factor, j*factor:(j+1)*factor], axis=(0,1))
# 将numpy数组转换回图像并保存
new_img = Image.fromarray(new_arr.astype(np.uint8))
new_img.save('new_image.jpg')
# 示例用法
reduce_resolution('image.jpg', 2) # 将图像分辨率降低为原来的一半
```
该函数将输入图像路径和降低因子作为参数,使用均值池化算法将图像分辨率降低到原来的因子倍。结果将保存为新的图像文件。
阅读全文