【问题标题】:Unable to use multiplication with grayscale image matrix无法将乘法与灰度图像矩阵一起使用
【发布时间】:2014-01-16 04:53:34
【问题描述】:

我对 matlab/octave 很陌生。我使用八度音程的 imread() 函数加载了图像。我试图对矩阵执行乘法运算,但得到以下错误:

binary operator `*' not implemented for `uint8 matrix' by `matrix' operations 

还有其他输入图片的方法吗??

【问题讨论】:

  • 你能发布你的完整代码吗?
  • 尝试通过double函数将图像转换为“double”格式。

标签: image matlab image-processing octave


【解决方案1】:
I=imread('...');
I=rgb2gray(I);
I=double(I);
% you can perform the multiplication operation now

【讨论】:

    【解决方案2】:

    这通常意味着您正在尝试将不同数据类型的数组相乘。这里最简单的做法是将 uint8 图像转换为 double。您可以使用 double() 函数,它只会转换值,也可以使用 im2double(),它还将值标准化为 0 到 1 之间。

    【讨论】:

      【解决方案3】:

      如果您尝试多个两个图像(我猜这就是您想要做的,因为错误是矩阵乘以标量而不是矩阵),您应该使用 immultiply 函数为您处理不同的类。

      只需使用immultiply (imgA, imgB),再也不用担心imgAimgB 是什么类。请注意,您需要在加载中安装图像包。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-03
        • 2012-11-04
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多