Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OpenCV性能低下_Android_C++_Opencv_Android Ndk_Homography - Fatal编程技术网

Android OpenCV性能低下

Android OpenCV性能低下,android,c++,opencv,android-ndk,homography,Android,C++,Opencv,Android Ndk,Homography,在我的申请中: 我跟踪一个物体 获取其角在该帧中的位置 我发现上一帧和下一帧的角点之间的单应性 当前帧 使用该单应性在角上执行透视变换 在当前帧中找到,以获取变换的\u角点 使用变换的_角查找它们之间的单应性 和叠加图像 将上面的单应性M应用于overlay\u图像,以获得 使用warpPerspective调用扭曲的图像这是慢镜头 部分 然后使用遮罩操作,我将扭曲的_图像打印到找到对象的当前帧上 现在我看完后知道了为什么透视速度慢了 在上面的第六步中,我得到了每帧约300毫秒的速度,这都是因为

在我的申请中:

  • 我跟踪一个物体

  • 获取其
    角在该帧中的位置

  • 我发现上一帧和下一帧的
    角点之间的单应性
    当前帧

  • 使用该单应性在
    角上执行
    透视变换
    在当前帧中找到,以获取
    变换的\u角点

  • 使用
    变换的_角
    查找它们之间的单应性 和
    叠加图像

  • 将上面的单应性
    M
    应用于
    overlay\u图像
    ,以获得 使用warpPerspective调用扭曲的图像这是慢镜头 部分

  • 然后使用遮罩操作,我将
    扭曲的_图像
    打印到找到对象的当前帧上

  • 现在我看完后知道了为什么透视速度慢了

    在上面的第六步中,我得到了每帧约300毫秒的速度,这都是因为扭曲的透视。这会显著影响我的应用程序的FPS输出。基本上,它从12帧下降到2帧,每帧都没有扭曲


    有没有更快的替代方案?这一切都是在Android上完成的,使用NDKR9。有哪些快速的替代方案和优化可以将扭曲时间从300毫秒减少到50毫秒以下?

    在扭曲透视图中,您选择了哪种插值方法?是否在每次调用中分配新内存?@Mika不传递任何标志值。因此,我假设正在使用默认的
    INTER_-LINEAR
    。您可以尝试
    INTER\u NEAREST
    ,但根据我的经验,它不会快很多。您能提供一些关于输入/输出图像大小等的信息吗?也许需要一些代码来判断是否存在任何可能的优化。我给你的代码片段就是所有相关的。其余部分是空的
    Mat
    s声明,并从这里和那里传递。对于
    currentFrame
    ,图像大小从1920x1080到约390x293不等,对于
    logoImage
    。很明显,currentFrame的全高清分辨率太大了。我们尝试了更小的尺寸,960x540和更小的尺寸,但时间仍然在250-350ms左右。您是否从徽标扭曲到currentFrame?与翘曲性能相关的只是目标图像的分辨率。因此,如果您事先知道目标图像中只有一小部分相关,则可以忽略其余部分(例如,向前变换源图像的边界框以在目标图像中找到变换后的边界框)。顺便说一句,你指的是什么
    snippet
    ?从算法描述中看不到您是否重复使用分配的
    扭曲的\u图像
    ,以及所选的
    扭曲的\u图像
    大小等。。。