C#从左到右排列矩形列表

时间:2018-03-06 05:07:28

标签: c# .net opencv emgucv rectangles

我使用EmguCV(OpenCV .NET Wrapper)使用

获取图像中的轮廓

CVInvoke.FindContours(...)

然后我遍历找到的轮廓并创建边界矩形并将它们添加到矩形列表中。

List<Rectangle> recList = new List<Rectangle>();

enter image description here

出于某种原因,FindContours不会返回分段轮廓的自然顺序,因为我们将自然定义,如何从从左到右对矩形列表进行排序,并从中遍历从上到下

1 个答案:

答案 0 :(得分:0)

我在这里遇到了同样的问题。但是使用OpenCVSharp

我的解决方案是LINQ表达式,用于对Rectangle列表进行排序。

List<Rectangle> rectangles = new List<Rectangle>();
// ...insert list values...
rectList = rectList.OrderBy(r => r.Left).ThenBy(r => r.Top).ToList();