%函数功能:判断一个像素点是否在封闭区间里面
%输入参数: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