一、问题描述
在Spyder中,使用 matplotlib.pyplot 查看文件夹中一张图片
编写代码程序为:
import matplotlib.pyplot as plt
plt.figure("Sample") #打开一个图像窗口
img_path = "E:\\TotalTrain\\yirenzou100ns_0m_18041.png"
plt.imshow(img_path)
plt.axis('on') #显示坐标轴
plt.title('yirenzou100ns_0m_18041.png')
plt.show() #显示图片
但报错:TypeError: Image data of dtype <U40 cannot be converted to float,意思是无法把图像转换为float类型因此无法读取图像

二、解决方法
网上搜索解决的方法林林总总,下边列举一下,有成功有失败
兄弟们不妨都试一下§(* ̄▽ ̄*)§,因为虽然报错内容一致,但报错的原因可能不太一样啦~~~
2.1 刷新 (我不成功T_T)
Restart kernel,然后重新运行代码

2.2 检查路径
严格检查自己的路径是否正确,可以试着修改路径"E:\\TotalTrain\\yirenzou100ns_0m_18041.png"
(此路径为举例)为"E:/TotalTrain/yirenzou100ns_0m_18041.png"
如果依然报错,则不是路径问题(图中报错原因非路径问题)

2.3查看图片像素
如果使用matplotlib.image.imread读入图片时,图片像素过大,也会报告此错误
选择要查看的图片点击鼠标右键,选择属性,图中表示图片大小为227×227,因此不是图片像素过大的问题

2.4 将图片转化为数组
使用matplotlib.image读取图片,输出为一个数组;接着使用matplotlib相关函数便可显示图片
import matplotlib.pyplot as plt #plt显示图片
import matplotlib.image as mpimg #mpimg读取图片
img = mpimg.imread("E:\\TotalTrain\\yirenzou100ns_0m_18041.png")
#此时的img已是一个数组
img.shape #显示图片大小
plt.imshow(img) #显示图片
plt.axis('on') #显示坐标轴
plt.title('beijin100ns_1807.png')
plt.show()

本文档描述了在Spyder中使用matplotlib.pyplot显示图片时遇到的TypeError问题,以及尝试的多种解决方法,包括检查路径、确认图片大小和尝试将图片转化为数组。虽然部分方法未解决问题,但提供了可能的解决方案方向。
1万+

被折叠的 条评论
为什么被折叠?



