zoukankan      html  css  js  c++  java
  • Opencv 计算图片旋转角度

    vector<vector<Point>> vec_point;
    vector<Vec4i> hireachy;
    findContours(img_canny1, vec_point, hireachy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));
    //绘制轮廓
    img3 = Mat::zeros(img1.size(),CV_8UC1);
    float maxw = 0;
    float maxh = 0;
    double degree = 0;

    for (size_t t=0;t<vec_point.size();t++)
    {
      RotatedRect minRect = minAreaRect(vec_point[t]);
      degree = abs(minRect.angle);
      if (degree>0)
      {
        maxw = max(maxw,minRect.size.width);
        maxh = max(maxh,minRect.size.height);
      }
    }

    for (size_t t=0;t<vec_point.size();t++)
    {
      RotatedRect minRect = minAreaRect(vec_point[t]);
      if (maxw ==minRect.size.width && maxh == minRect.size.height)
      {
        degree = minRect.angle;
        Point2f pts[4];
        minRect.points(pts);
        Scalar color_1 = Scalar(rng1.uniform(0,255), rng1.uniform(0, 255), rng1.uniform(0, 255));
        for (int k=0;k<4;k++)
        {
          line(img3,pts[k],pts[(k+1)%4],color_1,2,8,0);
        }
      }
    }

    cout << degree<< endl;

  • 相关阅读:
    多条件复合搜索的实现
    mysql字符集统一
    JS控制彈出窗口
    mysql常用sql
    正则表达式
    航班时间
    1月19日
    1月28日check小爱用
    在么小猫
    大连美发备考
  • 原文地址:https://www.cnblogs.com/herd/p/9754633.html
Copyright © 2011-2022 走看看