【问题标题】:Octave function to convert BMP image to grayscale matrix on [-1,1]Octave函数将BMP图像转换为[-1,1]上的灰度矩阵
【发布时间】: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 上它不起作用......”。

标签: image matlab octave


【解决方案1】:

我认为这应该适用于所有 bmp 图像...

function In=loadCNN(filename)
    Img=double(imread(filename));
    if size(Img,3)==3
        Img=mean(Img,3)/255;
    end
    In=2*Img-1
end

【讨论】:

    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2012-11-09
    • 1970-01-01
    • 2017-01-17
    相关资源
    最近更新 更多