版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/huanhuan_Coder/article/details/80877523
最近在跑孪生网络,最开始是用sorenbouma推荐的数据集,跑的还算顺利,但是当我导入自己收集的数据集时,总是会报错:ValueError: too many values to unpack (expected 4) 。
这种错误是指一个tuple值赋给一个tuple变量时,变量个数不够造成的。如:
,即我们传入的参数多于需要传入的参数。
在我的函数中需要传入
个参数,图片的种类数量,图片所在的文件夹,和一个图片的.pickle文件。前两个没有什么大问题,有问题的是第
个参数,最后我发现,该网络需要传入的是
的灰度图,即单通道的图像,虽然我在扫描收集的手写体的时候保存的格式是黑白格式,但是仍然是
通道的RGB图像,通道数增加,解压到.pickle中的数据量就变大,传入的参数自然就增多了。所以需要将RGB图像转换成灰度图,图片数量略大,我们用MATLAB处理。
代码及注释如下:
imgPath = 'C:\Users\刘欢\Desktop\images_evaluation\005\character04\'; % 图像库路径
imgDir = dir([imgPath '*.jpg']); % 遍历所有jpg格式文件
for i = 1:length(imgDir) % 遍历结构体
img = imread([imgPath imgDir(i).name]); %读取每张图片
imgGray=rgb2gray(img); %将RGB图片转化成灰度图像
imwrite(imgGray,[imgPath imgDir(i).name]); %保存灰度图像以指定名字至指定文件夹
end
处理结果:我们用一幅图来说明
- 处理前是
即
通道的RGB图像
- 处理后是
即
通道的灰度图像。