Android OpenCV实现人脸检测JNI层添加打印时间
Posted 胡刚2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android OpenCV实现人脸检测JNI层添加打印时间相关的知识,希望对你有一定的参考价值。
这节介绍如何在 android JNI 层打印系统时间,目的是统计每个函数的耗时,然后进行有针对性的优化。
本节代码已上传 Android OpenCV 实现人脸检测–JNI层添加打印时间
注意:如果你之前下载过本代码,安装运行的时候预览画面停下来了,并且之前也安装过这个应用,请先把应用卸载掉,然后点击 Android Studio的 Build -> Clean Project -> 运行,安装后即可运行。
又或者是:你下载了本代码,然后修改了 JNI 层的代码 然后运行卡到预览画面,那么也请你按上述步骤做。
第一种:使用C++的函数进行打印
std::chrono::high_resolution_clock::now()
使用范例:
#define millisecond 1000000
#define RUN_TIME(time) (double)(time).count()/millisecond
auto TIME0 = std::chrono::high_resolution_clock::now();
cvtColor(src, src, COLOR_YUV2RGBA_NV21);
auto TIME1 = std::chrono::high_resolution_clock::now();
LOG_TIME("================= cvtColor YUV2RGBA : %4.4fms =================" , RUN_TIME(TIME1 - TIME0));
第二种:使用OpenCV提供的函数打印
cv::TickMeter
使用范例:
cv::TickMeter tm;
tm.start();
cvtColor(src, src, COLOR_YUV2RGBA_NV21);
tm.stop();
LOGE("================= cvtColor time: %lf", tm.getTimeMilli());
注意,如果多此使用 TickMeter ,需要先调用 TickMeter 的 reset() ,然后再调用 start()
以上是关于Android OpenCV实现人脸检测JNI层添加打印时间的主要内容,如果未能解决你的问题,请参考以下文章