C++ 检测图像中的U形边缘

C++ 检测图像中的U形边缘,c++,opencv,image-processing,pattern-matching,edge-detection,C++,Opencv,Image Processing,Pattern Matching,Edge Detection,我试图从图像中检测指尖的位置。我已经能够在图像中裁剪出一个必须有指尖的区域,并使用Canny边缘检测器提取边缘。但是我被卡住了。因为我的项目描述说我不能使用肤色进行检测,所以我无法找到手指的准确轮廓,只能尝试用边缘分离指尖。现在我在想,因为手指有一个弯曲的拱形/字母U形,也许可以用来检测。但由于它必须是旋转/缩放不变性的,所以到目前为止,我发现的大多数算法都不能满足这一要求。有人知道怎么做吗?感谢所有回应的人! 这就是我现在得到的结果。我想在索引指尖或最高指尖周围放置一个边界框,以最简单的为准

我试图从图像中检测指尖的位置。我已经能够在图像中裁剪出一个必须有指尖的区域,并使用Canny边缘检测器提取边缘。但是我被卡住了。因为我的项目描述说我不能使用肤色进行检测,所以我无法找到手指的准确轮廓,只能尝试用边缘分离指尖。现在我在想,因为手指有一个弯曲的拱形/字母U形,也许可以用来检测。但由于它必须是旋转/缩放不变性的,所以到目前为止,我发现的大多数算法都不能满足这一要求。有人知道怎么做吗?感谢所有回应的人!


这就是我现在得到的结果。我想在索引指尖或最高指尖周围放置一个边界框,以最简单的为准。

您可以将U的指尖视为一个角点,然后尝试角点检测方法,例如将角点定位为亚像素精度的方法,该方法已包含在opencv的feature2D类中


我想与大家分享一个非常清晰和明确的方向。

两个手指之间的间隔可能是重复的,也可能是U形,删除了前一个。是的,这就是为什么我只考虑倒u型。如果我能找到任何U形,我会很高兴。你能有力地提取手的轮廓吗?之后,您可以尝试沿着轮廓在每个邻域中拟合抛物线。