我将一个.jpg文件导入到Matlab中,想要查找图像的单值分解。
x=imread('mypicture.jpg');
[U, S, V]=svd(x);
但是这样做我遇到了以下错误:未定义的函数'svd'用于'uint8'类型的输入参数。我该如何解决这个问题?
我也试过
[U, S, V]=svd(double(x));
但是我收到错误:使用svd输入时出错必须是2-D。
答案 0 :(得分:1)
您的x
有第三维持有RGB通道。尝试先将其转换为灰色?
[U,S,V] = svd(rgb2gray(x))
或者如果您没有图像处理工具箱:Convert a color image to grayscale in MATLAB without rgb2gray