Hello Mat

 找回密码
 立即注册
查看: 4329|回复: 0

巴特沃斯高通滤波器

[复制链接]

1298

主题

1524

帖子

114

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22653
发表于 2017-3-7 21:58:06 | 显示全部楼层 |阅读模式
  1. function im5 = freqfilter_btw_Hp(im,D0,n)
  2. % 巴特沃斯高通滤波器
  3. % input:
  4. %     M,N:频域滤波器的尺寸
  5. %     D0:带阻滤波器的截止频率
  6. %     n :阶次
  7. % output:
  8. %       H:M x N的矩阵,表示频域滤波器矩阵,数据类型为double,
  9.     if ~isa(im,'double')
  10.         im1 = double(im)/255;
  11.     end
  12. im2 = fft2(im1);      % 傅里叶变换
  13. im3 = fftshift(im2);  % 中心化

  14. [N1, N2] = size(im3);
  15. n1 = fix(N1 / 2);
  16. n2 = fix(N2 / 2);
  17. for i = 1:N1
  18.     for j = 2:N2
  19.         d = sqrt((i-n1)^2+(j-n2)^2);
  20.         if d==0
  21.             h=0;
  22.         else
  23.             h = 1/(1 + 0.414 * (D0 / d)^(2*n));  % 巴特沃斯高通滤波器
  24.         end
  25.         result(i,j) = h * im3(i,j);
  26.     end
  27. end
  28. result = ifftshift(result);    % 反中心化
  29. im4 = ifft2(result);           % 反变换
  30. im5 = im2uint8(real(im4));     % 滤波图像
  31. end
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

相关帖子

算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-5-18 17:33 , Processed in 0.266610 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表