使用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

相关推荐
拾贰_C2 天前
【python | pytorch | scipy】scipy scikit-learn库相互依赖?
pytorch·python·scipy
拾贰_C2 天前
【python | pytorch | warehouse】python库scipy与scikit-learn库不兼容?
pytorch·python·scipy
聊询QQ:688238868 天前
COMSOL 实现变压器二维模型电磁 - 流 - 热耦合仿真
scipy
背心2块钱包邮17 天前
第3节——differentiation rules(求导法则)
人工智能·python·matplotlib·scipy
咨询QQ6882388620 天前
自动泊车最优路径:MATLAB 与 RRT 算法及 Reeds 曲线的奇妙组合
scipy
猫头虎22 天前
如何解决pip install网络报错SSLError: TLSV1_ALERT_PROTOCOL_VERSION(OpenSSL过旧)问题
网络·python·scrapy·pycharm·beautifulsoup·pip·scipy
MoRanzhi12032 个月前
SciPy傅里叶变换与信号处理教程:数学原理与Python实现
python·机器学习·数学建模·数据分析·信号处理·傅里叶分析·scipy
小幸福5202 个月前
用Python实现自动化文章标题生成的最佳实践
scipy
万粉变现经纪人2 个月前
如何解决 pip install -r requirements.txt 无效可编辑项 ‘e .‘(-e 拼写错误)问题
开发语言·python·r语言·beautifulsoup·pandas·pip·scipy
10岁的博客2 个月前
PyCharm一键安装SciPy全攻略
ide·pycharm·scipy