- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要实现一个 C++ 代码来计算点的 ConvexHull 并返回索引,但我找不到用 C++ 实现的方法?
在 Matlab 和 Python 中,您只需将点数组传递给 ConvexHull 函数并返回索引即可;我们在 C++ 中有等效的东西吗?
最佳答案
我需要在 C++ 中获取点云的凸包索引,并且对 PCL 或 Boost 提供的函数不返回点索引这一事实感到恼火。你是对的,QHull 文档看起来很复杂。所以我去看了PCL source codes并自己提取。这是我得到的
extern "C"
{
#include <qhull/qhull.h>
}
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud; // some point cloud
int dimension = 2, size = cloud->size();
coordT* points = reinterpret_cast<coordT*> (calloc (size*dimension, sizeof(coordT)));
for (size_t i=0; i<size; ++i)
{
points[2*i] = static_cast<coordT> (cloud->points[i].x);
points[2*i+1] = static_cast<coordT> (cloud->points[i].y);
}
int exitcode = qh_new_qhull(dimension, size, points, true, const_cast<char*> ("qhull FA"), NULL, NULL);
if (exitcode != 0 || qh num_vertices == 0)
{
std::cerr << "ERROR: qhull was unable to compute a convex hull for the given point cloud" << std::endl;
}
pcl::PointIndices::Ptr hull_indices (new pcl::PointIndices());
vertexT * vertex;
FORALLvertices
{
hull_indices->indices.push_back(qh_pointid(vertex->point));
}
qh_freeqhull(!qh_ALL);
int curlong, totlong;
qh_memfreeshort(&curlong, &totlong);
请注意,这是针对 2D 点云的。对于其他维度或数据类型,您可以相应地进行修改。希望对您有所帮助!
关于C++ ConvexHull of points 算法(及其索引),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29040067/
我在 numpy 中有一组点,我通过 (scipy.spatial.ConvexHull 而不是 scipy.spatial.Delaunay.convex_hull) 计算它们的 ConvexHul
我无法理解如何计算 n 维点是否在 n 维 ConvexHull 内。 这里提出了一个非常相似的问题(相同): What's an efficient way to find if a point l
这是我的输入二值图像: 现在我想用 OpenCV 得到它的凸包。为此,我编写了以下代码: cv::Mat input = cv::imread("input.jpg", CV_LOAD_IMAGE_G
我正在尝试使用 scipy.spatial(来自 scipy.spatial import ConvexHull)绘制一系列点的凸包。 import pylab as pl from scipy.sp
我想检测图像中的矩形。 我使用 cv2.findContours() 和 cv2.convexHull() 过滤掉不规则多边形。 之后,我将使用船体长度来判断轮廓是否为矩形。 hull = cv2.c
请大家帮帮我。我有个问题。我从图像中进行了凸包检测。 然后,我在 ConvexHull 边界内的区域上填充颜色时遇到了问题。 有没有人可以帮我在ConvexHull边界内的区域填充颜色? 请帮助我实现
我需要实现一个 C++ 代码来计算点的 ConvexHull 并返回索引,但我找不到用 C++ 实现的方法? 在 Matlab 和 Python 中,您只需将点数组传递给 ConvexHull 函数并
我正在尝试生成随机凸多面体。我生成一组随机 3D 坐标,然后找到它们的凸包(到目前为止一切顺利)。 然后我想我会使用 Delaunay 三角剖分来给我凸包的三角剖分。这是我的基本理解开始显现的地方!
我关注了this链接以制作点 vector 。为了计算给定点的面积,我使用了凸包。为此,我遵循了 this .当我尝试计算 convexHull 内的面积时,发生以下错误。正如我在将 vector 点
我正在运行一个基于 Debian 的操作系统,上面安装了 python。我使用 apt-get 安装了 scipy,但是当我尝试使用 scipy.spatial 中的 ConvexHull 函数时,尽
我的 Android 应用程序的 jni 文件夹中有这个 C++ OpenCV 代码 hello-jni.cpp .我只想找到并绘制 convexhull 但原因是 hull[i] convexhul
Open-CV 2.4 Android-Java: 我已经像这样搜索轮廓(MatofPoint 列表): Imgproc.findContours(roi_mat, contours, hierarc
我正在尝试使用库 Scipy 和 ConvexHull 创建一个 Convex Hull。据我所知,它调用 QHull。 当我要添加的点没有“完整维度”时,就会出现问题。示例: from scipy.
scipy ConvexHull(参见 http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.ConvexHull.htm
我正在尝试运行一些 Convex Hull 图像处理。基本上我想做的是关闭一个开放的轮廓。 我找到了 this answer over at the opencv forum这正是我想做的。一段时间前
我是 openCV 的新手,一直在尝试将 openCV 库中的 convexhull 函数用于应用程序(正在使用 objective-C),我需要知道函数参数的输入格式是什么,这很令人困惑.这个函数是
我目前正在使用 C++ GEOS API 迭代 typedef Points(x 和 y 成员变量)的 vector。 我通过创建一个 geos::geom::Geometry 对象,在 0 处缓冲以
我正在尝试编写一个程序,可以围绕某个对象创建一个多边形(任意数量的边)并找到多边形的质心。为此,我选择使用 convexhull 和 findContours 函数。在下面的程序中,您将获得两个窗口。
我正在尝试获取使用开放姿势检测到的点的像素坐标值。有人可以告诉我这是识别像素坐标的正确方法吗?还是有其他特定方法可以获取下图中表示为 2 和 5 的像素坐标? 代码: for pair in POSE
我是一名优秀的程序员,十分优秀!