使用矩形的左上角和右下角裁剪矩形人脸检测框内的区域

Posted

技术标签:

【中文标题】使用矩形的左上角和右下角裁剪矩形人脸检测框内的区域【英文标题】:Crop the region inside the rectangular face detection box using the top-left corner and bottom-right corner of rectangle 【发布时间】:2018-09-27 11:35:07 【问题描述】:

我想裁剪使用 cv2.rectangle 装箱的人脸。

我试过了:

faces = face_cascade.detectMultiScale(gray_image, 1.25, 6)

但是这段代码只检测到这个image 的一张脸,但是当我使用另一个代码时:

boxes = face_recognition.face_locations(rgb,model="hog")

它返回给我 3 张面孔,其值为上、右、下、左,但我不知道如何使用这些值(上、右、下、左)裁剪图像。任何帮助将不胜感激。

我正在使用:

Python- 2.7

OpenCv- 3.1.0

【问题讨论】:

您的问题是“如何裁剪图像”,与面部识别无关,是吗? How to crop an image in OpenCV using Python的可能重复 你是对的乔纳森!但它是“face_recognition”的一部分。我的人脸识别输出是一张检测到人脸的图像,识别出的名字印在盒子上,但我需要裁剪检测到的人脸并放置文本。 【参考方案1】:

在问题中,框具有检测到的人脸的上、右、下、左值,因此要使用给定的上、右、下、左值裁剪该区域,我使用了PIL.Image.crop():

那么代码会是这样的:

    from PIL import Image
    img = Image.open("path/to/file")       
    crop_pic = img.crop( ( left, top, right, bottom ) )        
    crop_pic.show()

【讨论】:

以上是关于使用矩形的左上角和右下角裁剪矩形人脸检测框内的区域的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 人脸检测 ROI 断言失败

判断两个矩形相交以及求出相交的区域

minAreaRect OpenCV [Python] 返回的裁剪矩形

如何裁剪矩形区域? [关闭]

如何在 dlib python 中保存/裁剪检测到的人脸

rect函数定义是啥?