【问题标题】:Octave: How to cirumvent the "imresize: IM must be a grayscale or RGB image" error?Octave:如何避免“imresize:IM 必须是灰度或 RGB 图像”错误?
【发布时间】:2017-02-08 19:27:15
【问题描述】:

这是 Octave 中的 active bug

error: imresize: IM must be a grayscale or RGB image.

我似乎找不到解决此错误的方法。是否需要在此语句之前添加任何代码,使其能够像在 MATLAB 中一样运行?

更新

来自active bug的代码:

In = ones(6,6);
In(3,3) = 2;
Out = imresize (In, 2);

版本:

【问题讨论】:

  • 您有什么问题吗?您链接的错误已在回购中修复savannah.gnu.org/bugs/?43846。显示一些代码你想做什么?你的形象有负面价值吗?
  • 您是否阅读过文档 - gnu.org/software/octave/doc/v4.0.1/Representing-Images.html?对于像素的双值矩阵必须在范围 0...1
  • @SergV:我很清楚你提供的细节。我的问题不合法吗?我正在寻求一个没有众所周知的解决方案的已知问题的解决方案。 (为什么要投反对票?)我的代码在 MATLAB 中运行良好,但在 Octave 中运行良好,这一行似乎是唯一的问题。
  • @ÉbeIsaac 投反对票是因为您甚至没有尝试过最低限度的解决方案(或者您没有证明您尝试过)
  • @ÉbeIsaac 为什么不直接下载固定的 imresize.m 并在安装中替换它?

标签: image matlab octave image-resizing


【解决方案1】:

我没有测试过,但我认为:

In = ones(6,6);
In(3,3) = -1;

minIn=min(In(:)); % do this
In=In-minIn;      % do this - now In(3,3)=0!

Out = imresize (In, 2);

Out=Out+minIn;    % do this

会做好的

【讨论】:

  • 很遗憾,我遇到了同样的错误。我使用的是 Octave-v3.8 版本。你认为我是时候更新来解决这个问题了吗?
  • @Ander Biguri。您必须在脚本中更改登录 minIn。所以“In=In+minIn;”改为“In=In-minIn;”。和“Out=Out-minIn;”到 Out=Out+minIn;
  • @SergV:这就是问题所在,即使给定的代码似乎也不适用于您的更改。
  • @ÉbeIsaac 也许是时候创建一个 mcve 了?stackoverflow.com/help/mcve 没有显示您的代码或描述您正在尝试做什么,这纯粹是猜测......
  • 对不起,@SergV,但您编辑的代码仍然显示相同的错误。我刚刚也用 Octave-4.0.2 验证了同样的问题。
【解决方案2】:

八度范围内的grayimage像素必须在[0..1]范围内。您可以缩放矩阵的幅度以满足此标准:

In = ones(6,6);
In(3,3) = -1;

minIn=min(In(:)); 
maxIn=max(In(:)); 
In1=(In-minIn)/(maxIn - minIn);
Out = imresize (In1, 2);
Out1=Out*(maxIn-minIn) + minIn;

【讨论】:

    【解决方案3】:

    扩展@Andy的cmets,imresize.m MATLAB文件可以放在操作目录下。这将像在 MATLAB 中一样执行代码,并且不会像在 Octave 的实现中那样引发错误。

    代码可以取自this location

    【讨论】:

    • 我从不建议从 Matlab 获取 imresize.m。看看他们的执照。即使您付费,也不允许您在 Matlab 之外使用此文件。我说你应该从 Octave-forge 图像包中获取固定的 imresize.m:hg.code.sf.net/p/octave/image/file/17ed4752a081/inst/imresize.m(点击原始文件并下载文件)
    • @Andy 我刚刚试用了您链接中的代码,出现了一个错误,说明'isimage' undefined near line 65 column 13
    猜你喜欢
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 2020-05-04
    • 2018-02-14
    相关资源
    最近更新 更多