我有一个包含MatOfPoints的列表,它只是我使用opencv
从图像中检测到的轮廓。
如何根据这些轮廓的List<MatOfPoints>
和x
坐标对y
进行排序?
我知道List
有一个sort
方法,但我对Comparator
参数感到困惑。
答案 0 :(得分:0)
这取决于你想要如何比较它,解决方案可能是:
@Override
public int compare(MatOfPoints mop1, MatOfPoints mop2) {
long sumMop = 0;
long sumMop2 = 0;
for( Point p: mop1.toList() ){
sumMop1 += p.x + p.y
}
for( Point p: mop2.toList() ){
sumMop2 += p.x + p.y
}
if( sumMop1 > sumMop2)
return 1;
else if( sumMop1 < sumMop2 )
return -1;
else
return 0;
}