zoukankan      html  css  js  c++  java
  • OpenCv 关于cvMinAreaRect2+cvBoxPoints画最小外接矩形

    Hai

    使用 cvMinAreaRect2画外接矩形是基本步骤是这样的:

    CvBox2D rect=cvMinAreaRect2(contourSeq,storage4maxcontour);

    CvPoint2D32f rect_pts0[4];

    cvBoxPoints(rect, rect_pts0);

    经过实验发现 cvBoxPoints(rect, rect_pts0)储存顶点的顺序会因为轮廓的不同而不同

    所以为了得到想要的顶点顺序需要通过算法来实现:

     1 CvPoint Corner[4];
     2 corner[0]=rect_pts[0];
     3         corner[2]=rect_pts[0];
     4         for (int i=0;i<4;i++)
     5         {
     6             if(rect_pts[i].x<=corner[0].x)
     7             
     8                 corner[0].x= rect_pts[i].x;
     9             
    10             if(rect_pts[i].y<=corner[0].y)
    11                 
    12                 corner[0].y= rect_pts[i].y;
    13 
    14         }//确定外接矩形左上顶点
    15 
    16     for (int i=0;i<4;i++)
    17         {
    18             if(rect_pts[i].x>=corner[2].x)
    19 
    20                 corner[2].x= rect_pts[i].x;
    21 
    22             if(rect_pts[i].y>=corner[2].y)
    23 
    24                 corner[2].y= rect_pts[i].y;
    25 
    26         }//确定外接矩形右下顶点

    如此得到以左上顶点为起始,逆时针顺序的四个顶点。

  • 相关阅读:
    51Nod 1239 欧拉函数之和
    51Nod 1244 莫比乌斯函数之和
    BZOJ 4805: 欧拉函数求和
    BZOJ 3944: Sum
    3.25阅读摘抄
    生活整洁之道
    1064. 朋友数(20)
    1063. 计算谱半径(20)
    1061. 判断题(15)
    1062. 最简分数(20)
  • 原文地址:https://www.cnblogs.com/gaohai/p/5846477.html
Copyright © 2011-2022 走看看