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

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

Android通過(guò)Java sdk的方式接入OpenCv的方法

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

簡(jiǎn)述

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

接入步驟

一、下載OpenCV Sdk

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

Android通過(guò)Java sdk的方式接入OpenCv的方法

二、Android Studio 集成OpenCV Sdk

1、Android Studio 下載cmake和ndk

Android通過(guò)Java sdk的方式接入OpenCv的方法

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

Android通過(guò)Java sdk的方式接入OpenCv的方法

Android通過(guò)Java sdk的方式接入OpenCv的方法

Android通過(guò)Java sdk的方式接入OpenCv的方法

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

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

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

Android通過(guò)Java sdk的方式接入OpenCv的方法

Android通過(guò)Java sdk的方式接入OpenCv的方法

Android通過(guò)Java sdk的方式接入OpenCv的方法

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

Android通過(guò)Java sdk的方式接入OpenCv的方法

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

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

去掉applicationId 'com.xx.xx'

4、導(dǎo)入so庫(kù)

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

Android通過(guò)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通過(guò)Java sdk的方式接入OpenCv的方法

三、使用

1、application中檢測(cè)是否接入成功。

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、動(dòng)態(tài)申請(qǐng)相機(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、測(cè)試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) // 開(kāi)啟前置攝像頭 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通過(guò)Java sdk的方式接入OpenCv的方法

展示圖

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

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产精品久久久亚洲 | 视频在线日韩 | 精品国产18久久久久久二百 | 古典武侠第一页久久777 | 国产一区二区在线免费观看 | 婷婷色国产偷v国产偷v小说 | 中文字幕一二三区 | 夜夜骑首页 | 国产精品久久久久久久久久久久冷 | 成年网站在线观看 | 偷拍自拍网| 成人免费毛片在线观看 | 日韩成人一区 | 亚洲成人午夜电影 | 中文字幕av一区二区三区 | 久久99视频精品 | 国产精品久久久久久久久久久免费看 | 免费在线观看黄色av | 国产精品久久国产精品99 | 国产精品久久精品 | 成人在线精品视频 | 亚洲综合色视频在线观看 | 影音先锋中文字幕在线观看 | 国产一区黄色 | 自拍视频国产 | 在线播放一区二区三区 | 免费看片在线播放 | caoporn视频 | 日本污视频 | 日韩午夜激情 | 国产一二三区免费视频 | 精品一区二区在线观看 | 超碰成人免费观看 | 亚洲女人天堂成人av在线 | 国产精品完整版 | 国内精品久久久久久 | 欧美九九九 | 伊人狠狠干 | 91九色麻豆| 韩日一区二区 | 97在线观视频免费观看 |