使用scipy处理图片——任意比例缩放

大纲

《使用numpy处理图片------缩放图片》一文中,我们每2个取1个像素来达到图像缩小的效果。这就要求缩小的比例只能是整数倍,而不能支持缩小到0.3倍或者放大到1.5倍这样的效果。

为了支持任意倍数的缩放功能,我们需要使用scipy的zoom方法。

先看下原图

python 复制代码
import numpy as np
from PIL import Image
import scipy.ndimage as ndimage

img = Image.open('lena.png')
data = np.array(img)

缩小

下面的代码是对第一、二轴都缩小到原来的0.3倍,而第三轴是颜色,不做任何变化。

python 复制代码
img03 = ndimage.zoom(data, zoom=(0.3, 0.3, 1))
Image.fromarray(img03).save('zoom03.png')

放大

下面的代码是对第一、二轴都放大到原来的1.5倍,而第三轴是颜色,不做任何变化。

python 复制代码
img15 = ndimage.zoom(data, zoom=(1.5, 1.5, 1))
Image.fromarray(img15).save('zoom15.png')

代码地址

https://github.com/f304646673/scipy-ndimage-example/tree/main/zoom

相关推荐
Py巡航机1 个月前
Scipy||第三章 线性代数 (scipy.linalg)
python·线性代数·scipy
IT毕设梦工厂1 个月前
计算机毕业设计选题推荐-猫眼电影数据可视化分析-Python爬虫-k-means算法
python·django·毕业设计·源码·课程设计·scipy·k-means
杰哥在此2 个月前
Python面试题:利用Python技术,如何使用SciPy进行科学计算与数值分析
开发语言·python·面试·编程·scipy
Yan-英杰2 个月前
【BUG】已解决:ERROR: No matching distribution found for PIL
开发语言·人工智能·python·bug·numpy·pip·scipy
Yan-英杰2 个月前
【BUG】已解决:IndexError: positional indexers are out-of-bounds
人工智能·bug·numpy·paddle·scipy
Yan-英杰2 个月前
【BUG】已解决:You are using pip version 10.0.1, however version 21.3.1 is available.
开发语言·人工智能·bug·pip·scipy
Mr_LeeCZ2 个月前
结合金融场景的Scipy模块编程
金融·scipy
高斯小哥3 个月前
【Python】一文详细向您介绍 scipy.cluster.vq.kmeans() 的原理、常见用法和使用场景举例等
python·kmeans·scipy