【发布时间】:2014-04-23 08:00:18
【问题描述】:
对于大学作业,我们获得了一个 MATLAB/Octave 工具箱。这包括以下函数,理论上应该读取 BMP 文件并将其转换为矩阵,所有值都在 [-1,1] 中,其中 -1 表示白色,1 表示黑色。
function In=loadCNN(filename)
Img=double(imread(filename));
if size(Img,3)==3
Img=(Img(:,:,1)+Img(:,:,2)+Img(:,:,3))/3;
end
In=((double(Img)/127.5)-1)*-1;
end
但是它不能正常工作,返回一个矩阵,例如,this image: 上的白色像素为 0.99216
请帮我写一个函数来做到这一点。它也适用于彩色 BMP,应首先将其转换为灰度。
【问题讨论】:
-
您确定这段代码在 MATLAB 和 GNU Octave 中的行为不同吗?
-
在进行任何缩放之前,您需要检查
Img的缩放比例。 -
@juliohm 不确定。我没有 MATLAB。一位朋友在 MATLAB 中为我尝试过,他说它在那里也不起作用。
-
那么你应该从你的问题中删除文本“......在 Octave 上它不起作用......”。