我使用OpenCV的SimpleBlobDetector来查找图像中的一组特定的小特征。我在安卓系统上的C++ native工作。在我更新的更快的手机上,它工作得很好。
然而,在较老的较慢的手机上,它的速度太慢了。我发现最慢的部分是握手。修改三个theshold参数来加快速度只会使算法停止工作。
我在一些网页上找到了源代码的一个版本,并开始修改它。
我尝试使用自适应阈值来代替,并在之后执行一些侵蚀和扩张,但我没有得到任何合理的结果。也许参数偏离了很远?
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);当有太多的参数需要处理时,我会感到困惑。我还担心图像条件会发生变化,然后必须使用其他参数。我想要一个“自适应自适应”的树冠,你明白我的意思吗?
我能做些什么来让它工作,我们还能用什么其他方法来获得更高的速度?
发布于 2018-04-04 06:14:54
假设您正在处理视频,而不是一组随机的图像,那么在进行这种类型的检测时,减少设备负载的一种技术是不逐帧进行检测。
例如,您可能会在第10帧而不是每帧都执行此操作。
您可以尝试不同的时间间隔,看看是否可以找到一个可以减少负载的时间间隔,同时仍然可以针对您选择的用例进行足够快的检测。
https://stackoverflow.com/questions/48750849
复制相似问题