Halcom ·¢±íÓÚ 2017-9-21 21:54:41

beltramiÂ˲¨Æ÷

beltramiÂ˲¨Æ÷
resim = beltrami2D(im, 30, 0.01);   % beltramiÂ˲¨
function Fim = beltrami2D(im, num_iter, delta_t)
% beltramiÂ˲¨Æ÷   a NonLinear filter
% º¯ÊýÊäÈë:
%         im       - »Ò¶ÈͼÏñ (MxN).
%         num_iter - µü´ú´ÎÊý
%         delta_t- ʱ¼ä²½³¤
%               
% º¯ÊýÊä³ö:
%         Fim - (Filtered) image.

if ~isa(im,'double')
    im = double(im)/255;
end
% ÌݶȾØÕó
hx=0.5.*; % ˮƽ
hy=0.5.*; % ´¹Ö±
% ¶ÈÁ¿ÕÅÁ¿
hxx=;% ˮƽ
hyy=;% ´¹Ö±
% xy
hxy=;

Ik=im;% ¸³Öµ

for i=1:num_iter
   
    Ixx=imfilter(Ik,hxx,'conv');% Â˲¨
    Iyy=imfilter(Ik,hyy,'conv');% Â˲¨
    Ix=imfilter(Ik,hx,'conv');% Â˲¨
    Iy=imfilter(Ik,hy,'conv');% Â˲¨
    Ixy=imfilter(Ik,hxy,'conv');% Â˲¨
%   ¶ÔÌݶÈϽµ·½³Ì»ý·Ö
    Ikx=Ik+delta_t.*((Ixx.*(ones(size(Iy))+Iy.^2)+...
      Iyy.*(ones(size(Ix))+Ix.^2)-2.*Ix.*Iy.*Ixy)./(ones(size(Ix))+Ix.^2+Iy.^2).^2);
    Fim= Ikx;
    Ik = Ikx;
end




Ò³: [1]
²é¿´ÍêÕû°æ±¾: beltramiÂ˲¨Æ÷