一、移植到opencv

在官网下载opencv安卓版本

下载链接:Releases - OpenCV

选择Android

最好是选择最新版本,不然可能在编译链接的时候报以下错误:

我们需要把32位和64位so库以及头文件拷贝到系统源码中:

编写Android.mk:

LOCAL_PATH := $(my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE = libopencv_java4
LOCAL_SRC_FILES_32 = armeabi-v7a/libopencv_java4.so
LOCAL_SRC_FILES_64 = arm64-v8a/libopencv_java4.so
LOCAL_MODULE_CLASS = SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
LOCAL_VENDOR_MODULE := true 
LOCAL_MODULE_SUFFIX = .so
#LOCAL_SHARED_LIBRARIES := libc libdl libjnigraphics liblog libm libz
LOCAL_MULTILIB := both
LOCAL_CHECK_ELF_FILES := false
LOCAL_LDFLAGS += -Wl,--exclude-libs,ALL
include $(BUILD_PREBUILT)

通过以上步骤,就可以把opencv移植到系统的vendor分区,最后我们用mmm命令编译:

二、引用opencv库

移植完成后,我们需要把opencv应用到camera hal中进行图像处理

找到对应的编译Android.mk并加上链接opencv库,这里在rk3588里面对应的camera hal编译文件是

hardware/rockchip/camera/Android.mk

加上链接:

@@ -295,7 +297,10 @@ LOCAL_SHARED_LIBRARIES:= \
     libhardware \
     libvpu \
     libcamera_metadata \
-    librga
+    librga \
+       libopencv_java4

编写我们的opencv图像处理方法,并且将opencv头文件包含到hal中:

最后在对应图像帧处理的地方加入我们的方法就可以了

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