android-ndk-opencv-奥比中光深度摄像头(彩色)

项目说明:abzg/facedetector分支

        在工控板RK3288使用opencv人脸检测,摄像头使用奥比中光深度摄像头(手头上有.....),有在android环境搭建过的项目,感觉耗费应用性能(心里作祟吧!!)。就想捣鼓一下C++环境处理图像数据(也不全是C++环境,奥比中光so包返回彩色流的ByteBuffer流地址到android,android通过ndk进入c++环境)。通过地址指针将数据流转Mat,opencv处理Mat并在人脸部分加框,对源数据转为Texture为GLSurfaceView显示加载。

  1. 环境说明:

    1. RK3288(UW_M328_V1.2)、奥比中光深度摄像头(Mini)
    2. android studio、opencv4.5.0、奥比中光sdk(主要是cpp-demos/colorforopenni2)
    3. oepncv获取:https://sourceforge.net/projects/opencvlibrary/files/
    4. 奥比中光sdk(OpenNI2 SDK Android):https://developer.orbbec.com.cn/download.html?id=62
  2. 环境搭建:
    1. ndk环境......c++构建项目
    2. ndk + opencv (so环境):CMakeLists.txt  添加opencv so部分及target_link_libraries
    3. 添加奥比中光so库app build.gradle
  3. 将colorforopenni2例子中的obColor2、utils、view、jni的代码拷贝到工程并修改报名
  4. 构建JNI方法:在MyNative中创建(NDK环境已有)JNI方法:Alt+Enter快捷键,并将对应代码拷贝到方法内(记得添加cpp下myopencv、myabzg文件及相应的.cpp、.h文件)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
# NDK Camera [![Build Status](https://travis-ci.org/luncliff/NdkCamera.svg?branch=master)](https://travis-ci.org/luncliff/NdkCamera) > If there is an issue with this library, please mail to luncliff@gmail.com Simplified [Android Camera 2 API](https://www.youtube.com/watch?v=Bi4QjMfSOE0). Available for both Java/JNI. - API level: 24+ - NDK ### Reference - Personal Template Project: https://github.com/luncliff/Muffin - [API Reference](https://developer.android.com/ndk/reference/group/camera) - [Android Camera Overview](https://source.android.com/devices/camera) - Camera HAL3: https://source.android.com/devices/camera/camera3 - HAL Subsystem: https://source.android.com/devices/camera/camera3_requests_hal - Multi-Camera Support: https://source.android.com/devices/camera/multi-camera - Version Support: https://source.android.com/devices/camera/versioning - Android Media - https://source.android.com/devices/media/framework-hardening ## How to ### Build For **Windows** environment, latest [Android Studio](https://developer.android.com/studio/) is recommended. For **Linux/MacOS**, [Gradle 4.10.2](https://gradle.org/) will be enough. ```console $ git clone https://github.com/luncliff/NdkCamera $ cd ./NdkCamera $ gradle assemble # Build: libndk_camera.so & NdkCamera.aar ``` ### Test Connect your device and run the test with Gradle. Please reference the [test codes](./android/test/ndcam/). ```console $ gradle connectedAndroidTest # Run test ``` ### Use The following code shows working with `SurfaceView` class. ```java package dev.example; // ... import dev.ndcam.*; // Expect we already have a camera permission public class SurfaceDisplay implements SurfaceHolder.Callback { SurfaceView surfaceView; Surface surface; ndcam.Device camera; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... // Load/Init library ndcam.CameraModel.Init(); surfaceView = findViewById(R.id.surfaceView); SurfaceHolder holder = surfaceView.getHolder(); holder.setFixedSize(1920, 1080); holder.setFormat(ImageFormat.YUV_420_888); holder.addCallback(this); } @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { // Get all devices in array form for(ndcam.Device device : ndcam.CameraModel.GetDevices()) if(device.facing() == CameraCharacteristics.LENS_FACING_BACK) camera = device; } @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) { // Make a repeating caputre request with surface surface = surfaceHolder.getSurface(); camera.repeat(surface); } @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { // No more capture if(camera != null) camera.stopRepeat(); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ufo_java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值