- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
构建三角剖分的代码:
CvSubdiv2D *subdiv;
CvMemStorage *storage = cvCreateMemStorage(0);
CvRect rectangle = cvRect(0, 0, 100, 100);
subdiv = cvCreateSubdivDelaunay2D(rectangle, storage);
CvPoint2D32f p1 = cvPoint2D32f(10, 10);
CvPoint2D32f p2 = cvPoint2D32f(50, 10);
CvPoint2D32f p3 = cvPoint2D32f(10, 50);
cvSubdivDelaunay2DInsert(subdiv, p1);
cvSubdivDelaunay2DInsert(subdiv, p2);
cvSubdivDelaunay2DInsert(subdiv, p3);
之后,使用其中一个点进行查询:
CvSubdiv2DEdge edge;
CvSubdiv2DPoint *pp;
CvSubdiv2DPointLocation loc = cvSubdiv2DLocate(subdiv, p1, &edge, &pp);
得到结果后,您必须检查点是否落在:
在这种情况下,它是一个顶点:
if(loc == CV_PTLOC_VERTEX) {
// CvSubdiv2DPoint *tp = cvSubdiv2DEdgeOrg(edge);
// CvPoint2D32f point = tp->pt;
// std::cout << point.x << ", " << point.y << std::endl;
// CvSubdiv2DPoint *tp = cvSubdiv2DEdgeOrg(pp->first);
// CvPoint2D32f point = tp->pt;
// std::cout << point.x << ", " << point.y << std::endl;
}
但是,我的两种方法都失败了。在前 3 行中,我尝试查看 locate
是否已将正确的边放在参数上。它没有,我遇到了段错误。在第二个 block 中,我尝试访问 CvSubdiv2DPoint
结构中的 first
元素,但它也不起作用——段错误。我找不到 first
上的点,也无法使用它迭代其他边。
CvSubdiv2DPoint
没用的原因是,为了遍历结构并实际找到三角形,我需要一个 CvSubdiv2DEdge
,但由于我无法转换从一个点到一条边,函数的结果是没有用的。
我可能忽略了一些东西,但对我来说它似乎坏了。 Here's the documentation.有什么想法吗?
最佳答案
可以使用序列功能迭代边,这里是代码:
CvMemStorage* storage = cvCreateMemStorage();
CvSubdiv2D* subdivision = cvCreateSubdivDelaunay2D(rect, storage);
for (int i = 0; i < points.size(); ++i)
{
cvSubdivDelaunay2DInsert(subdivision, points[i]);
}
cvCalcSubdivVoronoi2D(subdivision);
CvSeqReader reader;
CvSeq* seq = (CvSeq*) subdivision->edges;
cvStartReadSeq(seq, &reader);
for (int i = 0; i < seq->total; ++i)
{
CvQuadEdge2D* edge = (CvQuadEdge2D*)reader.ptr;
if (CV_IS_SET_ELEM(edge))
{
//Do something...
}
CV_NEXT_SEQ_ELEM(seq->elem_size, reader);
}
if (storage != 0)
{
cvReleaseMemStorage(&storage);
}
虽然我没有找到一种方法来迭代连接到某个顶点的边,顺便说一句,使用 segmentation 本身作为序列以相同的方式迭代顶点。
关于c++ - 当给定位的点是三角形的顶点之一时,OpenCV 的 Subdiv2D/Delaunay 是否损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960532/
我在彼此内部有 2 个 Div,内部 div 有 z-index:2,当鼠标悬停在 Div Submenu 上并且主 div 有 z-index:1 时会显示,但是当我将鼠标移到 Submenu 上时
我有一个 div,它由一个图像和一个位于图像下方的描述框组成。图片应该占 parent 高度的2/3,而描述占高度的三分之一。整个 div 占据了屏幕宽度的 30%,两个子元素都跨越了父元素的宽度。图
safsdghfghjghjkhkhjkhjkklhjkjh 如何使图像适合 div 并使文本适合 div 并使所
这就是我想要得到的: 到目前为止我有: #row1 {margin-top: 15px; margin-bottom: 5px; overflow: hidden; border-bottom: 1p
我是一名优秀的程序员,十分优秀!