当前位置: 首页 > news >正文

steamcn网站是谁做的免费精准客源

steamcn网站是谁做的,免费精准客源,全国装修公司前50强,2021要打仗了是真的吗计算点集的最小外接矩形——OpenCV的minAreaRect函数 函数原型 输入一系列二维点&#xff0c;返回其最小外接矩形。 RotatedRect minAreaRect( InputArray points );根据函数原型&#xff0c;输入的数据可以是vector<Point>类型&#xff0c;包含1个以上的点&#xff1…

计算点集的最小外接矩形——OpenCV的minAreaRect函数

函数原型

输入一系列二维点,返回其最小外接矩形。

RotatedRect minAreaRect( InputArray points );

根据函数原型,输入的数据可以是vector<Point>类型,包含1个以上的点;
返回值是RotatedRect类型,该类型的定义如下:

class CV_EXPORTS RotatedRect
{
public://! default constructorRotatedRect();/** full constructor@param center 矩形的质心@param size 矩形的宽和高@param angle 顺时针定义的旋转角。当值为0, 90, 180, 270等90的整数倍时,该矩形为直立矩形(底边水平)*/RotatedRect(const Point2f& center, const Size2f& size, float angle);RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3);/** returns 返回矩形的四个顶点@param pts 顺序是原始矩形的左下、左上、右上、右下顶点(顺时针顺序)。*/void points(Point2f pts[]) const;//! returns 返回当前矩形的最小外接直立矩形(坐标为整数)Rect boundingRect() const;//! returns 返回包含当前矩形的最小外接矩形(坐标为浮点数),不适合用于图像Rect_<float> boundingRect2f() const;//! returns 质心Point2f center;//! returns 宽、高Size2f size;//! returns 矩形相对于直立矩形的旋转角。float angle;
};

对于用户而言,最重要的是三个属性:centersizeangle。其中sizeangle需要着重介绍一下:

RotatedRect的size成员变量

某些用户可能认为宽width<高height,但是size成员变量中,并非如此!宽width表示矩形底边的长度,高height表示矩形竖直边的长度。

void points()输出的点坐标顺序

官方文档定义,points输出的点在原始(未旋转)矩形中依次是左下、左上、右上、右下点,说的有些不明不白;
实际上,序号为0的点是minAreaRect返回的矩形最左侧的点,1\2\3号点依次按顺时针确定。请参照下一节的图示。

RotatedRect的angle成员变量

该变量描述了矩阵从直立旋转到当前状态顺时针转过的角度值,其取值范围是[0,90]
换句话说,angle是points()输出的0号点与1号点构成的线段与竖直方向的夹角。请参照下一节的图示。

矩形顶点编号与角度图示

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

测试代码

给出一段测试代码,方便读者理解该函数:

#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"#include <iostream>using namespace cv;
using namespace std;static void help()
{cout << "This program demonstrates finding the minimum enclosing box of a set\n"<< "of points using function: minAreaRect().\n"<< "Random points are generated and then enclosed.\n\n"<< "Press ESC, 'q' or 'Q' to exit and any other key to regenerate the set of points.\n\n";
}int main(int /*argc*/, char** /*argv*/)
{help();Mat img(500, 500, CV_8UC3, Scalar::all(0));RNG& rng = theRNG();for (;;){int i, count = rng.uniform(1, 101);vector<Point> points;// Generate a random set of pointsfor (i = 0; i < count; i++){Point pt;pt.x = rng.uniform(img.cols / 4, img.cols * 3 / 4);pt.y = rng.uniform(img.rows / 4, img.rows * 3 / 4);points.push_back(pt);}// Find the minimum area enclosing bounding boxPoint2f vtx[4];RotatedRect box = minAreaRect(points);box.points(vtx);img = Scalar::all(0);// Draw the pointsfor (i = 0; i < count; i++)circle(img, points[i], 3, Scalar(0, 0, 255), FILLED, LINE_AA);// 定义圆弧的参数cv::Point center = vtx[0];cv::Size axes(10, 10);double angle = 0;double startAngle = -90; // 圆弧起始角度(以度为单位)double endAngle = box.angle-90; // 圆弧结束角度(以度为单位)cv::Scalar color(0, 255, 0); // 绿色// 在图像上绘制表示角度的圆弧cv::ellipse(img, center, axes, angle, startAngle, endAngle, color,2);line(img, vtx[0], cv::Point(vtx[0].x,48), Scalar(255, 255, 255), 1, LINE_AA);// Draw the bounding boxfor (i = 0; i < 4; i++){line(img, vtx[i], vtx[(i + 1) % 4], Scalar(0, 255, 0), 1, LINE_AA);putText(img, to_string(i), vtx[i]-cv::Point2f(16,-32), FONT_HERSHEY_SIMPLEX, 1, Scalar(255, 255, 255));}// Show the text info about the rectangle box.cv::String strRectInfo = "The angle is: ";strRectInfo += std::to_string(box.angle);cv::putText(img, strRectInfo, cv::Point(0, 32), cv::FONT_HERSHEY_SIMPLEX, 1.0, cv::Scalar(255,255,255));imshow("Rectangle, triangle & circle", img);char key = (char)waitKey();if (key == 27 || key == 'q' || key == 'Q') // 'ESC'break;}return 0;
}

参考

opencv官方文档

http://www.dinnco.com/news/81155.html

相关文章:

  • 网站栏目怎么做南京seo网络推广
  • 酒店网站案例网站内链优化
  • 网站制作钱企业网站建设价格
  • 社交网站上的商城怎么做百度网站链接提交入口
  • 如何在记事本中做网站链接百度竞价优化软件
  • 公司想做个网站关键词优化排名查询
  • wordpress禁用谷歌字体禁用头像网站seo方案策划书
  • 安徽白云集团网站建设网络seo哈尔滨
  • 呼市做网站整站优化网站
  • 德文网站建设域名注册平台
  • 天河区网站制作朋友圈网络营销
  • 铜陵做网站成都网站seo报价
  • 那个网站可教做课件好seo服务加盟
  • 广东长海建设工程有限公司网站怎么做网页宣传
  • 电子商务网站建设试题3腾讯企业邮箱
  • 网站建设与推广seo优化便宜
  • 郑州网站推广效果掌门一对一辅导官网
  • 常用的建站工具有哪些看书网站排名
  • 网站设计建设平台网站推广公司推荐
  • 什么网站可以接单做设计百度seo优化推广公司
  • 政府网站设计理念网络营销的优势与不足
  • 太原做企业网站的广州seo
  • 闵行区做网站公司宁波seo哪家好快速推广
  • 网站后期维护费用百度免费官网入口
  • 网站建设问题新闻资讯营销最好的方法
  • 做文献综述用什么网站提高网站搜索排名
  • 无锡企业网站制作公司有哪些网站首页面设计
  • wordpress动态添加字段宁波营销型网站建设优化建站
  • 哪些网站可以做任务赚钱百度seo综合查询
  • 线上培训平台谷歌seo推广服务