findtheta.m

来自「自己的最近一直在用的程序 自己的最近一直在用的程序」· M 代码 · 共 57 行

M
57
字号
function theta = FindTheta(img, x, y, CN)
theta = -1;

if (CN == 1)
    % for ridge ending find the only other white pixel
    for i=1:8
        if (P(img, x, y, i) == 1)
            % found only other pixel decide which angle
            switch (i)
                case {1, 9}
                    theta = 0;
                case 2
                    theta = 45;
                case 3
                    theta = 90;
                case 4
                    theta = 135;
                case 5
                    theta = 180;
                case 6
                    theta = 225;
                case 7
                    theta = 270;
                case 8
                    theta = 315;
            end % switch
        end % if Pxyi = 1
    end % for i
else 
    % ridge bijection, find single pixel on an axis
    if (P(img, x, y, 1)  & ~(P(img, x, y, 2) & P(img, x, y, 8)) ) 
        theta = 0;
    end
    if (P(img, x, y, 2) & ~(P(img, x, y, 1) & P(img, x, y, 8) & P(img, x, y, 3) & P(img, x, y, 4)))
        theta = 45;
    end
    if (P(img, x, y, 3)& ~(P(img, x, y, 2) & P(img, x, y, 4)))
        theta = 90
    end
    if (P(img, x, y, 4)& ~ (P(img, x, y, 3) & P(img, x, y, 2) & P(img, x, y, 5) & P(img, x, y, 6)))
        theta = 135;
    end
    if (P(img, x, y, 5) & ~ (P(img, x, y, 4) & P(img, x, y, 6)))
        theta = 180;
    end
    if (P(img, x, y, 6) & ~ (P(img, x, y, 4) & P(img, x, y, 5) & P(img, x, y, 7) & P(img, x, y, 8)))
        theta = 225;
    end
    if (P(img, x, y, 7) & ~ (P(img, x, y, 6) & P(img, x, y, 8)))
        theta = 270;
    end
    if (P(img, x, y, 8) & ~ (P(img, x, y, 2) & P(img, x, y, 1) & P(img, x, y, 7) & P(img, x, y, 6)))
        theta = 315;
    end
end

⌨️ 快捷键说明

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