OpenCV介绍
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。OpenCV轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令,也提供对于C#、Ch、Ruby,GO的支持。
OpenCV是一个强大的计算机视觉库,它包含了大量的算法和函数,可以用于图像处理、计算机视觉、模式识别、机器学习等领域。OpenCV的应用领域非常广泛,包括机器人视觉、模式识别、机器学习、工厂自动化生产线产品检测、医学影像、摄像机标定、遥感图像等。OpenCV也可以解决人机交互、机器人视觉、运动跟踪、图像分类、人脸识别、物体识别、特征检测、视频分析、深度图像等问题。
OpenCV的底层由C和C++编写,轻量且高效,可以运行在多个操作系统上,同时提供了多种编程语言的API接口,如Python、Ruby、MATLAB等。OpenCV也支持基于CUDA和OpenCL的高速GPU操作接口。
OpenCV使用
(1) 「下载OpenCV SDK for Android」:从OpenCV官网下载适用于Android的OpenCV SDK。
(2) 「配置Android项目」:在Android Studio中,创建一个新的项目或打开一个已有的项目。将下载的OpenCV SDK作为一个Module导入到项目中。
复制
android {
compileSdkVersion 34
//新的Android Studio需添加
namespace "org.opencv"
buildFeatures {
//启用aidl
aidl true
}
}
gradle.properties中添加:
复制
android.defaults.buildfeatures.buildconfig=true
1.
(3) 「配置项目依赖」:在项目的build.gradle文件中,添加对OpenCV SDK的依赖。
复制
implementation project(':opencv')
1.
(4) 「初始化OpenCV」:在Android应用中 始化OpenCV库。
复制
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallbackInterface)
}
private val mLoaderCallbackInterface = object : LoaderCallbackInterface {
override fun onManagerConnected(status: Int) {
//OpenCV加载成功
}
override fun onPackageInstall(operation: Int, callback: InstallCallbackInterface?) {
}
}
}
(5) 「使用OpenCV功能」:加载图像、显示图像、进行图像处理等。
(6) 「编译和运行」:在完成配置后,编译并运行应用以测试OpenCV功能是否正常工作。
OpenCV图片灰度处理示例:
复制
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">