Matlab错误:未定义函数'svd'用于'uint8'类型的输入参数

时间:2014-03-07 07:21:42

标签: matlab

我将一个.jpg文件导入到Matlab中,想要查找图像的单值分解。

  x=imread('mypicture.jpg');

  [U, S, V]=svd(x);

但是这样做我遇到了以下错误:未定义的函数'svd'用于'uint8'类型的输入参数。我该如何解决这个问题?

我也试过

  [U, S, V]=svd(double(x));

但是我收到错误:使用svd输入时出错必须是2-D。

1 个答案:

答案 0 :(得分:1)

您的x有第三维持有RGB通道。尝试先将其转换为灰色?

[U,S,V] = svd(rgb2gray(x)) 

或者如果您没有图像处理工具箱:Convert a color image to grayscale in MATLAB without rgb2gray