【问题标题】:how to cut Faces after detection检测后如何切割人脸
【发布时间】:2011-09-23 05:09:51
【问题描述】:

我一直在使用 OpenCV 进行一个大学项目。我做了一个简单的程序来检测人脸,通过在一个检测人脸的函数中传递网络摄像头捕获的帧。

检测时它会在检测到时在面部上绘制黑框。但是我的项目并没有到此结束,我希望能够剪掉那些尽快检测到的人脸并将其保存在图像中,然后应用不同的图像处理技术 [根据我的需要]。如果这太成问题,我可以使用简单的图像而不是使用网络摄像头捕获的帧。

我只是不知道如何去剪掉那些被检测到的面孔。

【问题讨论】:

  • 当您说检测到时——它们被检测为什么?换句话说,您是否对图像进行了分割,并拥有一组像素,或者是否有一些分析手段只能产生真/假值?

标签: c++ c opencv


【解决方案1】:

对于 C++ 版本,您可以查看 OpenCV 文档中的 this tutorial

在函数detectAndDisplay你可以看到这一行

Mat faceROI = frame_gray( faces[i] );

其中faceROI 为剪裁面,您可以使用imwrite 函数将其保存到文件中:

imwrite("face.jpg", faceROI);

【讨论】:

    【解决方案2】:

    http://nashruddin.com/OpenCV_Region_of_Interest_(ROI)

    查看此链接,您可以使用黑框的尺寸裁剪图像,调整大小并保存为新文件。

    【讨论】:

    • @VJo 您需要手动将结束括号添加到 URL 的末尾。似乎是 SO 自动格式化中的一个错误。
    • 你是对的 SSteve,我没有注意到这一点。 @Vjo,只需复制粘贴网址即可。
    【解决方案3】:

    你能抓住相框并用每个角的 X、Y 坐标裁剪照片吗?

    【讨论】:

    • 网络摄像头会捕捉移动的物体,不是吗?那么我如何获得这些坐标呢?
    猜你喜欢
    • 1970-01-01
    • 2019-11-18
    • 2013-09-24
    • 2020-06-28
    • 1970-01-01
    • 2016-11-18
    • 2016-08-02
    • 2012-04-17
    • 1970-01-01
    相关资源
    最近更新 更多