首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Boost Envelope中获得最小边界矩形的所有四个角?

从Boost Envelope中获得最小边界矩形的所有四个角,可以通过以下步骤实现:

  1. 首先,确保你已经安装了Boost库,并在代码中引入相关的头文件。
代码语言:txt
复制
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point.hpp>
#include <boost/geometry/geometries/box.hpp>
  1. 定义一个Boost几何类型的容器,用于存储边界矩形的四个角点。
代码语言:txt
复制
typedef boost::geometry::model::d2::point_xy<double> point_type;
typedef boost::geometry::model::box<point_type> box_type;
typedef boost::geometry::model::polygon<point_type> polygon_type;

polygon_type polygon;
  1. 将Boost Envelope转换为多边形。
代码语言:txt
复制
boost::geometry::envelope(polygon, envelope);
  1. 获取多边形的外环。
代码语言:txt
复制
const auto& outer_ring = polygon.outer();
  1. 获取外环的四个角点。
代码语言:txt
复制
const auto& first_point = outer_ring.front();
const auto& last_point = outer_ring.back();
const auto& second_point = outer_ring[1];
const auto& third_point = outer_ring[2];

现在,你可以使用这四个角点进行进一步的处理,例如计算矩形的面积、旋转角度等。

这是一个基本的示例代码,你可以根据自己的需求进行修改和扩展。关于Boost库的更多信息和详细用法,请参考Boost官方文档:Boost.Geometry。如果你想了解腾讯云相关的产品和服务,可以访问腾讯云官方网站:腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

cv2.drawContours

以上面矩形为例,首先我们找到他轮廓cnt。现在把returnPoints设置为True查找凸包,得到就是矩形四个点。把returnPoints设置为False,得到是轮廓点索引。...k=cv2.isContourConvex(cnt)2.7边界矩形边界矩形,一个直矩形,没有旋转。不会考虑对象是否旋转。所以边界矩形面积不是最小。...(img,(x,y),(x+w,y+h),(0,255,0),2)旋转边界矩形,这个边界矩形是面积最小,因为它考虑了对象旋转。...返回是一个Box2D结构,其中包含矩形最上角点坐标(x,y)矩形宽和高(w,h)以及旋转角度。但是要绘制这个矩形需要矩形4个点,可以通过函数cv2.boxPoints()获得。...其中绿色为直矩形,红色为旋转矩形。?2.8最小外接圆 函数cv2.minEnclosingCircle()可以帮我们找到一个对象外接圆。它是所有能够包括对象面积最小一个。

3K10

opencv 7 -- 边界矩形

有两类边界矩形 一、直边界矩形—boundingRect() 一个直矩形(就是没有旋转矩形)。它不会考虑对象是否旋转。 所以边界矩形面积不是最小。...,y4]]) # 必须是array数组形式 二、旋转边界矩形 这个边界矩形是面积最小,因为它考虑了对象旋转。...min_rect[0][1]),(min_rect[1][0],min_rect[1][1]),0) 其中包含矩形左上角坐标(x,y),矩形宽和高(w,h),以及旋转角度。...但是要绘制这个矩形需要矩形 4 个点,可以通过函数 cv2.boxPoints() 获得 box:[ [x0,y0], [x1,y1], [x2,y2], [x3,y3] ] # 拿到每个轮廓坐标...(contours[i]) # 得到四个点 min_rect = ((min_rect[0][0],min_rect[0][1]),(min_rect[1][0],min_rect

1.7K20

OpenCV系列之轮廓特征 | 二十二

现在,我发现它带有returnPoints = True凸包,得到以下值:[[[234 202]],[[51 202]],[[51 79]],[[234 79]]],它们是四个 矩形点。...边界矩形 有两种类型边界矩形。 7.a.直角矩形 它是一个矩形,不考虑物体旋转。所以边界矩形面积不是最小。它是由函数cv.boundingRect()找到。...旋转矩形 这里,边界矩形是用最小面积绘制,所以它也考虑了旋转。使用函数是cv.minAreaRect()。...但要画出这个矩形,我们需要矩形四个。...绿色矩形显示正常边界矩形。红色矩形是旋转后矩形。 ? 8. 最小闭合圈 接下来,使用函数cv.minEnclosingCircle()查找对象圆周。它是一个以最小面积完全覆盖物体圆。

85720

谷歌发布PhotoScan:拍摄无炫光图片

