OpenCV SimpleBlobDetector 速度性能

Posted

技术标签:

【中文标题】OpenCV SimpleBlobDetector 速度性能【英文标题】:OpenCV SimpleBlobDetector speed performance 【发布时间】:2018-02-12 16:16:20 【问题描述】:

我使用 OpenCV 的 SimpleBlobDetector 在图像中查找一组特定的小特征。我在 android 上使用 C++ native (JNI) 工作。在我较新的速度更快的手机上,它运行良好。

但是,在较旧的速度较慢的手机上,速度太慢了。我发现最慢的部分是预扣税。修改三个阈值参数以加快速度只会使算法停止工作。

我在某个网页上找到了一个版本的源代码并开始修改它。

我尝试使用自适应阈值处理并在之后执行一些侵蚀和扩张,以取得良好的效果,但我没有设法得到任何合理的结果。参数可能有偏差?

adaptiveThreshold(mGr, mBin, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY_INV, 25, 30);
Mat kernel = getStructuringElement(MORPH_CROSS, Size(3,3), Point(1,1));
erode(mBin, mBin, kernel);
dilate(mBin, mBin, kernel, Point(-1,-1), 5);

当有太多参数需要摆弄时,我会感到困惑。我还担心图像条件会有所不同,然后必须使用其他参数。如果你明白我的意思,我想要一个“自适应”阈值?

我可以做些什么来让它工作,我们可以通过什么其他方式来获得更高的速度?

【问题讨论】:

【参考方案1】:

假设您处理的是视频,而不是一组随机的图像,那么在进行此类检测时减少设备负载的一种技术是不要非常帧。

例如,您甚至可以在第 10 帧而不是每帧都执行此操作。

您可以尝试不同的时间间隔,看看是否能找到一种既能减少负载又能以足够快的速度检测到您选择的用例的方法。

【讨论】:

以上是关于OpenCV SimpleBlobDetector 速度性能的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV blob(斑点)特征,SimpleBlobDetector

opencv simpleblobdetector在哪个静态库中

Playing with OpenCV

Playing with OpenCV

浅析OpenCV中的BlobDetector

opencv 3,blobdetection,功能/特征未实现()在detectAndCompute