我使用EmguCV(OpenCV .NET Wrapper)使用
获取图像中的轮廓 CVInvoke.FindContours(...)
然后我遍历找到的轮廓并创建边界矩形并将它们添加到矩形列表中。
List<Rectangle> recList = new List<Rectangle>();
出于某种原因,FindContours不会返回分段轮廓的自然顺序,因为我们将自然定义,如何从从左到右对矩形列表进行排序,并从中遍历从上到下?
答案 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();