volkanjing.m

来自「If you have not registered, Please [regi」· M 代码 · 共 50 行

M
50
字号
function [didx,didy]=DerivIntensity2(base_image,unregistered,i,j,matrix)
%
% calculate the dI/dx and dI/dy value using bilinear method
%
% i, j: the index of base_image matrix, i <--> y coordinate, j <--> x coordinate
%

base_dims=size(base_image);
i1=0;i2=0;i3=0;i4=0;

i=floor(i);
j=floor(j);
n=i+1;m=j-1;
if (0<m)& (m<base_dims(2)) & (0<n) &(n<base_dims(1)) & (base_image(n,m,1)~=-1)
   i1=0.3*base_image(n,m,1)+0.59*base_image(n,m,2)+0.11*base_image(n,m,3);
end

n=i-1;m=j-1;
if (0<m)& (m<base_dims(2)) & (0<n) &(n<base_dims(1)) & (base_image(n,m,1)~=-1)
   i2=0.3*base_image(n,m,1)+0.59*base_image(n,m,2)+0.11*base_image(n,m,3);    
end

n=i+1;m=j+1;
if (0<m)& (m<base_dims(2)) & (0<n) &(n<base_dims(1)) & (base_image(n,m,1)~=-1)
   i3=0.3*base_image(n,m,1)+0.59*base_image(n,m,2)+0.11*base_image(n,m,3);    
end

n=i-1;m=j+1;
if (0<m)& (m<base_dims(2)) & (0<n) &(n<base_dims(1)) & (base_image(n,m,1)~=-1)
   i4=0.3*base_image(n,m,1)+0.59*base_image(n,m,2)+0.11*base_image(n,m,3);    
end

didx=0;
if(i3~=0) & (i1~=0)
    didx=didx+(i3-i1);
end
if(i4~=0) & (i2~=0)
    didx=didx+(i4-i2);
end
didx=didx/2;

didy=0;
if(i1~=0) & (i2~=0)
    didy=didy+(i1-i2);
end
if(i3~=0) & (i4~=0)
    didy=didy+(i3-i4);
end
didy=didy/2;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?