【发布时间】:2020-01-30 08:07:50
【问题描述】:
我有一个对图像进行 4 级分解的代码。这些级别类似于图像的小波变换,将图像分解为 4 个级别:近似部分和三个详细部分。我实现的代码使用广义 SVD 来进行这种分解。这是代码
function[Y,U] = MSVD1(X)
%multiresolution SVD (MSVD)
%input-> x: image (spatial domain)
%outputs-> Y: one level MSVD decomposition of x
% U: the unitary matrix (U in SVD)
[m,n] = size(X);
m = m/2; n = n/2;
A = zeros(4,m*n);
for j = 1:n
for i = 1:m
A(:,i + (j-1)*m) = reshape(X((i-1)*2+(1:2),(j-1)*2+(1:2)),4,1);
end
end
[U,S] = svd(A);
T = U'*A;
Y.LL = reshape(T(1,:),m,n);
Y.LH = reshape(T(2,:),m,n);
Y.HL = reshape(T(3,:),m,n);
Y.HH = reshape(T(4,:),m,n);
end
现在涉及到的基本操作是使用 SVD。所以我的问题是大 O 表示法的时间复杂度是否应该与矩阵的普通 SVD 相同?如果不是,我们需要考虑哪些条款才能找到图像输入大小的复杂性?重塑元素是否也增加了时间复杂度,还是只是 O(1)? 有人可以帮忙吗?
【问题讨论】:
-
一些关于重塑stackoverflow.com/q/36062574/2732801的信息
标签: matlab time time-complexity