imutils库中的face_utils模块提供的rect_to_bb()函数在Python中的使用
发布时间:2023-12-28 23:48:14
imutils库中的face_utils模块是一个用于人脸检测和处理的工具库。其中的rect_to_bb()函数用于将人脸检测的结果从矩形框格式转换为(x, y, w, h)格式。下面是使用该函数的一个例子:
首先,确保已经安装了imutils库。可以使用以下命令来安装imutils库:
pip install imutils
接下来,导入所需的库和模块:
import cv2 import imutils from imutils import face_utils
然后,读取输入图像并进行人脸检测(这里使用OpenCV的内置人脸检测器):
image = cv2.imread('image.jpg') # 读取输入图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 转换为灰度图像
detector = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') # 创建人脸检测器
rects = detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)) # 检测人脸矩形框
接下来,使用rect_to_bb()函数将矩形框格式转换为(x, y, w, h)格式:
for (x, y, w, h) in rects:
(x, y, w, h) = face_utils.rect_to_bb((x, y, w, h)) # 使用rect_to_bb()函数进行转换
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) # 在图像上绘制转换后的矩形框
最后,显示结果图像:
cv2.imshow('Output', image) # 显示结果图像
cv2.waitKey(0) # 等待按键退出
cv2.destroyAllWindows() # 关闭所有窗口
在这个例子中,rect_to_bb()函数可以将OpenCV返回的人脸矩形框(x, y, w, h)转换为左上角和右下角坐标的形式,以便在图像上进行绘制。