具体来说,我们将每个图像划分成平铺,不重叠单元格,以形成网格,并将单元格像素流程表示为包含单元格四个双线性组合。 网格光流网格设置。...p表示为封装它单元格四个双线性插值。 左:在其中一个框架上计算流场图示。 右:流色彩编码:分别由色相和饱和度表示取向和幅度。...最后,为了组合无眩光输出,对于注册帧任何给定位置,我们检查像素值,并使用求最小值算法来获得最暗观察值。...因此,由于突出图像之间边界突然强度变化,每像素最小值可能产生可见接缝。 常规最小值(左)与软最小值(右)相比。...该方法分析图像信号,如颜色和边缘,以计算出扫描图像上原始照片准确边界,然后应用几何变换将四边形区域修正为原始矩形,产生高质量,无眩光数码版照片。

2.7K30

opencv(4.5.3)-python(十九)--轮廓线特征

[[234 202]], [[51 202]], [[51 79]], [[234 79]]是矩形四个点。...边界矩形 有两种类型边界矩形。 7.a. 直线边界矩形 这是一个直线矩形,它不考虑物体旋转。因此,边界矩形面积不会是最小。它是由函数cv.boundingRect()找到。...旋转矩形 这里,边界矩形是以最小面积绘制,所以它也考虑了旋转。使用函数是cv.minAreaRect()。...它返回一个包含以下细节Box2D结构--(中心(x,y),(宽度,高度),旋转角度)。但是要画这个矩形,我们需要矩形4个。...绿色矩形显示是正常边界矩形。红色矩形是旋转后矩形。 8. 最小包围圈 接下来,我们使用cv.minEnclosingCircle()函数找到一个物体圆。它是一个以最小面积完全覆盖物体圆。

86420

地理空间索引实现:z 曲线、希尔伯特曲线、四叉树, 最邻近几何特征查询、范围查询

空间索引定义: 依据空间实体位置和形状或空间实体之间某种空间关系,按一定顺序排列一种数据结构,其中包含空间实体概要信息,如对象标识,最小边界矩形及指向空间实体数据指针 常见空间索引技术有网格索引...如要获得较好网格划分,可以根据用户多次试验来获得经验最佳值, 也可以通过建立地理要素大小和空间分布等特征值来定量确定网格大小。 网格索引实现这里暂时没有涉及。...构造方法: 首先将整个数据空间分割成为四个相等矩阵,分别对应西北(NW),东北(NE),西南(SW),东南(SE)四个象限; 若每个象限内包含要素不超过给定桶量则停止,否则对超过桶量矩形再按照同样方法进行划分...四叉树索引构建: 四叉树创建输入一组几何特征,将节点分裂为四个子节点,每个特征加到包围盒重叠子节点中(即一个特征可能在多个节点中),删除当前节点几何特征记录(即所有特征只存储在叶节点中),如果子节点几何特征个数大于...首先,通过pointInLeafNode查询点(x, y)所在叶节点,计算查询点(x, y)与该叶节点内几何特征包围盒最大距离最小值minDist,即通过包围盒而非原始几何加速最小距离计算;然后

1K10

自识别标记(self-identifying marker) -(4) 用于相机标定CALTag源码剖析(下)

首先找到该quad外接最小矩形bbox, 二值化掩模mask,然后对mask边界加了3个像素pad,目的是方便后面做形态学闭运算,运算完再去掉pad。...然后找出边界轮廓上点,计算他们梯度方向,将这些梯度方向聚成4类,从而获得4个主要边缘方向。然后分别对每一类边界点进行线性拟合,得到4条拟合直线。然后计算它们交点就是点。...(下图中四个红色十字),这样每个真实点周围就会有四个点,那么如何根据这四个点来计算真实点坐标呢?...那么缺失标记在标记信息表位置wPtMissing就可以知道了。我们列出所有检测到图像坐标iPt、标记信息表坐标wPt,然后用RANSAC方法求wPt映射到iPt单应矩阵H。...一种是固定半径值,找出图中所有点半径不穿过code所需最大半径,然后选择其中最小那个作为固定半径值。另一种思路是自适应半径,对不同点选择不同半径,这个听起来很棒实现比较难。

1.5K90

沉寂四十年,海尔布隆三问题找到了更小上界

四个点可以定义四个不同形。十个点可以定义 120 个三形。三数量会随着点数量增长而快速增,100 个点可以定义 161,700 个不同形。...士兵们杂乱无序让他思考:如果正方形内有士兵,那么其中任意三个人定义最小那个三形,在士兵们位置不断变化时最大值是多少?...海尔布隆想知道如何安排士兵(或者抽象为点)以最大化这个最小大小。 Hans Heilbronn。...他猜测,无论这些点如何排列在正方形,都不可能有一个面积大于 1/n^2 左右最小形,这个数字会随着 n 增长而极速变小。但是他错了。...虽然 1980 年发现结论仍然是已知最大最小边界值,但 Cohen、 Pohoata 和 Zakharov 他们四十年来第一次成功地降低边界上界。

