Can any body tell me how to implement KSVD in matlab?

13 ビュー (過去 30 日間)
Yuva Kishore Reddy Nayannagari
Yuva Kishore Reddy Nayannagari 2016 年 3 月 4 日
編集済み: Royi Avital 2020 年 12 月 19 日
i am doing the project on "quaternion matrix analysis of color image using vector sparse model" so i need to implement ksvd so can please anynoe help me???

回答 (2 件)

Royi Avital
Royi Avital 2016 年 3 月 4 日
編集済み: Royi Avital 2020 年 12 月 19 日
Here is a function which implements the K-SVD algorithm.
function [ mD ] = DL_KSVD( mD, mX, paramCardinality )
numberOfAtoms = size(mD, 2);
for ii = 1:50
%<! Update the Representations
mA = Omp(mX, mD, paramCardinality);
%<! Update the Dictionary
for jj = 1:5
mE = mX - (mD * mA);
for kk = 1:numberOfAtoms
vP = find(mA(kk, :));
mEP = mE(:, vP) + mD(:, kk) * mA(kk, vP);
vA = mD(:, kk)' * mEP;
mA(kk, vP) = vA;
mD(:, kk) = mEP * vA' / (vA * vA');
end
end
mD = bsxfun(@rdivide, mD, sqrt(sum(mD .^ 2, 1)));
%%Progress (Debug):
% mA = omp(mD' * mX, mD' * mD, cardinality);
% mX_hat = mD * mA;
% A = mean(abs(mX(:) - mX_hat(:)))
end
end
The Omp() function mA = Omp(mX, mD, paramCardinality) solves mD * mX - mA_2 s.t. each column of mA has cardinality (L0 Pseudo Norm) less equal to paramCardinality. It uses the Orthogonal Matching Pursuit method.
  1 件のコメント
RS SHARMA
RS SHARMA 2018 年 4 月 29 日
can i have function omp(mX.mD,cardinality). cardinality means what value..give example.

サインインしてコメントする。


murat simsek
murat simsek 2016 年 3 月 17 日
What is the meaning of "mD" parameter?

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by