OpenCvSharp 轮廓排序:从左到右排列
要将 OpenCvSharp 中的轮廓从左到右排序,需要按照每个轮廓的最左侧点的 x 坐标进行排序。以下是一个示例代码:
// 假设 contours 是一组轮廓的列表
List<Point[]> contours = ...
// 对轮廓进行排序
contours.Sort((a, b) =>
{
int leftMostA = a.Min(p => p.X); // 获取轮廓 a 的最左侧点的 x 坐标
int leftMostB = b.Min(p => p.X); // 获取轮廓 b 的最左侧点的 x 坐标
return leftMostA.CompareTo(leftMostB); // 按照 x 坐标进行比较排序
});
在上面的代码中,我们使用了 List<T>.Sort 方法来对轮廓列表进行排序。这个方法接受一个比较器,我们使用了一个 lambda 表达式来定义比较器。在比较器中,我们使用了 LINQ 的 Min 方法来获取每个轮廓的最左侧点的 x 坐标,并使用 CompareTo 方法来比较两个轮廓的最左侧点的 x 坐标大小。这样,我们就可以将轮廓从左到右排序了。
原文地址: https://www.cveoy.top/t/topic/oej8 著作权归作者所有。请勿转载和采集!