11820

地理空间数据库复习笔记:关系数据库标准语言、几何对象模型与查询

可使用extract函数timestamp类型变量中提取年月日信息,如:extract(year from date) 绘制日均租车量-时间变化直方图(在sql仅需输出month与number):...体表面(PolyhedraSurface) 由简单面沿着它们边界“缝合”而成 三维空间中多面体曲面总体上可以不平坦 相互接触一对多边形公共边可以表达为有限折线集合 三形(Triangle...内部:几何对象除边界所有直接位置(direct position)集合 直接位置是用坐标参考系一组坐标描述位置 几何维数与其本身维数一致 所有几何对象都有内部,即几何对象形状减去其边界部分...GEOMETRY_COLUMNS表:记录数据库中所有要素表及其几何列属性 SPATIAL_REF_SYS表 基于扩展几何类型实现 利用对象关系数据库对抽象数据类型支持,定义Geometry...() : Geometry 用于获取Geometry最小边界矩形 SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry)); Boundary

1K20

计算机视觉 OpenCV Android | 基本特征检测 之 轮廓分析

(1)边界框 最常见获取轮廓外接矩形边界框, 获取每个轮廓边界框, 通过它可以得到与各个轮廓相对应高度与宽度, 并能通过它计算出轮廓纵横比。...这种情况下得到边界框不一定满足条件,有时候我们还需要获取轮廓最小边界框。...(2)最小边界框 与上面边界框不同是, 获取到最小边界框有时候不是一个水平或者垂直矩形, 而是一个旋转了一定角度矩形, 但是最小外接矩形最小边界框)能够更加真实地反映出轮廓几何结构大小,...调用该API会返回一个RotatedRect对象实例, 它是OpenCV关于旋转矩形数据结构, 其包含了旋转角度,矩形宽、高及四个顶点等信息, 通过相关API都可以查询获得, 绘制旋转矩形对象时候..., 首先需要得到四个顶点, 然后通过OpenCV绘制直线API来完成旋转矩形绘制。

1.3K20

光怪陆离世界之Delaunay三剖分和Voronoi图

特别的,如果 V 中出现多点共圆(点个数>3), 则这种情况被称之为退化情况. 最大化最小角特性 唯一性:不论区域何处开始构建,最终都将得到一致结果。...最大化最小角特性给我们感觉是:某种程度上保证了每个三网格丰满, 而避免了狭长三产生,因为美学角度,狭长形并不是很惹人喜爱....所以我们只需要遍历 V 中所有点集,对每个点执行一次上面的程序,得到一个Voronoi图 多边形即可. 这里顺便说一下如何A顺时针或者逆时针获取相邻形....以四个点A、B、C、D举例,我们想建立该四点剖分,首先建立一个超级三形PQR,这个三形要把所有4点都包含进去。...产生炒鸡三思路非常简单,一图胜千言 如上图所示,我们获取点集 x 坐标的范围 [xmin, xmax] 和 y 坐标的范围 [ymin, ymax], 则我们可以画出一个矩形,该矩形四个顶点分别是

3.8K51

一文读懂傅里叶变换处理图像原理 !!

我们可以使用傅立叶变换将灰度像素模式图像信息转换成频域并做进一步处理。 今天,我将讨论在数字图像处理如何使用快速傅立叶变换,以及在Python如何实现它。...相位。 图 (d): (从左到右t) (1) 频谱 (2) 相位 图(d)(1)可以看出,四个上有一些对称图案。这些图案可以在下一步中转换到图像中心。 频谱图像白色区域显示出较高频率。...另一方面,很难图(d)(2)识别出任何明显图案,这并不代表快速傅立叶变换(FFT)相位完全没有用处,因为相位保留了图像所必需形状特征。...在图像,通过做适当重复计算来锐化原图像,能用适当重复计算来锐化原始图像图像,从高通滤波器输出可获得图像边缘。这将增强原始图像清晰度,使边缘更加清晰。...滤波器和D₀=50 高斯滤波器 把所有不同过滤器放在图(k),以总结我们在过滤器设计中所做工作。

15910

一文读懂傅立叶变换处理图像原理

