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

波变换

开发平台:

Matlab

  1. function X = den1_9(x, wname, n, thr, thr1)
  2. % 基于综合阈值的图像去噪方法
  3. % 将thr1和thr之间的线性处理方式改成指数的
  4. % x' = a^(x-b) - 1
  5. % a = (λ + 1)^(1 / (λ-λ1))
  6. % b = λ1
  7. % thr1 = 0.6 * thr;
  8. a = (thr + 1) ^ (1/(thr-thr1));
  9. b = thr1;
  10. [C, S] = wavedec2(x, n, wname);                     % 对图像进行小波分解
  11. dcoef = C( prod(S(1, :)) + 1 : end);                % 高频部分系数
  12. ind = find( abs(dcoef) < thr1) + prod(S(1, :));     % 小于thr1的系数
  13. C(ind) = 0;                                         %   直接置零
  14. ind = find( abs(dcoef) >= thr1 & abs(dcoef) < thr )...
  15.      + prod(S(1, :));                               % 大于thr1小于thr的系数
  16. C(ind) = sign(C(ind)) .* ...
  17.     (a .^( abs(C(ind)) - b) - 1);                   % 进行缩减
  18. % 重构图像
  19. X = waverec2(C, S, wname);