类 Subdiv2D
- java.lang.Object
-
- org.opencv.imgproc.Subdiv2D
-
public class Subdiv2D extends java.lang.Object
-
-
字段摘要
字段 修饰符和类型 字段 描述 protected long
nativeObj
static int
NEXT_AROUND_DST
static int
NEXT_AROUND_LEFT
static int
NEXT_AROUND_ORG
static int
NEXT_AROUND_RIGHT
static int
PREV_AROUND_DST
static int
PREV_AROUND_LEFT
static int
PREV_AROUND_ORG
static int
PREV_AROUND_RIGHT
static int
PTLOC_ERROR
static int
PTLOC_INSIDE
static int
PTLOC_ON_EDGE
static int
PTLOC_OUTSIDE_RECT
static int
PTLOC_VERTEX
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static Subdiv2D
__fromPtr__(long addr)
int
edgeDst(int edge)
返回边的目标。int
edgeDst(int edge, Point dstpt)
返回边的目标。int
edgeOrg(int edge)
返回边的起点。int
edgeOrg(int edge, Point orgpt)
返回边的起点。protected void
finalize()
int
findNearest(Point pt)
查找最接近给定点的细分顶点。int
findNearest(Point pt, Point nearestPt)
查找最接近给定点的细分顶点。int
getEdge(int edge, int nextEdgeType)
返回与给定边相关的其中一条边。void
getEdgeList(MatOfFloat4 edgeList)
返回所有边的列表。void
getLeadingEdgeList(MatOfInt leadingEdgeList)
返回连接到每个三角形的引导边 ID 列表。long
getNativeObjAddr()
void
getTriangleList(MatOfFloat6 triangleList)
返回所有三角形的列表。Point
getVertex(int vertex)
根据顶点 ID 返回顶点位置。Point
getVertex(int vertex, int[] firstEdge)
根据顶点 ID 返回顶点位置。void
getVoronoiFacetList(MatOfInt idx, java.util.List<MatOfPoint2f> facetList, MatOfPoint2f facetCenters)
返回所有Voronoi面的列表。void
initDelaunay(Rect rect)
创建一个新的空Delaunay细分void
insert(MatOfPoint2f ptvec)
将多个点插入Delaunay三角剖分。int
insert(Point pt)
将单个点插入Delaunay三角剖分。int
locate(Point pt, int[] edge, int[] vertex)
返回点在Delaunay三角剖分中的位置。int
nextEdge(int edge)
返回围绕边起点的下一条边。int
rotateEdge(int edge, int rotate)
返回同一四边形的另一条边。int
symEdge(int edge)
-
-
-
字段详情
-
nativeObj
protected final long nativeObj
-
PTLOC_ERROR
public static final int PTLOC_ERROR
- 另请参见
- 常量字段值
-
PTLOC_OUTSIDE_RECT
public static final int PTLOC_OUTSIDE_RECT
- 另请参见
- 常量字段值
-
PTLOC_INSIDE
public static final int PTLOC_INSIDE
- 另请参见
- 常量字段值
-
PTLOC_VERTEX
public static final int PTLOC_VERTEX
- 另请参见
- 常量字段值
-
PTLOC_ON_EDGE
public static final int PTLOC_ON_EDGE
- 另请参见
- 常量字段值
-
NEXT_AROUND_ORG
public static final int NEXT_AROUND_ORG
- 另请参见
- 常量字段值
-
NEXT_AROUND_DST
public static final int NEXT_AROUND_DST
- 另请参见
- 常量字段值
-
PREV_AROUND_ORG
public static final int PREV_AROUND_ORG
- 另请参见
- 常量字段值
-
PREV_AROUND_DST
public static final int PREV_AROUND_DST
- 另请参见
- 常量字段值
-
NEXT_AROUND_LEFT
public static final int NEXT_AROUND_LEFT
- 另请参见
- 常量字段值
-
NEXT_AROUND_RIGHT
public static final int NEXT_AROUND_RIGHT
- 另请参见
- 常量字段值
-
PREV_AROUND_LEFT
public static final int PREV_AROUND_LEFT
- 另请参见
- 常量字段值
-
PREV_AROUND_RIGHT
public static final int PREV_AROUND_RIGHT
- 另请参见
- 常量字段值
-
-
构造函数详情
-
Subdiv2D
protected Subdiv2D(long addr)
-
Subdiv2D
public Subdiv2D()
创建一个空的 Subdiv2D 对象。要创建一个新的空 Delaunay 细分,您需要使用 #initDelaunay 函数。
-
Subdiv2D
public Subdiv2D(Rect rect)
- 参数
rect
- 包含要添加到细分的所有二维点的矩形。该函数创建一个空的 Delaunay 细分,可以使用 insert() 函数向其中添加二维点。所有要添加的点都必须在指定的矩形内,否则会引发运行时错误。
-
-
方法详情
-
getNativeObjAddr
public long getNativeObjAddr()
-
__fromPtr__
public static Subdiv2D __fromPtr__(long addr)
-
initDelaunay
public void initDelaunay(Rect rect)
创建一个新的空Delaunay细分- 参数
rect
- 包含要添加到细分的所有二维点的矩形。
-
insert
public int insert(Point pt)
将单个点插入Delaunay三角剖分。- 参数
pt
- 要插入的点。该函数将单个点插入细分并适当地修改细分拓扑。如果已经存在具有相同坐标的点,则不会添加新点。- 返回值
- 点的 ID。**注意:**如果点位于指定的 rect 三角剖分之外,则会引发运行时错误。
-
insert
public void insert(MatOfPoint2f ptvec)
将多个点插入Delaunay三角剖分。- 参数
ptvec
- 要插入的点。
-
locate
public int locate(Point pt, int[] edge, int[] vertex)
返回点在Delaunay三角剖分中的位置。- 参数
pt
- 要定位的点。edge
- 点所属的输出边,或者位于其右边的边。顶点
- 可选输出顶点,输入点与其重合。该函数在细分中定位输入点,并给出三角形的边或顶点之一。- 返回值
- 一个整数,指定以下五种点位置情况之一
- 点落在某个面上。该函数返回 #PTLOC_INSIDE,并且 edge 将包含该面的边之一。
- 点落在边上。该函数返回 #PTLOC_ON_EDGE,并且 edge 将包含此边。
- 点与细分顶点之一重合。该函数返回 #PTLOC_VERTEX,并且 vertex 将包含指向该顶点的指针。
- 点位于细分参考矩形之外。该函数返回 #PTLOC_OUTSIDE_RECT,并且不填充任何指针。
- 输入参数之一无效。将引发运行时错误,或者如果选择了静默或“父”错误处理模式,则返回 #PTLOC_ERROR。
-
findNearest
public int findNearest(Point pt, Point nearestPt)
查找最接近给定点的细分顶点。- 参数
pt
- 输入点。nearestPt
- 输出细分顶点。该函数是另一个在细分中定位输入点的函数。它查找最接近输入点的细分顶点。它不一定是包含输入点的面的顶点之一,尽管该面(使用 locate() 定位)用作起点。- 返回值
- 顶点 ID。
-
findNearest
public int findNearest(Point pt)
查找最接近给定点的细分顶点。- 参数
pt
- 输入点。该函数是另一个在细分中定位输入点的函数。它查找最接近输入点的细分顶点。它不一定是包含输入点的面的顶点之一,尽管该面(使用 locate() 定位)用作起点。- 返回值
- 顶点 ID。
-
getEdgeList
public void getEdgeList(MatOfFloat4 edgeList)
返回所有边的列表。- 参数
edgeList
- 输出向量。该函数将每条边作为 4 个数字的向量给出,其中每两个数字都是边的顶点之一。即 org_x = v[0],org_y = v[1],dst_x = v[2],dst_y = v[3]。
-
getLeadingEdgeList
public void getLeadingEdgeList(MatOfInt leadingEdgeList)
返回连接到每个三角形的引导边 ID 列表。- 参数
leadingEdgeList
- 输出向量。该函数为每个三角形提供一个边 ID。
-
getTriangleList
public void getTriangleList(MatOfFloat6 triangleList)
返回所有三角形的列表。- 参数
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]。
-
getVoronoiFacetList
public void getVoronoiFacetList(MatOfInt idx, java.util.List<MatOfPoint2f> facetList, MatOfPoint2f facetCenters)
返回所有Voronoi面的列表。- 参数
idx
- 要考虑的顶点 ID 向量。对于所有顶点,您可以传递空向量。facetList
- Voronoi 面片的输出向量。facetCenters
- Voronoi 面片中心点的输出向量。
-
getVertex
public Point getVertex(int vertex, int[] firstEdge)
根据顶点 ID 返回顶点位置。- 参数
vertex
- 顶点 ID。firstEdge
- 可选。连接到顶点的第一个边 ID。- 返回值
- 顶点 (x,y)
-
getVertex
public Point getVertex(int vertex)
根据顶点 ID 返回顶点位置。- 参数
vertex
- 顶点 ID。- 返回值
- 顶点 (x,y)
-
getEdge
public int getEdge(int edge, int nextEdgeType)
返回与给定边相关的其中一条边。- 参数
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。
-
nextEdge
public int nextEdge(int edge)
返回围绕边起点的下一条边。- 参数
edge
- 细分边 ID。- 返回值
- 一个整数,它是围绕边起点的下一个边 ID:上图中如果 e 是输入边,则为 eOnext。
-
rotateEdge
public int rotateEdge(int edge, int rotate)
返回同一四边形的另一条边。- 参数
edge
- 细分边 ID。rotate
- 指定返回与输入边相同的四边形边的哪个边的参数。可能的值如下:- 0 - 输入边 (下图中如果 e 是输入边,则为 e)
- 1 - 旋转边 (eRot)
- 2 - 反向边 (反向 e (绿色))
- 3 - 反向旋转边 (反向 eRot (绿色))
- 返回值
- 与输入边相同的四边形的边 ID 之一。
-
symEdge
public int symEdge(int edge)
-
edgeOrg
public int edgeOrg(int edge, Point orgpt)
返回边的起点。- 参数
edge
- 细分边 ID。orgpt
- 输出顶点位置。- 返回值
- 顶点 ID。
-
edgeOrg
public int edgeOrg(int edge)
返回边的起点。- 参数
edge
- 细分边 ID。- 返回值
- 顶点 ID。
-
edgeDst
public int edgeDst(int edge, Point dstpt)
返回边的目标。- 参数
edge
- 细分边 ID。dstpt
- 输出顶点位置。- 返回值
- 顶点 ID。
-
edgeDst
public int edgeDst(int edge)
返回边的目标。- 参数
edge
- 细分边 ID。- 返回值
- 顶点 ID。
-
finalize
protected void finalize() throws java.lang.Throwable
- 覆盖
finalize
在类java.lang.Object
中- 抛出
java.lang.Throwable
-
-