Can any body tell me how to implement KSVD in matlab?
조회 수: 14 (최근 30일)
이전 댓글 표시
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???
댓글 수: 0
답변 (2개)
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
2018년 4월 29일
can i have function omp(mX.mD,cardinality). cardinality means what value..give example.
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!