python - 如何在 python(scikit、numpy、pill)中缩放(重新缩放)图像?
问题描述
我需要将图像放大 6 倍。但我使用了一些代码,它只能放大 1.5 倍。我还能用什么?因为如果我从 1.5 更改为 6,代码将不起作用。
from skimage.io import imread, imsave
from skimage.transform import rescale
from skimage import transform
img = imread('C:/abc.png')
imsave('img.png', img)
image_res = transform.rescale(crop, scale=1.5)
imsave('image_res.png', image_res)
解决方案
我会使用枕头,但不要使用调整大小的方法,而是使用裁剪方法
您需要做一些数学运算才能知道在哪里裁剪图像,因为 Pillow 没有最终分辨率,裁剪需要一个 4 值元组(fromX,fromY,toX,toY)
它应该是这样的:
from PIL import Image
img = Image.open("filepath")
img.save("img.png","PNG")
zoom = 5
image_res = img.crop((((img.size[0]/2)-img.size[0]/(zoom*2)),((img.size[1]/2)-img.size[1]/(zoom*2)),((img.size[0]/2)+img.size[0]/(zoom*2)),((img.size[1]/2)+img.size[1]/(zoom*2))))
image_res.save("image_res.png","PNG")
如果您希望最终图像具有与原始图像相同的分辨率,只需在调整大小方法中使用它
from PIL import Image
img = Image.open("filepath")
img.save("img.png","PNG")
zoom = 5
image_res = img.resize((img.size[0],img.size[1]),box=(((img.size[0]/2)-img.size[0]/(zoom*2)),((img.size[1]/2)-img.size[1]/(zoom*2)),((img.size[0]/2)+img.size[0]/(zoom*2)),((img.size[1]/2)+img.size[1]/(zoom*2))))
image_res.save("image_res.png","PNG")
推荐阅读
- mysql - 如何在 mongo db 中创建父子模式并检索数据
- python - 张量流概率 - MCMC - 转换内核中双射器的问题?
- youtube-api - Magento 2 youtube 视频配额超出
- json - 如何在 XQUERY Marklogic 中获取 json doc 的每个字段?
- linux - Apache 403 随处可见 XAMPP Linux
- sql - 为什么我在 Data Studio 中收到 CASE 错误?
- javascript - 使用异步 API 调用在 createContext 上设置数据
- c - 使用strtok在c中拆分字符串
- wpf - VS 2019 转到定义在 XAML WPF 中不起作用
- jquery - JQuery - 删除动态附加的表