python神经网络自用笔记

直接按照书中的教程将代码输进去后会得到:imread is deprecated in SciPy 1.0.0, and will be removed in 1.2.0. Use imageio.imread instead.
如果直接将imread换成所说的imgeio.imread会显示库里面没有该函数

如果导入imrage函数所在的库之后import imageio再运行程序仍发现无法运行
会显示ValueError: Could not find a format to read the specified file in mode ‘i‘

对于读取图片一般用如下三种方式操作:
方式一:
import scipy.misc
img=scipy.misc.imread(’*.jpg’)
(注释:由于scipy.misc要被裁掉,所以引用第二种方式进行图片的读取)

方式二:
import imageio
img=imageio.imread(’*.jpg’)
(引用第二种图片读取方式时报错:ValueError: Could not find a format to read the specified file in mode ‘i’,改为第三种方式读取图片)

方式三:
import Image
img=Image.open(’*.jpg’)
(引用第三种方式读取图片,报错:AttributeError: ‘JpegImageFile’ object has no attribute ‘shape’,将图片转换为数组类型)
img=np.array(img)

可是按照方式三会显示没有image
在这里插入图片描述
目前没有找到这种方法的解决办法。

但是在方法二的基础上,有人提出了两种解决办法:
方法一:
可尝试加个plugin

image = io.imread(filename,plugin='matplotlib')

方法二:
加个pilmode

imageio.imread(filename,pilmode="RGB")

但是这两种方法我均尝试失败,于是我检查了我准备读取的图片,发现它已经损坏
我重新调整了待读取的图片后,尝试在imageio.imread函数中直接使用待读取的文件名,而不是给函数一个变量,发现可以读取该图片了
所以我在上述两种方法上再总结两个我自己的方法:
方法三:
检查待读取图片是否已经损坏,如果已经损坏那么用啥函数都是没卵用!
方法四:
在使用imageio.imread函数的时候要导入相应的imageio的库,然后在与使用scipy.misc.imread不同,image.imread函数变量中直接填文件的路径名称即可(好像也就是不用提前open读取后存入句柄中)
然后我又遇到了一个问题,在读取图片后无法将其按照784的矩阵充足,显示:

cannot reshape array of size 2352 into shape (784,)

查找之后发现直接读取的图片是RGB格式,有三个通道,而教程所用程序只是处理灰度图像,即只有一个通道,所以读取图片后还需进行一个操作:

img_array = img_array[:,:,0]

将RGB图像转换为灰度图像

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值