gpt4 book ai didi

java - 如何从上到下对轮廓进行排序: Opencv , Android

转载 作者:行者123 更新时间:2023-12-01 11:37:55 36 4
gpt4 key购买 nike

我已经找到了轮廓,但问题是 findcontours() 以随机顺序返回轮廓,就像在contour(0) 中一样,它显示了页面中间的一些sontour。如何垂直排序它们?从上到下然后从左到右?鉴于下图,我水平连接了组件,并将每个 MCQ 与其选择连接起来,然后应用 findcontours() ,现在我想按照应按顺序检索的顺序对它们进行排序

enter image description here

最佳答案

我也有同样的问题,使用java的sort方法。

//sort by y coordinates using the topleft point of every contour's bounding box
Collections.sort(contourList, new Comparator<MatOfPoint>() {
@Override
public int compare(MatOfPoint o1, MatOfPoint o2) {
Rect rect1 = Imgproc.boundingRect(o1);
Rect rect2 = Imgproc.boundingRect(o2);
int result = Double.compare(rect1.tl().y, rect2.tl().y);
return result;
}
} );


//sort by x coordinates
Collections.sort(contourList, new Comparator<MatOfPoint>() {
@Override
public int compare(MatOfPoint o1, MatOfPoint o2) {
Rect rect1 = Imgproc.boundingRect(o1);
Rect rect2 = Imgproc.boundingRect(o2);
int result = 0;
double total = rect1.tl().y/rect2.tl().y;
if (total>=0.9 && total<=1.4 ){
result = Double.compare(rect1.tl().x, rect2.tl().x);
}
return result;
}
});

关于java - 如何从上到下对轮廓进行排序: Opencv , Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808847/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com