我使用OpenCV的SimpleBlobDetector
来查找图像中的一组特定小特征。我在Android上使用C ++ native(JNI)。在我更新的速度更快的手机上,它运行得很好。
然而,在较旧的较慢的手机上,它太慢了。我发现最慢的部分是剪贴画。修改三个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);
当有太多参数需要操作时,我感到困惑。我也担心图像条件会有所不同,然后必须使用其他参数。如果你知道我的意思,我想要一个“自适应”自适应阈值处理?
我可以做些什么才能让它发挥作用,以及我们可以通过其他方式来提高速度?
答案 0 :(得分:0)
假设您正在处理视频而不是一组随机图像,那么在进行此类检测时,减少设备负载的一种方法就是不要进行框架处理。
例如,您甚至可以在第10帧而不是每帧进行。
您可以尝试不同的时间间隔,看看是否可以找到一个减少负载的时间间隔,同时仍能快速检测到所选用例。