如果有人扫描压在扫描仪玻璃上的右手,结果将如下所示:
(不带橙色和白色注释)。我们如何从他们的手的图像确定某人的2D:4D ratio?
最佳答案
您已经标记了此opencv,这非常好-我强烈建议您看一下openFrameworks和openCV插件,因为那里的基本示例将为您提供一些很好的起点。
我将采用的一般方法是,首先将图像提取到明暗区域,检测手和手指的边缘,然后简化数据,直到有代表手指边缘和尖端的线为止。最后,取下第二根和第三根手指之间的下se骨,停在第二根的顶端,第三根和第四根的下se骨,停在第四根的顶端,这将为您提供2D:4D比率。
首先,您需要处理图像以获取openCV可以轻松处理的黑白图像。您可能需要使用各种阈值来获得手的轮廓和要检测到的手指的接缝。 (您甚至可能需要两次通过才能同时检测轮廓和接缝)
尽管有many approaches可以进行功能检测,但OpenCV通常会返回检测到的“ Blob ”数组。有了正确的阈值,我相信您将能够可靠且简单地找到每个手指的接缝的连续水平 Blob (或几乎连续,允许附近 Blob 之间有一定距离)。
一种简单的检测接缝的算法将是从左上角开始遍历检测到的 Blob ,并从左向右遍历图像,就像阅读页面一样。从图像中的 Blob 组合检测到的水平线的数组,并使用各种图像处理阈值,最小可接受的线长以及检测到的 Blob 之间的距离余量,直到您满意为止,这些 Blob 仍视为同一条线的一部分很好地检测手指的边缘。
一旦检测到水平线,就可以再次处理 Blob ,寻找代表手指尖的垂直线(当您击中先前检测到的水平线时停止)
最后,找到代表正确接缝的线,对其进行测量,直到它们与适当的指尖相交为止,并且您应该有自己的比例!
关于image - 计算机视觉来计算手指(手指)的比例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6701771/