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

조회 수: 26 (최근 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?

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by