找到二进制图像和圆之间的交叉点

时间:2014-09-14 11:01:21

标签: matlab image-processing geometry intersection

我想在耳朵二进制图像上绘制3个同心圆,然后找到每个圆与图像的交点坐标。我写了这段代码,但我不确定这是否正常(我的意思是不止一次计算一些像素?)。它看起来也不是很优雅。你能建议另一种方法吗?

e=imread('3.jpg');
Size=size(e);
Nr = 3;
Xc = round(Size(1) / 2);
Yc = round(Size(2) / 2);
R1 = round(Xc / 5) * 2;
R2 = round(Xc / 5) * 3;
R3 = round(Xc / 5) * 4;
k = 1;
Point = zeros(100, 2);
for i=1:Size(1)
    for j=1:Size(2)
        if((((i - Xc) ^ 2) + ((j - Yc) ^ 2) == R1 ^ 2) ||...
                (((i - Xc) ^ 2) + ((j - Yc) ^ 2) == R2 ^ 2) ||...
                (((i - Xc) ^ 2) + ((j - Yc) ^ 2) == R3 ^ 2))
            if(l(i, j) == 0)
                Point(k, 1) = i;
                Point(k, 2) = j;
                k = k + 1;
            end
        end
    end
end 

0 个答案:

没有答案