SmartOpenCV简介
SmartOpenCV是一个OpenCV在Android端的增强库,旨在解决OpenCV Android SDK在图像预览方面存在的诸多问题。它无需修改OpenCV SDK源码,与OpenCV的SDK解耦,只需替换xml中原OpenCV的JavaCameraView
/JavaCamera2View
即可实现功能增强。
SmartOpenCV的主要特点
- 易用性:只需简单替换xml文件中的组件即可使用
- 功能增强:
- 预览自适应:自动适配前后摄像头、横竖屏等
- 可扩展的预览绘制算法
- 可自定义预览帧大小选择算法
- 支持USB摄像头
- 友好的API接口:提供Fluent API,更灵活地控制预览参数
- 与官方SDK解耦:方便升级官方SDK
效果对比
SmartOpenCV解决了OpenCV官方SDK存在的一些问题,如默认横屏显示、预览绘制存在黑边等。
横屏效果对比:
快速开始
1. 添加依赖
在项目根目录的build.gradle中添加:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在app模块的build.gradle中添加:
dependencies {
implementation('com.github.HuTianQi:SmartOpenCV:1.0.1') {
exclude module: 'openCVLibrary411'
}
}
2. 基础用法
在xml中替换OpenCV的组件:
<tech.huqi.smartopencv.core.preview.CameraPreview
android:id="@+id/fd_activity_surface_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3. 高级配置
使用SmartOpenCV提供的API进行更细致的配置:
SmartOpenCV.getInstance().init(mOpenCvCameraView, new CameraConfiguration.Builder()
.debug(true)
.cameraIndex(0)
.frontCamera(true)
.landscape(false)
.enableFpsMeter(true)
.maxFrameSize(400, 300)
.cvCameraViewListener(this)
.build());
学习资源
SmartOpenCV为Android开发者提供了一个强大而易用的OpenCV增强工具,欢迎大家尝试使用并提供反馈!