den2.m
上传用户:lcj80317
上传日期:2007-01-26
资源大小:625k
文件大小:1k
源码类别:

波变换

开发平台:

Matlab

  1. function X = den2(x, wname, n, thr, alpha)
  2. % 对软硬阈值函数的改进方法
  3. % w_jk < λ时 直接置零
  4. % w_jk >= λ时 w_jk' = sign(w_jk) * sqrt(|w_jk|^2 - αλ^2)
  5. [C, S] = wavedec2(x, n, wname);                     %对图像进行小波分解
  6. dcoef = C( prod(S(1, :)) + 1 : end);                %高频部分系数
  7. ind = find( abs(dcoef) < thr) + prod(S(1, :));      %小于阈值thr的系数
  8. C(ind) = 0;                                         %   直接置零
  9. ind = find( abs(dcoef) >= thr) + prod(S(1, :));     %大于阈值thr的系数
  10. C(ind) = sign(C(ind)) .* sqrt( C(ind).^2 - alpha * thr^2 );
  11.                                                     %按照公式处理
  12.                                                     
  13. X = waverec2(C, S, wname);                          %重构图像