图 (d): (从左到右t) (1) 频谱 (2) 相位 图(d)(1)可以看出,四个上有一些对称图案。这些图案可以在下一步中转换到图像中心。 频谱图像白色区域显示出较高频率。...另一方面,很难图(d)(2)识别出任何明显图案,这并不代表快速傅立叶变换(FFT)相位完全没有用处,因为相位保留了图像所必需形状特征。 第二步:将零频域部分移到频谱中心。...在图像,通过做适当重复计算来锐化原图像,能用适当重复计算来锐化原始图像图像,从高通滤波器输出可获得图像边缘。这将增强原始图像清晰度,使边缘更加清晰。...公式(c): 在Butterworth低通滤波器公式, D₀是一个合理常量, D(u,v)是频域中一点(u,v)与频域矩形中心之间距离 与理想滤波器不同是,巴特沃斯滤波器没有明显不连续性,使得通过频率和被过滤频率之间有明显边界...)与频域矩形中心之间距离 与巴特沃斯滤波器相比,高斯滤波器产生边界更平滑。

3.8K31

geotrellis使用(十六)使用缓冲区分析方式解决投影变换边缘数据值计算问题

,但是有问题边界比实际需要边界大,在用原始数据切割时候,“有问题边界”自然就被去掉了,就能得到一个正确结果。...3.裁剪结果        将得到处理结果按照原始区域进行切割即可得到最终结果,但是Geotrellis并没有提供不规则切割方式,只能按照矩形切割。...所以我们只能按照不规则区域外接矩形进行切割,而原始区域又不一定是矩形,即使按照外接矩形切割一样会在很多地方包含扩大后边界,得不到理想效果。...)        其中poly为原始区域,extent为缓冲区分析后面的外接矩形,crs为数据投影方式,poly.envelope获取原始区域外接矩形。...当然该方法不止能解决重采样造成问题,凡是涉及到边缘值计算都可以采用该方法,下一篇文章我将讲解如何使用该方法解决瓦片计算过程边缘问题。

1.2K40

《前端图形学实战》几何学在前端边界计算应用和原理分析

, 即可生成一个矩形元数据集合, 包含了: 左顶点坐标 矩形宽高数据 右底点坐标 矩形四个顶点坐标集合 有了以上数据之后, 我们就可以画出一个任意位置矩形。...经过上述步骤, 我们就实现了判断矩形边界功能. 是不是有种实现了 css hover 感觉呢?...计算鼠标指针是否在圆内部 上面分享了判断一个点是否在矩形实现方案, 接下来我们继续探索圆形边界问题。...通过以上实现, 我们就可以轻松计算任意矩形和圆形边界问题了, 这也是我们工作中比较常见计算场景, 接下来我们再来看一下如何计算三边界。 3....3.1 画一个线段开始 image.png 我们先来考虑一个简单问题: 已知两个点坐标 A(x0, y0) 和 B(x1, y1), 如何用 dom 画一个线段AB。

1.1K20

《前端图形学实战》几何学在前端边界计算应用和原理分析

, 即可生成一个矩形元数据集合, 包含了: 左顶点坐标 矩形宽高数据 右底点坐标 矩形四个顶点坐标集合 有了以上数据之后, 我们就可以画出一个任意位置矩形。...经过上述步骤, 我们就实现了判断矩形边界功能. 是不是有种实现了 css hover 感觉呢?...计算鼠标指针是否在圆内部 上面分享了判断一个点是否在矩形实现方案, 接下来我们继续探索圆形边界问题。...通过以上实现, 我们就可以轻松计算任意矩形和圆形边界问题了, 这也是我们工作中比较常见计算场景, 接下来我们再来看一下如何计算三边界。 3....3.1 画一个线段开始 image.png 我们先来考虑一个简单问题: 已知两个点坐标 A(x0, y0) 和 B(x1, y1), 如何用 dom 画一个线段AB。

1.2K10

目标检测:Anchor-Free时代

2.YOLO YOLO将目标检测作为一个空间分离边界框和相关类概率回归问题。可以直接整张图片预测出边界框和分类分数。...实例输入到特征金字塔所有层,然后求得所有anchor-free分支focal loss和IoU loss和,选择loss和最小特征层来学习实例。训练时,特征根据安排实例进行更新。...由于特征金字塔特征表示,不同尺度目标可以多个特征层检测到。 ? FoveaBox添加了2个子网络,一个子网络预测分类,另一个子网络预测bbox。 Object Fovea ?...总结: 1.各种方法关键在于gt如何定义 ps:关于这一点我稍加一点补充,目标检测gt是一个矩形框,然而用这个矩形框信息来检测目标显然是不合理,因为矩形框内只有一小部分是目标,而剩下是背景,这可能会导致检测器精度下降...,而最近一些anchor-free模型其实是改变了gt定义,比如cornernet定义为点,extremenet定义为极值点和中心点,FSAF、FoveaBox定义为矩形中间区域,FCOS虽然是矩形

53710
领券