我对matlab / octave很新。我使用octave的imread()函数加载了一个图像。我试图对矩阵执行乘法运算,但得到以下错误:
binary operator `*' not implemented for `uint8 matrix' by `matrix' operations
还有另一种输入图像的方法吗?
答案 0 :(得分:10)
I=imread('...');
I=rgb2gray(I);
I=double(I);
% you can perform the multiplication operation now
答案 1 :(得分:2)
如果你正在尝试多个两个图像(我猜这是你要做的事情,因为错误是用于乘法矩阵而不是用标量矩阵),你应该使用immultiply
为你处理不同类的函数。
只需使用immultiply (imgA, imgB)
,再也不用担心哪个班级是imgA
和imgB
。请注意,您需要在已加载的图像包中安装。
答案 2 :(得分:1)
这通常意味着您正在尝试将不同数据类型的数组相乘。这里最简单的方法是将uint8图像转换为double。你可以使用double()函数,它只是转换值,或者我们使用im2double(),这也会将值标准化为0到1之间。