opencv 点排序
时间: 2023-06-28 12:03:48 浏览: 121
opencv角点检测
4星 · 用户满意度95%
在 OpenCV 中,可以使用 `cv::sortIdx` 和 `cv::sort` 函数对点进行排序。
假设有一个 `cv::Mat` 类型的点数组 `points`,其中每个点都是一个 `cv::Point2f` 类型的对象。现在需要按照点的 x 坐标进行排序,可以使用以下代码:
```c++
cv::Mat indices;
cv::sortIdx(points.col(0), indices, CV_SORT_ASCENDING);
cv::Mat sorted_points = points.row(indices);
```
这段代码首先使用 `cv::sortIdx` 函数对 `points` 数组的第一列(即 x 坐标)进行排序,并将排序后的索引保存在 `indices` 中。然后,使用 `cv::Mat::row` 函数将 `points` 数组按照 `indices` 中的索引排序并保存在 `sorted_points` 中。
如果需要按照 y 坐标进行排序,只需将 `points.col(0)` 改为 `points.col(1)` 即可。
阅读全文