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

    技术2022-06-22  47

     

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

    %输入参数: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

     

     


    最新回复(0)