当前位置: 首页 > 知识库问答 >
问题:

用Tl()排序包围盒:Opencv Android

岳英耀
2023-03-14

我试图用y轴和x轴对边界框进行排序,但我从tl()中找到的结果除外。x和tl()。y有点混乱,经过大量工作,我在文档中找不到任何东西。下面是一些结果,请看一看。我希望他们从1点到30点有序

代码:

m = Utils.loadResource(MainActivity.this, R.drawable.sheet1, Highgui.CV_LOAD_IMAGE_COLOR);
//Mat original = Utils.loadResource(MainActivity.this, R.drawable.sheet1, Highgui.CV_LOAD_IMAGE_COLOR);
Bitmap bm = Bitmap.createBitmap(m.cols(), m.rows(),Bitmap.Config.ARGB_8888);

Imgproc.cvtColor(m, m, Imgproc.COLOR_BGR2GRAY);
Imgproc.medianBlur(m, m,3); 
Imgproc.threshold(m, m, 0, 255, Imgproc.THRESH_OTSU);
Core.bitwise_not(m, m);
Imgproc.dilate(m, m, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(1,118)));

java.util.List<MatOfPoint> contours = new ArrayList<MatOfPoint>();                  
Imgproc.findContours(m.clone(), contours, new Mat() ,Imgproc.RETR_EXTERNAL , Imgproc.CHAIN_APPROX_SIMPLE);
Rect rect = Imgproc.boundingRect(contours.get(35));                         
Toast.makeText(MainActivity.this, "TL:"+rect.tl()+"BR:"+rect.br(), Toast.LENGTH_LONG).show();

编辑:

原始图片:

共有1个答案

乐欣可
2023-03-14

所以你想先从左到右,然后从上到下按优先级排序。x坐标更重要,但是对于类似的x,重要的是y。编写一个排序函数,其中有一个伪代码形式的关系,如下所示:

boolean isLessThan(bboxA,bboxB,unsigned int tolerance = 100) {

    if (bboxA.tl().x + tolerance < bboxB.tl().x);
         return true;
    if (bboxB.tl().x + tolerance < bboxA.tl().x);
         return false;
    return (bboxA.tl().y < bboxB.tl().y);

    }

(或硬编码<code>公差</code>)

 类似资料:
  • 我正在用React生成SVG编写一个可视化应用程序。我需要的部分之一是一个标签--即文本,由一个封闭框包围,带有可变文本,可能旋转和样式化。 因此,我有一个的组件,当前具有固定的维度: 我在DOM中找到了一些关于这样做的信息,这里是:SVG文本周围的矩形边框 更新:2018年1月,我再次回到这里:-)实际的应用程序是一个开源的网络图绘制工具,目前使用GD和PHP,但我希望可以使用JS、React和

  • 我是cocos2d-x的新手,我正在xcode中使用cocos2d-x开发一个游戏。在我的游戏中,我增加了玩家精灵和障碍精灵。障碍精灵不断从右向左移动。现在我正在尝试添加两个精灵之间的碰撞。所以我使用了包围盒。以下是我的代码。但它不起作用。这是我第一次使用边框。 我在init()函数中创建了sprite,并在init函数中声明了上述代码。请帮我解决这个问题。

  • hibernate实体具有以驼峰大小写命名的字段,但是当从RESTAPI返回由该实体构造的DTO时,我们将字段名转换为snake大小写。 有一种通用方法可以将每个DTO字段转换为具有类似jackson配置的snake case 现在的问题是,例如,使用Spring分页和排序,如果我们想按参数排序,我们需要将参数作为camel case而不是snake case传递。 例子: 实体看起来像这样: D

  • 是否可以在elasticsearch中更改范围聚合结果的排序?我在elasticsearch中有一个键控范围查询,并希望根据键而不是doc_count进行排序。 我的文件是: 和聚合查询: 此查询的结果是: 我想根据关键字对结果进行排序,而不是根据范围值。根据elasticsearch文档,无法指定排序顺序,当指定排序顺序时,我得到以下异常: 你有什么办法吗?谢谢!

  • Word模板引擎,基于Microsoft Word模板和数据生成新的文档,并且支持用户自定义函数,函数可以在Word模板的任何位置执行。 poi-tl是一个完全的Java类库,你可以非常方便的加入到你的Java项目中,核心API只需要一行代码: XWPFTemplate template = XWPFTemplate.compile("~/file.docx").render(datas); 所有

  • Tl;dr 是一个可以将注册各种网络服务时弹出的服务条款文件进行总结的 Chrome 扩展程序 灵感 如今,最终用户许可协议随处可见,但大多数时候这些协议和服务条款太长且充满行话,消费者难以阅读。Tl;dr 想要创造一个帮助消费者随时了解他们同意的内容以及公司如何使用他们的数据的工具。我们不能期望用户会为他们使用的每个产品阅读几十页的文本,但我们希望帮助用户能够防止无意中同意了可疑的隐私条款。 它