Scipy.misc弃用imread改用imageio制作个性化词云经验分享

在尝试使用Scipy制作个性化词云时遇到问题,发现`imread`已被弃用。解决方案是安装并使用imageio库,通过`pip install imageio`或PyCharm设置安装。使用`imageio.imread`读取图片文件,然后在wordcloud中设置mask,但避免同时设置width和height,以保持正确图片大小。这样可以继续创建自己独特的词云图片。

刚学完wordcloud,想弄个有形状的词云玩玩,结果按照视频教学里from scipy.misc import imread,根本无法做出来,pycharm提示:cannot import name ‘imread’ from ‘scipy.misc’!!!
结果一查,原来imread已经被scipy弃用了,在scipy最新的1.4.1版本里,已经没有这个函数了!

怎么办?怎么办?怎么办?

改装imageio!!!
pip install imageio或者pycharm里在setting里安装这个库。
在程序里直接import imageio就可以了
打开文件用pic=imageio.imread(‘fname.txt’)

import jieba
import imageio
import wordcloud


f = open(r"C:\Users\lhioyrstg\Desktop\python study\1.txt")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)

pic=imageio.imread(r"C:\Users\lhioyrstg\Desktop\hhh3.jpg")


w = wordcloud.WordCloud(background_color="White", max_words=250, font_path='C:\Windows\Fonts\MSYH.TTC', stopwords=set("一种"),max_font_size=400,prefer_horizontal=0.8,mask=pic)
w.generate(txt)
w.to_file("DG3.png")

然后你就可以随便换图片,制作自己喜欢的个性词云图片了!!!
在这里插入图片描述

### `scipy.misc.imread` 和 `scipy.misc.imresize` 的使用方式及替代方案 在早期版本的 SciPy 中,`scipy.misc.imread` 和 `scipy.misc.imresize` 是用于图像读取和缩放的重要函数。然而,从 SciPy 1.0.0 版本开始,这两个函数已被用,并计划在 1.2.0 版本中完全移除[^3]。 #### `imread` 的使用与替代方案 `scipy.misc.imread` 用于将图像文件读取为 NumPy 数组,支持多种图像格式,例如 PNG、JPEG 等。其基本使用方式如下: ```python from scipy.misc import imread image = imread('example.jpg') ``` 由于该函数已被用,推荐使用 `imageio` 或 `Pillow`(即 `PIL` 的现代版本)替代: ```python import imageio image = imageio.imread('example.jpg') # 或使用 Pillow from PIL import Image import numpy as np image = np.array(Image.open('example.jpg')) ``` #### `imresize` 的使用与替代方案 `scipy.misc.imresize` 用于调整图像尺寸,支持多种插值方式,例如 `'nearest'`、`'bilinear'`、`'bicubic'` 等。其典型用法如下: ```python from scipy.misc import imresize resized_image = imresize(image, (128, 128), interp='bilinear') ``` 该函数也已被用,推荐使用 `Pillow` 或手动实现缩放功能。以下是一个兼容的替代实现: ```python import numpy as np from PIL import Image def imresize(arr, size, interp='bilinear'): im = Image.fromarray(arr) if isinstance(size, float): size = tuple((np.array(im.size) * size).astype(int)) elif isinstance(size, int): size = tuple((np.array(im.size) * size / 100.0).astype(int)) else: size = (size[1], size[0]) # PIL 使用 (width, height) resample = { 'nearest': Image.NEAREST, 'lanczos': Image.LANCZOS, 'bilinear': Image.BILINEAR, 'bicubic': Image.BICUBIC }[interp] im_resized = im.resize(size, resample=resample) return np.array(im_resized) # 使用示例 resized_image = imresize(image, (128, 128), interp='bicubic') ``` #### 兼容性与版本控制 若需继续使用 `imread` 和 `imresize`,可选择降级 SciPy 版本,例如安装 1.0.0 以下版本: ```bash pip install scipy==1.0.0 ``` 但需注意,Python 3.9 及以上版本可能无法兼容旧版 SciPy,因此建议优先使用替代库或自定义实现[^4]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值