判断一个像素点是不是在封闭轮廓内部

 

%函数功能:判断一个像素点是否在封闭区间里面

%输入参数:i(横坐标),j(纵坐标),二值图像,1为目标区域

%输出参数:0表示不再轮廓内,1表示在轮廓内

%算法思想:因为封闭区间如果是凸多边形的话,直接可以用像素点所在的直线与多边形的交点判断,

%但是提取出的骨骼轮廓是不规则的,所以先孔洞填充,填充的部分变为目标区域集合S,如果像素点在集合

%S里面,则在区域里面,如果不属于S则在区域外面

%zsj写于2011-1-8

function result=judege_in_or_out(i,j,f);

%先对f孔洞填充

%f=imread('F:/数字图象处理/segmentation/第一节骨骼轮廓.bmp');

f_fill=imfill(f,'holes');

figure

imshow(f_fill);

[f_fill_row,f_fill_col]=find(f_fill==1);

num_1=length(f_fill_row);

result=0;

for row=1:num_1

    for col=1:num_1

        if(i==f_fill_row(row)&&j==f_fill_col(col))

            result=1;

        end

    end

end

 

 

你可能感兴趣的:(判断一个像素点是不是在封闭轮廓内部)