radial_cover.asv

来自「图像重建中投影建模算法对二维图像进行投影值计算的程序」· ASV 代码 · 共 48 行

ASV
48
字号
function cover_matrix=radial_cover(weishu,d,theta)
 N=weishu;r=abs(d);
 A=zeros(N+1,N);
Y=N/2:-1:-N/2;
if theta~=0
    if r==0
        x_point=-Y*tan(theta*pi/180);
    else
        x0=r/cos(theta*pi/180);
        y0=r/sin(theta*pi/180);
        x_point=(x0*y0-Y*x0)/y0;
    end;
        temp=ceil(x_point(1))+N/2;
        k=sqrt(1+(1/tan(theta*pi/180))^2);
    for ii=2:N+1;
        t1=ii-1;
        t2=ceil(x_point(ii))+N/2;
        if t2<=N+1
            if temp==t2 
                A(t1,t2)=(x_point(ii)-x_point(ii-1))*k;
            else 
                A(t1,t2-1)=(ceil(x_point(ii-1))-x_point(ii-1))*k;
                A(t1,t2)=(x_point(ii)-ceil(x_point(ii-1)))*k;
            end;
        end;
        temp=t2;
    end;
else 
    t=ceil(r);
    if t==r
        A(1:N,t+N/2)=linspace(0.5,0.5,N);
        A(1:N,t+1+N/2)=linspace(0.5,0.5,N);
    else
        A(1:N,t+N/2)=linspace(1,1,N);
    end;
end;

for jj=1:N
    cover_matrix(1:N,jj)=A(1:N,jj);
end;
if d<0
    flipud(cover_matrix);
    fliplr(cover_matrix);
end;
cover_matrix

        
    

⌨️ 快捷键说明

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