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

波变换

开发平台:

Matlab

  1. function X = den1(x, wname, n, thr)
  2. % 半软阈值去噪方法
  3. thr1 = 0.5 * thr;
  4. [C, S] = wavedec2(x, n, wname);                     %对图像进行小波分解
  5. dcoef = C( prod(S(1, :)) + 1 : end);                %高频部分系数
  6. ind = find( abs(dcoef) < thr1) + prod(S(1, :));     %小于thr1的系数
  7. C(ind) = 0;                                         %   直接置零
  8. ind = find( abs(dcoef) >= thr1 & abs(dcoef) < thr )...
  9.      + prod(S(1, :));                               %大于thr1小于thr的系数
  10. C(ind) = sign(C(ind)) .* ...
  11.     ( (thr / (thr - thr1)) * (abs(C(ind)) - thr1) );
  12. % ind = find( abs(dcoef) >= thr ) + prod(S(1, :));    %大于thr的系数
  13. % C(ind) = sign(C(ind)) .* ( abs(C(ind)) - alpha * thr );
  14. X = waverec2(C, S, wname);                          %重构图像