#include <opencv2/imgproc.hpp>
|
枚举 | {
PTLOC_ERROR = -2
,
PTLOC_OUTSIDE_RECT = -1
,
PTLOC_INSIDE = 0
,
PTLOC_VERTEX = 1
,
PTLOC_ON_EDGE = 2
} |
|
枚举 | {
NEXT_AROUND_ORG = 0x00 ,
NEXT_AROUND_DST = 0x22 ,
PREV_AROUND_ORG = 0x11 ,
PREV_AROUND_DST = 0x33 ,
NEXT_AROUND_LEFT = 0x13 ,
NEXT_AROUND_RIGHT = 0x31 ,
PREV_AROUND_LEFT = 0x20 ,
PREV_AROUND_RIGHT = 0x02
} |
|
|
| Subdiv2D () |
|
| Subdiv2D (Rect rect) |
|
int | edgeDst (int edge, Point2f *dstpt=0) const |
| 返回边的目标点。
|
|
int | edgeOrg (int edge, Point2f *orgpt=0) const |
| 返回边的起点。
|
|
int | findNearest (Point2f pt, Point2f *nearestPt=0) |
| 查找离给定点最近的细分顶点。
|
|
int | getEdge (int edge, int nextEdgeType) const |
| 返回与给定边相关的其中一条边。
|
|
void | getEdgeList (std::vector< Vec4f > &edgeList) const |
| 返回所有边的列表。
|
|
void | getLeadingEdgeList (std::vector< int > &leadingEdgeList) const |
| 返回与每个三角形连接的主边 ID 列表。
|
|
void | getTriangleList (std::vector< Vec6f > &triangleList) const |
| 返回所有三角形的列表。
|
|
Point2f | getVertex (int vertex, int *firstEdge=0) const |
| 根据顶点 ID 返回顶点位置。
|
|
void | getVoronoiFacetList (const std::vector< int > &idx, std::vector< std::vector< Point2f > > &facetList, std::vector< Point2f > &facetCenters) |
| 返回所有 Voronoi 小面的列表。
|
|
void | initDelaunay (Rect rect) |
| 创建一个新的空 Delaunay 细分。
|
|
void | insert (const std::vector< Point2f > &ptvec) |
| 将多个点插入 Delaunay 三角剖分。
|
|
int | insert (Point2f pt) |
| 将单个点插入 Delaunay 三角剖分。
|
|
int | locate (Point2f pt, int &edge, int &vertex) |
| 返回点在 Delaunay 三角剖分中的位置。
|
|
int | nextEdge (int edge) const |
| 返回围绕边起点的下一条边。
|
|
int | rotateEdge (int edge, int rotate) const |
| 返回相同四边形的另一条边。
|
|
int | symEdge (int edge) const |
|
◆ 匿名枚举
Subdiv2D 点位置情况
枚举器 |
---|
PTLOC_ERROR | 点位置错误。
|
PTLOC_OUTSIDE_RECT | 点位于细分边界矩形之外。
|
PTLOC_INSIDE | 点位于某个面的内部。
|
PTLOC_VERTEX | 点与细分顶点之一重合。
|
PTLOC_ON_EDGE | 点位于某条边上。
|
◆ 匿名枚举
Subdiv2D 边类型导航(参见:getEdge())
枚举器 |
---|
NEXT_AROUND_ORG | |
NEXT_AROUND_DST | |
PREV_AROUND_ORG | |
PREV_AROUND_DST | |
NEXT_AROUND_LEFT | |
NEXT_AROUND_RIGHT | |
PREV_AROUND_LEFT | |
PREV_AROUND_RIGHT | |
◆ Subdiv2D() [1/2]
cv::Subdiv2D::Subdiv2D |
( |
| ) |
|
Python |
---|
| cv.Subdiv2D( | | ) -> | <Subdiv2D 对象> |
| cv.Subdiv2D( | rect | ) -> | <Subdiv2D 对象> |
◆ Subdiv2D() [2/2]
cv::Subdiv2D::Subdiv2D |
( |
Rect | rect | ) |
|
Python |
---|
| cv.Subdiv2D( | | ) -> | <Subdiv2D 对象> |
| cv.Subdiv2D( | rect | ) -> | <Subdiv2D 对象> |
这是一个重载的成员函数,为了方便提供。它与上面的函数的区别仅在于它接受的参数。
- 参数
-
该函数创建一个空的Delaunay细分,可以使用函数insert()添加二维点。所有要添加的点都必须在指定的矩形内,否则会引发运行时错误。
◆ calcVoronoi()
void cv::Subdiv2D::calcVoronoi |
( |
| ) |
|
|
protected |
◆ checkSubdiv()
void cv::Subdiv2D::checkSubdiv |
( |
| ) |
const |
|
protected |
◆ clearVoronoi()
void cv::Subdiv2D::clearVoronoi |
( |
| ) |
|
|
protected |
◆ connectEdges()
int cv::Subdiv2D::connectEdges |
( |
int | edgeA, |
|
|
int | edgeB ) |
|
protected |
◆ deleteEdge()
void cv::Subdiv2D::deleteEdge |
( |
int | edge | ) |
|
|
protected |
◆ deletePoint()
void cv::Subdiv2D::deletePoint |
( |
int | vtx | ) |
|
|
protected |
◆ edgeDst()
int cv::Subdiv2D::edgeDst |
( |
int | edge, |
|
|
Point2f * | dstpt = 0 ) const |
Python |
---|
| cv.Subdiv2D.edgeDst( | edge | ) -> | retval, dstpt |
◆ edgeOrg()
int cv::Subdiv2D::edgeOrg |
( |
int | edge, |
|
|
Point2f * | orgpt = 0 ) const |
Python |
---|
| cv.Subdiv2D.edgeOrg( | edge | ) -> | retval, orgpt |
◆ findNearest()
Python |
---|
| cv.Subdiv2D.findNearest( | pt | ) -> | retval, nearestPt |
查找离给定点最近的细分顶点。
- 参数
-
该函数是另一个在细分中定位输入点的函数。它查找最接近输入点的细分顶点。它不一定是包含输入点的面的顶点之一,尽管该面(使用locate()定位)用作起点。
- 返回值
- 顶点ID。
◆ getEdge()
int cv::Subdiv2D::getEdge |
( |
int | edge, |
|
|
int | nextEdgeType ) const |
Python |
---|
| cv.Subdiv2D.getEdge( | edge, nextEdgeType | ) -> | retval |
返回与给定边相关的其中一条边。
- 参数
-
edge | 细分边ID。 |
nextEdgeType | 指定要返回的关联边的参数。可能的取值如下:
- NEXT_AROUND_ORG 围绕边的起点下一个(下图中如果e是输入边,则为eOnext)
- NEXT_AROUND_DST 围绕边的终点下一个(eDnext)
- PREV_AROUND_ORG 围绕边的起点上一个(反向eRnext)
- PREV_AROUND_DST 围绕边的终点上一个(反向eLnext)
- NEXT_AROUND_LEFT 围绕左侧面下一个(eLnext)
- NEXT_AROUND_RIGHT 围绕右侧面下一个(eRnext)
- PREV_AROUND_LEFT 围绕左侧面上一个(反向eOnext)
- PREV_AROUND_RIGHT 围绕右侧面上一个(反向eDnext)
|
示例输出
- 返回值
- 与输入边相关的边ID。
◆ getEdgeList()
void cv::Subdiv2D::getEdgeList |
( |
std::vector< Vec4f > & | edgeList | ) |
const |
Python |
---|
| cv.Subdiv2D.getEdgeList( | | ) -> | edgeList |
返回所有边的列表。
- 参数
-
该函数将每条边作为4个数字的向量给出,其中每两个数字是边的顶点之一。即 org_x = v[0],org_y = v[1],dst_x = v[2],dst_y = v[3]。
◆ getLeadingEdgeList()
void cv::Subdiv2D::getLeadingEdgeList |
( |
std::vector< int > & | leadingEdgeList | ) |
const |
Python |
---|
| cv.Subdiv2D.getLeadingEdgeList( | | ) -> | leadingEdgeList |
返回与每个三角形连接的主边 ID 列表。
- 参数
-
该函数为每个三角形给出唯一一个边ID。
◆ getTriangleList()
void cv::Subdiv2D::getTriangleList |
( |
std::vector< Vec6f > & | triangleList | ) |
const |
Python |
---|
| cv.Subdiv2D.getTriangleList( | | ) -> | triangleList |
返回所有三角形的列表。
- 参数
-
该函数将每个三角形作为6个数字的向量给出,其中每两个数字是三角形的顶点之一。即 p1_x = v[0],p1_y = v[1],p2_x = v[2],p2_y = v[3],p3_x = v[4],p3_y = v[5]。
◆ getVertex()
Point2f cv::Subdiv2D::getVertex |
( |
int | vertex, |
|
|
int * | firstEdge = 0 ) const |
Python |
---|
| cv.Subdiv2D.getVertex( | vertex | ) -> | retval, firstEdge |
根据顶点 ID 返回顶点位置。
- 参数
-
vertex | 顶点ID。 |
firstEdge | 可选。连接到顶点的第一个边ID。 |
- 返回值
- 顶点 (x,y)
◆ getVoronoiFacetList()
void cv::Subdiv2D::getVoronoiFacetList |
( |
const std::vector< int > & | idx, |
|
|
std::vector< std::vector< Point2f > > & | facetList, |
|
|
std::vector< Point2f > & | facetCenters ) |
Python |
---|
| cv.Subdiv2D.getVoronoiFacetList( | idx | ) -> | facetList, facetCenters |
返回所有 Voronoi 小面的列表。
- 参数
-
idx | 需要考虑的顶点 ID 向量。对于所有顶点,可以传递空向量。 |
facetList | Voronoi 面片的输出向量。 |
facetCenters | Voronoi 面片中心点的输出向量。 |
◆ initDelaunay()
void cv::Subdiv2D::initDelaunay |
( |
Rect | rect | ) |
|
Python |
---|
| cv.Subdiv2D.initDelaunay( | rect | ) -> | 无 |
◆ insert() [1/2]
void cv::Subdiv2D::insert |
( |
const std::vector< Point2f > & | ptvec | ) |
|
Python |
---|
| cv.Subdiv2D.insert( | pt | ) -> | retval |
| cv.Subdiv2D.insert( | ptvec | ) -> | 无 |
将多个点插入 Delaunay 三角剖分。
- 参数
-
该函数将点向量插入细分中,并相应地修改细分拓扑结构。
◆ insert() [2/2]
int cv::Subdiv2D::insert |
( |
Point2f | pt | ) |
|
Python |
---|
| cv.Subdiv2D.insert( | pt | ) -> | retval |
| cv.Subdiv2D.insert( | ptvec | ) -> | 无 |
将单个点插入 Delaunay 三角剖分。
- 参数
-
该函数将单个点插入细分中,并相应地修改细分拓扑结构。如果已存在具有相同坐标的点,则不会添加新点。
- 返回值
- 点的 ID。
- 注意
- 如果点位于指定的三角剖分矩形外部,则会引发运行时错误。
◆ isRightOf()
int cv::Subdiv2D::isRightOf |
( |
Point2f | pt, |
|
|
int | edge ) const |
|
protected |
◆ locate()
int cv::Subdiv2D::locate |
( |
Point2f | pt, |
|
|
int & | edge, |
|
|
int & | vertex ) |
Python |
---|
| cv.Subdiv2D.locate( | pt | ) -> | retval, edge, vertex |
返回点在 Delaunay 三角剖分中的位置。
- 参数
-
pt | 要定位的点。 |
edge | 点所属的输出边,或者位于其右边的边。 |
vertex | 输入点与之重合的可选输出顶点。 |
该函数在细分内定位输入点,并给出其中一个三角形边或顶点。
- 返回值
- 一个整数,用于指定点位置的以下五种情况之一
◆ newEdge()
int cv::Subdiv2D::newEdge |
( |
| ) |
|
|
protected |
◆ newPoint()
int cv::Subdiv2D::newPoint |
( |
Point2f | pt, |
|
|
bool | isvirtual, |
|
|
int | firstEdge = 0 ) |
|
protected |
◆ nextEdge()
int cv::Subdiv2D::nextEdge |
( |
int | edge | ) |
const |
Python |
---|
| cv.Subdiv2D.nextEdge( | edge | ) -> | retval |
返回围绕边起点的下一条边。
- 参数
-
- 返回值
- 一个整数,表示围绕边原点的下一个边 ID:如果 e 是输入边,则在上图中为 eOnext。
◆ rotateEdge()
int cv::Subdiv2D::rotateEdge |
( |
int | edge, |
|
|
int | rotate ) const |
Python |
---|
| cv.Subdiv2D.rotateEdge( | edge, rotate | ) -> | retval |
返回相同四边形的另一条边。
- 参数
-
edge | 细分边ID。 |
rotate | 指定要返回与输入边相同的四边形边的参数。可能的取值如下:
- 0 - 输入边(如果 e 是输入边,则在下图中为 e)
- 1 - 旋转边 (eRot)
- 2 - 反向边(反向 e(绿色))
- 3 - 反向旋转边(反向 eRot(绿色))
|
- 返回值
- 与输入边相同的四边形边之一的 ID。
◆ setEdgePoints()
void cv::Subdiv2D::setEdgePoints |
( |
int | edge, |
|
|
int | orgPt, |
|
|
int | dstPt ) |
|
protected |
◆ splice()
void cv::Subdiv2D::splice |
( |
int | edgeA, |
|
|
int | edgeB ) |
|
protected |
◆ swapEdges()
void cv::Subdiv2D::swapEdges |
( |
int | edge | ) |
|
|
protected |
◆ symEdge()
int cv::Subdiv2D::symEdge |
( |
int | edge | ) |
const |
Python |
---|
| cv.Subdiv2D.symEdge( | edge | ) -> | retval |
◆ bottomRight
◆ freePoint
int cv::Subdiv2D::freePoint |
|
protected |
◆ freeQEdge
int cv::Subdiv2D::freeQEdge |
|
protected |
◆ qedges
std::vector<QuadEdge> cv::Subdiv2D::qedges |
|
protected |
◆ recentEdge
int cv::Subdiv2D::recentEdge |
|
protected |
◆ topLeft
◆ validGeometry
bool cv::Subdiv2D::validGeometry |
|
protected |
◆ vtx
std::vector<Vertex> cv::Subdiv2D::vtx |
|
protected |
此类的文档是从以下文件生成的: