How do I apply SVD (Singular Value Decomposition) to an image?
57 次查看(过去 30 天)
显示 更早的评论
The syntax given for singular value decomposition is svd(x).
I tried it with my image, but it didn't work. Can you tell me how to work with svd for images please?
2 个评论
David Young
2011-3-2
Please could you say what the error message was, and also show any other parts of your code that might be relevant.
Andreas Goser
2011-3-2
While I agree with David on the need for specifics, my crystal ball tells my this is about data types and will craft an answer for that...
采纳的回答
Andreas Goser
2011-3-2
This sounds like it is about data types or sizes. Example
pout = imread('pout.tif');
svd(pout) % does not work
??? Undefined function or method 'svd' for input arguments of type 'uint8'.
svd(double(pout)) % works
I can however not comment on the mathematical sense of this. I you have another image format like here, you need to think about what you actually like to achieve
I = imread('board.tif');
svd(double(I))
??? Undefined function or method 'svd' for input arguments of type 'double' and
attributes 'full 3d real'.
更多回答(5 个)
meenakshi
2011-9-6
HELLO GOSER
i=imread('pout.tif');
i=im2double(i)
[u s v]=svd(i);
you can try like this.
k.meenakshi
1 个评论
Walter Roberson
2011-9-6
That would not have any more success than svd(double(I)) if I is a truecolor (3D) image. Remember, images can be stored as pseudocolor (2D arrays in which the values indicate which index to use out of a color map), or as truecolor (3D arrays in which the values directly indicate the color information for each pixel without any map.) The problem is that svd() of a pseudocolor image is not meaningful, and svd() of a 3D array is not allowed. The only choice available to get anything useful out is to convert the image to grayscale and svd() the grayscale image.
slama najla
2012-4-21
Hello, can some body help me with the code of SVD decomposition in 3d medical data in matlab please.
1 个评论
slama najla
2012-4-28
But many approaches use it us decomposition for 3d data in watermarking,this is why i reask this question.thanks
2 个评论
Walter Roberson
2012-4-28
SVD is *defined* in terms of rectangular matrices. There is no method to apply SVD to a 3D matrix. I looked at some of the articles about color image watermarking using svd, and of the ones I could access, not one of them attempted to apply SVD to a 3D matrix.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Eigenvalues 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!