【问题标题】:Drawing minarea rectangle for convex hull为凸包绘制 minarea 矩形
【发布时间】:2015-07-12 23:42:18
【问题描述】:

您好,我一直在尝试使用 OpenCV 识别手签名(数字)。我遇到了一个问题,即 1 和 2 显示相同数量的凸面缺陷。 我认为我可以纠正这个问题的一种方法是绘制一个最小边界矩形......并找到凸包面积与边界矩形面积的比率。 但是我不知道如何做到这一点。

vector<vector<Point>> hull;

我感兴趣的船体的索引是 k;

如何为这个凸包绘制一个旋转的矩形?

【问题讨论】:

  • 该函数返回一个最小面积矩形的点..所以我声明了一个点向量..vector minimumarearec..然后..
  • here
  • here你可以找到一个关于如何使用和绘制RotatedRects的例子
  • 您应该发布定义明确的问题,如“如何在 OpenCV 中绘制 RotatedRect”,并发布 mvce,而不是您的整个代码。
  • 编辑了标题和正文

标签: c++ opencv


【解决方案1】:
// Assuming 
// vector<vector<Point>> hull;
// Mat3b frame; 

if((k >= 0) && (k < hull.size()) && (!hull[k].empty()))
{
    RotatedRect rotated = minAreaRect(hull[k]);
    Point2f rect_points[4]; 
    rotated.points( rect_points );
    for( int j = 0; j < 4; j++ ) {
       line( frame, rect_points[j], rect_points[(j+1)%4], Scalar(255,0,0), 1, 8 );
    }
}

【讨论】:

    猜你喜欢
    • 2018-06-20
    • 2019-05-16
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 2021-05-13
    • 2014-01-13
    • 2017-01-22
    相关资源
    最近更新 更多