请选择 进入手机版 | 继续访问电脑版

Hello Mat

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

kuwahara_filter滤波器

[复制链接]

1288

主题

1514

帖子

90

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22589
发表于 2017-9-21 22:00:07 | 显示全部楼层 |阅读模式
kuwahara_filter滤波器
im1 = kuwahara(im,5);
  1. function [Y,Xpad] = kuwahara(X,WINSZ)
  2. % kuwahara_filter滤波器
  3. % 对图像边界轮廓有较强的保护作用
  4. % kuwahara nonlinear edge-preserving filtering
  5. % 函数输入:
  6. %          X:二维图像矩阵
  7. %          WINSZ: window size
  8. % 函数输出:
  9. %          Y:滤波图像
  10. %          Xpad:点扩展矩阵
  11. % The Kuwahara filter 4块,(最直观的如下所示,5x5 pixels).
  12. %
  13. %    ( a  a  ab   b  b)
  14. %    ( a  a  ab   b  b)
  15. %    (ac ac abcd bd bd)
  16. %    ( c  c  cd   d  d)
  17. %    ( c  c  cd   d  d)

  18. if nargin < 2
  19.     WINSZ = 5;  % 默认值
  20. end

  21. if ~isa(X,'double')
  22.     X = im2double(X);  % double类型
  23. end

  24. Pad = floor(WINSZ/2);  % 向下取整

  25. Xpad = padarray(X,[Pad, Pad],'replicate');  % 点扩展
  26. % A = [ 1 2;
  27. %       3 4 ];
  28. % B = padarray(A,[3 2],'replicate','post')
  29. % B =
  30. %      1     2     2     2
  31. %      3     4     4     4
  32. %      3     4     4     4
  33. %      3     4     4     4
  34. %      3     4     4     4
  35. [padRows,padCols] = size(Xpad);                    % 求维数
  36. Y = zeros(size(X));

  37. nRowIters = length((Pad+1):(padRows-Pad));
  38. count = 1;
  39. for i = (Pad+1):(padRows-Pad)
  40.     for j = (Pad+1):(padCols-Pad)
  41.         % 分成每一个小窗,Q1~Q4
  42.         w = Xpad((i-Pad):(i+Pad),(j-Pad):(j+Pad));
  43.         wnw = w(1:(Pad+1),1:(Pad+1));
  44.         wne = w(1:(Pad+1),(Pad+1):WINSZ);
  45.         wsw = w((Pad+1):WINSZ,1:(Pad+1));
  46.         wse = w((Pad+1):WINSZ,(Pad+1):WINSZ);
  47.         % 计算方差
  48.         s = var([wnw(:),wne(:),wsw(:),wse(:)]);
  49.         m = mean([wnw(:),wne(:),wsw(:),wse(:)]);
  50.         [y,k] = min(s);  
  51.         % 计算均值
  52.         Y(i,j) = m(k);
  53.     end

  54. end
复制代码



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 21:08 , Processed in 0.209222 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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