小编Rob*_*Rob的帖子

从左上角到右下角排序坐标

我使用C++和OpenCV从10x11 LED阵列的轮廓中提取了110个坐标,并将它们存储在矢量中.现在我想从左上角到右下角对它们进行排序,以检测某个行和列中的LED是否亮起.我通过y位置预先排列坐标,以确保向量中的前10个坐标代表我的图像中的第一个LED行.

vector<Point2f> centers;

bool compareY(Point2f p1, Point2f p2){
if(p1.y < p2.y) return true;
if(p1.y > p2.y) return false;
}

sort(centers.begin(), centers.end(), compareY);
Run Code Online (Sandbox Code Playgroud)

现在我必须按x位置对它们进行排序.问题在于来自第二行或任何其他行中的第一个LED的x位置可以比第一行中的第一个LED小一点.由于这个事实,他们必须从中心[0]到中心[9],中心[10]到中心[20] ......逐行排序.有人知道怎么做吗?

提前致谢!

编辑:管理对点进行排序,但我的基于轮廓检测的算法不够健壮,无法检测所有LED.有没有人想要一个强大的方法来检测它们?

c++ sorting opencv led coordinates

1
推荐指数
1
解决办法
1975
查看次数

标签 统计

c++ ×1

coordinates ×1

led ×1

opencv ×1

sorting ×1