无法使用灰度图像矩阵的乘法

时间:2013-12-28 23:01:21

标签: matlab image-processing octave

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

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

还有另一种输入图像的方法吗?

3 个答案:

答案 0 :(得分:10)

I=imread('...');
I=rgb2gray(I);
I=double(I);
% you can perform the multiplication operation now

答案 1 :(得分:2)

如果你正在尝试多个两个图像(我猜这是你要做的事情,因为错误是用于乘法矩阵而不是用标量矩阵),你应该使用immultiply为你处理不同类的函数。

只需使用immultiply (imgA, imgB),再也不用担心哪个班级是imgAimgB。请注意,您需要在已加载的图像包中安装。

答案 2 :(得分:1)

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