av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Android通過Java sdk的方式接入OpenCv的方法

瀏覽:107日期:2022-09-03 08:11:47

簡述

公司最近要做運(yùn)動檢測和眼球追蹤,鑒于資費(fèi)等因素,最后考慮使用OpenCv的相關(guān)Api來來滿足業(yè)務(wù)需求。在使用過程中發(fā)現(xiàn)OpenCv的v4.2.0和v4.1.2接入后均存在一些bug,所以最后選擇了v4.1.0版本。

接入步驟

一、下載OpenCV Sdk

前往OpenCv官網(wǎng)下載對應(yīng)的Android v4.1.0版本的sdk。

Android通過Java sdk的方式接入OpenCv的方法

二、Android Studio 集成OpenCV Sdk

1、Android Studio 下載cmake和ndk

Android通過Java sdk的方式接入OpenCv的方法

2、Android Studio 新建ndk項(xiàng)目

Android通過Java sdk的方式接入OpenCv的方法

Android通過Java sdk的方式接入OpenCv的方法

Android通過Java sdk的方式接入OpenCv的方法

3、Android Studio 導(dǎo)入OpenCv Sdk

將下載后的OpenCv Sdk進(jìn)行解壓。

將解壓后的OpenCv Sdk目錄下的sdk目錄里面的java包通過Moudule的方式導(dǎo)入到Studio中。

Android通過Java sdk的方式接入OpenCv的方法

Android通過Java sdk的方式接入OpenCv的方法

Android通過Java sdk的方式接入OpenCv的方法

3、修改導(dǎo)入opencv的build.gradle

Android通過Java sdk的方式接入OpenCv的方法

修改opencv的build.gradle的對應(yīng)的compileSdkVersion等信息。只需復(fù)制app下的build.gradle文件中的即可。記住兩點(diǎn):

apply plugin: ’com.android.library’一定要改成library;

去掉applicationId 'com.xx.xx'

4、導(dǎo)入so庫

在項(xiàng)目app/src/main目錄下新建jniLibs,并將解壓后的OpenCv Sdk 目錄下對應(yīng)的路徑 sdk/native/libs 中的 文件復(fù)制到j(luò)niLibs。

Android通過Java sdk的方式接入OpenCv的方法

AndroidManifest增加相機(jī)權(quán)限

<uses-permission android:name='android.permission.CAMERA' /><uses-feature android:name='android.hardware.camera' /><uses-feature android:name='android.hardware.camera.autofocus' />

Android通過Java sdk的方式接入OpenCv的方法

三、使用

1、application中檢測是否接入成功。

override fun onCreate() { super.onCreate() OpenCVLoader.initDebug() val loadSuccess: Boolean = OpenCVLoader.initDebug() if (!loadSuccess) { Log.e('-->', 'Opencv load Fail') } else { Log.e('-->', 'Opencv load Success') }}

2、動態(tài)申請相機(jī)權(quán)限

if(ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), 1);}else{ startActivity(Intent(this,OpenCvActivity::class.java))}

3、測試opencv

class OpenCvActivity : AppCompatActivity(), CvCameraViewListener2 { private lateinit var mRotateFrame: Mat private lateinit var mRgbFrame: Mat public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) setContentView(R.layout.activity_opencv) jcv_surface_view.setCvCameraViewListener(this) // 開啟前置攝像頭 jcv_surface_view.setCameraIndex(CameraBridgeViewBase.CAMERA_ID_FRONT) } public override fun onPause() { super.onPause() if (jcv_surface_view != null) { jcv_surface_view!!.disableView() } } public override fun onResume() { super.onResume() if (!OpenCVLoader.initDebug()) { OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallback) } else { mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS) } } public override fun onDestroy() { super.onDestroy() if (jcv_surface_view != null) { jcv_surface_view!!.disableView() } } override fun onCameraViewStarted(width: Int, height: Int) { mRotateFrame = Mat() mRgbFrame = Mat() } override fun onCameraViewStopped() {} override fun onCameraFrame(inputFrame: CvCameraViewFrame): Mat { mRgbFrame = inputFrame.rgba() // 旋轉(zhuǎn)屏幕 Core.flip(mRgbFrame, mRotateFrame, 1) return mRotateFrame } private val mLoaderCallback: BaseLoaderCallback = object : BaseLoaderCallback(this) { override fun onManagerConnected(status: Int) { when (status) {LoaderCallbackInterface.SUCCESS -> { jcv_surface_view!!.enableView()}else -> { super.onManagerConnected(status)} } } }}

<RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent'> <org.opencv.android.JavaCameraView android: android:layout_width='match_parent' android:layout_height='match_parent' /></RelativeLayout>

結(jié)果展示:

Android通過Java sdk的方式接入OpenCv的方法

展示圖

Demo 的 Github 地址 https://github.com/Mp5A5/AndroidOpenCv

到此這篇關(guān)于Android通過Java sdk的方式接入OpenCv的方法的文章就介紹到這了,更多相關(guān)Android Java sdk接入OpenCv內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产精品69久久久久水密桃 | 欧美日韩一区二区电影 | av国产精品毛片一区二区小说 | 久久精品视频在线播放 | 在线黄色影院 | 日日碰狠狠躁久久躁婷婷 | 精品视频久久久久久 | 国产精品久久网 | 午夜精品久久久久久不卡欧美一级 | 国产色片 | 91日韩在线| 草久网 | 四色永久 | 日韩高清在线 | 亚洲区一区二区 | 国产一区二区精 | 亚洲欧美日韩中文字幕一区二区三区 | 日韩国产一区二区三区 | 亚洲高清视频在线 | 欧美精品一区二区三区在线四季 | 国产激情视频在线免费观看 | 91免费在线视频 | 国产精品成人一区二区三区 | 国产在线播放一区二区三区 | 欧美综合一区二区三区 | 欧美在线一区二区三区 | 国产精品久久久久久久久久久久久 | 成人亚洲精品久久久久软件 | 亚洲精选一区二区 | 久久久久久91 | 中文字幕亚洲精品 | 一级片片| 午夜资源| 国产精品69毛片高清亚洲 | 欧美激情a∨在线视频播放 成人免费共享视频 | 97人人爱 | 国产精品国产成人国产三级 | 99亚洲国产精品 | 每日在线更新av | 午夜影院操 | 亚洲福利在线观看 |