matlab中的手部检测

信息处理 图像处理 matlab 计算机视觉 matlab-cvst
2022-02-22 10:12:57

我是初学者,我想知道如何在 Matlab 中检测手。

首先,我需要检测皮肤的代码,然后在一个区域周围绘制一个矩形,以便向我显示脸部和手部。

当我尝试仅在手周围制作矩形并且手远离脸部时,矩形将围绕脸部绘制。

我需要做些什么来打折脸部并且只在手周围绘制矩形?

1个回答

据我所知,Matlab 的计算机视觉工具箱提供了vision.CascadeObjectDetector用于对象检测,仅支持正面人脸 (CART)、正面人脸 (LBP)、上身、一对眼、单眼、单眼 (CART)、侧面,嘴巴,鼻子当您说:“矩形是在面部周围绘制的。 ”,这是因为您在调用 CascadeObjectDetector 时没有指定要检测的特定对象,导致 CascadeObjectDetector 默认设置为FrontalFaceCART你可能正在做这样的事情:

detector = vision.CascadeObjectDetector;

尝试这样做:

detector = vision.CascadeObjectDetector('Nose');

你会看到鼻子是如何被检测到的。

你可能会很兴奋,因为传递“Hand”作为参数而不是“Nose”或其他任何东西真的很容易。但不幸的是,直到现在 CascadeObjectDetector 还没有为'Hand'提供模型。但是,有一种方法可以实现这一点,最后一个ComputerVision工具箱提供了trainCascadeObjectDetector,您可以使用它来检测自己的模型(例如手)。你会看到这包括一个训练过程,你必须提供正图像和负图像来开发你自己的检测器,链接中给出了进一步的解释。您可以使用另一个有用的工具:一个用于简化分类过程的 GUI 工具。

希望这可以帮助