- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
轮廓检测占用了我计算机视觉的大部分时间,它需要更快。我已经通过 NEON 指令和矢量化优化了其他所有内容,实际上,轮廓检测在配置文件中占主导地位。不幸的是,如何优化它对我来说并不明显。
我正在执行经典的矩形检测过程来查找基准标记,即 cvFindContours(),然后从等高线近似正方形。在许多标记可见的情况下(或者灾难性的,当不是标记的密集矩形网格可见时),在 iPhone 上单独调用 cvFindContours() 可能需要 >30 毫秒。
我已经用 cvFindContours() 替换了极其昂贵的 C++ cv::FindContours()。特别是如果传递一个向量 >,C++ 版本分配和填充向量的时间比其内部 cvFindContours() 花费的时间更长!
现在,我完全受制于 cvFindContours 中的时间,或者更具体地说,受制于 cvFindNextContour() 中的时间。 cvFindNextContour 中的代码分支繁多,显然不容易向量化。它还实现了一个复杂的算法,我不相信自己在任何优化尝试中都不会出错。
我已经看过 cvBlobLib(为了消除歧义,我指的是这个:http://code.google.com/p/cvblob/),看看它是否提供了可以更快地完成同样事情的替代算法。源的基本下载非常慢,因为它将轮廓记录到 std::list() 中,并且几乎所有时间都花在内存分配上。用 std::vector 替换该列表以消除 push_back() 上的初始副本,仍然留下一个比 cvFindContours() 长 3 倍的函数,其中 66% 直接在 cvb::cvLabel( ).所以走这条路似乎不可行。
有没有人对我如何优化许多矩形的检测有任何想法。我模糊的挥手包括:
是否有任何与 cvFindContour() 等效的快速实现,最好是源代码,因为我是多平台的?
大部分轮廓都不是必需的,只有“成功”的矩形有用。特别是,它们的内部轮廓就没有用了。从理论上讲,我是否可以根本不调用 cvFindContours,而是调用 cvStartFindContours/cvFindNextContour,测试找到的每个轮廓,如果我找到了我正在寻找的矩形,则不递归,因为子矩形肯定是无用的?
我可以使用与经典 FindContours()/ApproxPoly() 方法完全不同的矩形检测算法吗?
有没有办法用有用的感兴趣区域“填充”cvFindContours?例如。 FAST 角点检测几乎总能返回我的基准标记角点,即使阈值非常高。有没有办法使用那个点集来限制检测? (不幸的是,我不确定这有多大帮助,同样是在许多标记或与标记无关的密集网格线的情况下,这在我的应用中经常发生。)
与上述相同,由于 Blob 检测可以(如果我理解正确的话)作为递归洪水填充来实现,是否有任何快速矢量化实现可以用来以某种方式提取有趣的 Blob矩形,并从那里进行种子轮廓检测?
欢迎任何想法!
最佳答案
由于您的目标是矩形检测而不是轮廓检测,因此我建议使用积分图像进行计算。可以找到积分图像的解释 here .在计算出所需图像的积分图像后,可以通过三个操作来计算矩形的像素和。
假设您想在每个非黑色对象周围绘制矩形,您可以使用如下方法。递归地继续将图像及其子图像划分为 4,并丢弃像素总和低于所需阈值的矩形。您将留下许多近似于您的对象的小矩形。合并相邻的矩形将产生对检测到的对象的快速近似。
关于opencv - cvFindContour() 的更快替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11335951/
我不完全确定我理解 substitute 的作用,尽管我以前在它的代码中使用过。今天在shiny::exprToFunction中遇到了如下几行代码: function (expr, env = pa
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我最近发现了 crockford 的 Javascript supplant 函数。函数是这样的—— if (!String.prototype.supplant) { String.prot
在我工作的一些项目中,添加了一些具有这种语法的 block : var [code, name] = input.split("/"); console.log(code); console.log(
我对 JavaBeans 模式的憎恨就像一千个太阳的火焰一样燃烧。为什么? 冗长。现在是 2009 年。我不应该为一个属性写 7 LOC。如果他们有事件监听器,请捕获你的帽子。 没有类型安全的引用。没
是否有比 PHP 执行速度更快且具有相同功能集(例如对常见 RDBMS、Curl、Regex 等的支持)的替代品? 用 C 编写网站代码怎么样?效果如何?该平台是否独立并在每台服务器上运行? 最佳答案
我正在开始新项目。客户端界面基于 GWT(和 GXT),我没有说它是预先确定的。但是,我可以选择服务器端,这样我就可以玩得开心,并希望在这个过程中学到一些新东西。一些要求是: 与服务器的交换将通过使用
我目前使用 CentOS 5.6(Ghostscript 8 - ImageMagick-6.2.8) 我正在尝试将 pdf 的第一张图像转换为 jpg 文件。 我知道我当前的设置无法转换压缩的 pd
2021 年更新: 只使用 MathJax;您不应该再支持旧版本的 IE。 我想使用 MathJax 来显示 MathML 方程,但它在 IE 中的性能慢得令人无法接受(是的,我读过使用 Emulat
BinaryFormatter 序列化的 128³ 数组加倍,占用 50 MB 空间。序列化具有两个双字段的 128³ 结构数组需要 150 MB 和超过 20 秒的处理时间。 是否有快速简单的替代方
我发现 $.each 非常慢,如果包含大量各种 jQuery 效果,会给网页带来问题。 我想知道 $.each 是否有一个好的替代方案,例如: $('ul li').each(function() {
我正在编写一个Mac应用程序,它提供类似“测试”的功能。此应用程序(通过与服务器的连接)。基本上,该应用程序将为学生提供一个故事供阅读,然后是一系列问题(也来自服务器),用户可以(尝试)选择正确的答案
我喜欢 WPF,但我讨厌 XAML。 XAML 过于冗长,在 Microsoft 尝试对其进行扩展时出现语法问题(请参阅 StringFormat on Bindings),并且难以导航。 XAML
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足 Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以
有没有类似 SoftwareFx 的 PowerGadgets 的产品?我正在查看支持自动刷新的 powershell 的仪表控件。 最佳答案 检查 ShowUI 模块。 http://showui.
我正在开发一个项目,其中页面需要能够根据服务器的状态保持更新。 我喜欢 websocket,因为它们为我提供了一种从服务器推送消息的方法,但可用性是一个问题。 我需要通用方法在网络服务器和浏览器客户端
我最近一直在使用 openX 自托管广告管理软件,但它太慢了。 目标:我需要能够展示一个广告,获得 10 次点击,然后停用该广告,并且每天都这样做。 问题:当我将 openX 设置为每天 10 次点击
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我正在尝试实现一个简单的类,该类允许用户裁剪用于其个人资料图片的图像。这是一个 Java Web 应用程序。 我做了一些搜索,发现 java.awt 有一个 BufferedImage 类,这看起来(
只是一个关于 JQuery 的简单问题,我一直在使用phonegap 并使用 JQuery 制作了一些应用程序。其中一个运行速度非常慢,所以我一直在努力尽可能地精简它。 我一直在考虑的一个更改是用更小
我是一名优秀的程序员,十分优秀!