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层添加打印时间的主要内容,如果未能解决你的问题,请参考以下文章

基于OpenCV和C++原生(JNI)的Android数字图像处理+人脸识别demo

请教,jni调用,类型转换.用opencv进行静态人脸检测

Android OpenCV实现人脸检测完成人脸检测功能

Android OpenCV实现人脸检测完成预览画面显示

使用OpenCV实现Android人脸检测APP

Android基于opencv4.6.0实现人脸识别功能