Hello Mat

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

Lucy_Richardson滤波器

[复制链接]

1294

主题

1520

帖子

110

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22633
发表于 2017-9-21 22:02:46 | 显示全部楼层 |阅读模式
Lucy_Richardson滤波器
im1 = Lucy_Richardson(im, 5, 10, 50);
  1. function resim = Lucy_Richardson(ifbl, LEN, THETA, iterations)
  2. % Lucy_Richardson滤波器
  3. %函数输入:
  4. %         ifbl:  输入的图像矩阵
  5. %         LEN:   模糊旋转长度,模糊的像素个数
  6. %         THETA: 模糊旋转角
  7. %         iterations: 迭代次数
  8. %函数输出:
  9. %         resim: 重构滤波图像
  10. if ~isa(ifbl,'double')
  11.     ifbl = double(ifbl);
  12. end

  13. ifbl = medfilt2(abs(ifbl)); %中值滤波
  14. est = ifbl; % 初始化模糊图像赋值操作
  15. % 点扩展函数PSF
  16. PSF = fspecial('motion',LEN,THETA);
  17. % 转化PSF函数到期望的维数 光传递函数OTF
  18. OTF = psf2otf(PSF,size(ifbl));
  19. i = 1;
  20. while i<=iterations
  21.     fest = fft2(est);    % 转化到频域
  22.     fblest = OTF.*fest;  % 频率相乘
  23.     ifblest = ifft2(fblest); % 傅里叶反变换,转换到时域
  24.     % 计算模糊前的图像 与 去模糊后的图像 的比值
  25.     iratio = ifbl./(ifblest+eps);
  26.     firatio = fft2(iratio);   % 转化到频域
  27.     corrvec = OTF .* firatio; % 计算相关性向量
  28.     icorrvec = ifft2(corrvec);% 傅里叶反变换,转换到时域
  29.     % 计算估计的去模糊图像矩阵
  30.     aftercorr = icorrvec.*est;
  31.     est = aftercorr;
  32.     i = i+1;
  33. end
  34. resim = abs(est); % 重构滤波图像
复制代码





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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 11:52 , Processed in 0.211776 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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