gpt4 book ai didi

python - CV2 的 detectMultiScale 方法返回什么?

转载 作者:太空宇宙 更新时间:2023-11-03 21:20:39 26 4
gpt4 key购买 nike

在 CV2 中,我能够从上传的图像生成人脸。

faces = faceCascade.detectMultiScale(
read_img,
scaleFactor = 1.1,
minNeighbors = 0,
minSize=(100,100)
)
how_many_faces = len(faces)

how_many_faces 返回正确的面数。

如果我将这些面附加到一个数组中......

our_faces = []
for i in faces:
our_faces.append(i)

return str(our_faces)

...并返回 our_faces,我得到以下数据:

[array([187, 138, 236, 236], dtype=int32), array([197, 138, 236, 236], dtype=int32), array([163, 130, 260, 260], dtype=int32), array([163, 141, 260, 260], dtype=int32), array([173, 141, 260, 260], dtype=int32), array([184, 141, 260, 260], dtype=int32), array([143, 119, 286, 286], dtype=int32), array([167, 119, 286, 286], dtype=int32), array([143, 131, 286, 286], dtype=int32), array([155, 131, 286, 286], dtype=int32), array([167, 131, 286, 286], dtype=int32), array([144, 105, 315, 315], dtype=int32), array([157, 105, 315, 315], dtype=int32), array([131, 118, 315, 315], dtype=int32), array([144, 118, 315, 315], dtype=int32), array([157, 118, 315, 315], dtype=int32), array([170, 118, 315, 315], dtype=int32), array([130, 87, 346, 346], dtype=int32), array([115, 101, 346, 346], dtype=int32), array([130, 101, 346, 346], dtype=int32), array([144, 101, 346, 346], dtype=int32), array([159, 101, 346, 346], dtype=int32), array([130, 115, 346, 346], dtype=int32), array([ 87, 70, 419, 419], dtype=int32)]

我是否可以正确地假设这个数组包含每张脸的所有数据,并且它是一个 Numpy 数组?如果是这样,我如何将数组中的这些数据转换回图像格式?

最佳答案

faceCascade.detectMultiScale() 返回一个矩形列表,因此它不包含检测到的人脸图像,您无法仅从该列表重建人脸。

如果你想获取人脸图像,你需要:

  • 保留您最初在其中查找面孔的图像的副本,并且
  • 使用 Numpy 切片或类似方法提取边界在 faceCascade.detectMultiScale() 返回的 faces 列表中的矩形

关于python - CV2 的 detectMultiScale 方法返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54400034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com