【问题标题】:How to extract length/width from c++ face bounding box如何从 C++ 人脸边界框中提取长度/宽度
【发布时间】:2020-12-24 15:58:38
【问题描述】:

我正在使用 OpenCV c++ 来计算人脸的边界框。我正在使用此代码:

haarClassifier.detectMultiScale(frameGray, boxes, 1.1, 6, CASCADE_SCALE_IMAGE, minFaceSize);

当我 cout boxes 到终端时,我得到这样的结果:

[485 x 485 from (358, 138)]

这是我需要的所有信息,但我不确定如何在不转换为字符串和索引的情况下提取长度/宽度和起始坐标,这绝对不是最好的方法。

基本上,我想这样做是因为我试图将盒子分成 4 个象限。在这个例子中,我想做以下事情(伪代码):

// get box dimensions/coords
length = 485
width = 485
top_left_x_coord = 358
top_left_y_coord = 138

// create quadrants
quadrant_length = length/2
quadrant_width = length/2

top_left_x_coord = 358
top_left_y_coord = 138

top_right_x_coord = top_left_x_coord + quadrant_width
top_right_y_coord = top_left_y_coord

bottom_left_x_coord = top_left_x_coord
bottom_left_y_coord = top_left_y_coord + quadrant_length

bottom_right_x_coord = bottom_left_x_coord + quadrant_width
bottom_right_y_coord = bottom_left_y_coord

// return the following

// top-left
[length x width from (top_left_x_coord, top_left_y_coord)]
// top-right
[length x width from (top_right_x_coord, top_right_y_coord)]
// bottom-left
[length x width from (bottom_left_x_coord, bottom_left_y_coord)]
// bottom-right
[length x width from (bottom_right_x_coord, bottom_right_y_coord)]

[485 x 485 from (358, 138)] 中提取长度、宽度、x 和 y 的最佳、最 c++ 方法是什么,以便我可以这样做?

【问题讨论】:

    标签: c++ opencv computer-vision


    【解决方案1】:

    不要将其转换为字符串并尝试解析它。

    请在 docs.opencv.org 上look up that method

    给你一个cv::Rect的向量

    使用 docs.opencv.org 了解如何访问 cv::Rect 的部分内容。 Rect 类型有数字字段。

    【讨论】:

      猜你喜欢
      • 2013-09-24
      • 2012-01-24
      • 2020-09-20
      • 2015-12-31
      • 2013-01-16
      • 2019-06-18
      • 2011-06-25
      • 1970-01-01
      • 2020-12-26
      相关资源
      最近更新 更多