要绘制衬衫宽度线,我需要找到腋下点(见这些链接中的图片:
我的想法是首先尝试找到满足腋窝点的区域,然后使用Haris算法找到腋窝点。这样做可以吗?如果可以,可以使用哪些算法?我想到了类似Haar的功能。另一个可能是区域特征(in Zone feature section)。
答案 0 :(得分:2)
您提到的所有算法对于简单的任务可能都是过度的。
就像@blackSmith所说的那样,形态运算符会起作用并且是个好主意:
一旦你提取了二进制文件(并且如果你只有第一张照片中的轮廓那么执行填充填充),你可以执行关闭,然后从中减去原始二进制文件。选择形态学运算符,使剩余的点只是腋窝的小角度。
这真的很简单,这里有一些伪代码:
TestImage=Threshold(TestImage,0.3)
strel1=strel('square',25); // Create some structural elements. 25x25, very big!
strel2=strel('disk',25); // A circular element is good to close corners
TestImage=imopen(TestImage,strel1); //Gets rid of smaller particles
OpenImage=imopen(TestImage,strel2); //Closes the corners=>armpits
AddLayer=(TestImage-OpenImage); //Mark corners on original image
strel3=strel('disk',9);
AddLayer=imclose(AddLayer,strel3); //get rid of smaller areas
AddLayer=imdilate(AddLayer,strel3); //Not necessary but makes my point clearer
TestImageO(:,:,1)=TestImageO(:,:,1)+255*AddLayer; // Mark it on the original image