簡體   English   中英

在Android中使用OpenCV遇到問題

[英]Trouble using OpenCV in Android

我使用了在Android Studio上設置OpenCV Android庫的入門指南作為在Android Studio項目中設置OpenCV的指南。 我有要在手機上構建和安裝的項目,但沒有從相機獲取視頻供稿(即JavaCameraView為空)。

主要問題似乎是OpenCV管理器已從Google Play商店中撤出。 :(

我已經嘗試過解決這個SO問題的解決方案,以嘗試使用opencv而不需要離開游戲商店,但是那也沒有幫助。

我擁有在我的應用上使用相機的所有必需權限。

我的代碼與“初學者指南”教程中的代碼非常相似,但是如果您需要查看更多我的代碼,請告訴我。

我的onResume:

public override fun onResume() {
    super.onResume()
    if (!OpenCVLoader.initDebug()) {
        OpenCVLoader.initDebug()
    }
    loaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS)
}

BaseLoadCallback:

private val loaderCallback = object : BaseLoaderCallback(this) {
    override fun onManagerConnected(status: Int) {
        when (status) {
            LoaderCallbackInterface.SUCCESS -> {
                Log.i(TAG, "OpenCV loaded successfully")
                opencv_camera_view.enableView()
                opencv_camera_view.setOnTouchListener(this@MainActivity)
            }
            else -> {
                super.onManagerConnected(status)
            }
        }
    }
}

這些是對我有用的步驟。

  1. 轉到OpenCV版本頁面,然后單擊當前版本部分的Android Pack鏈接( https://opencv.org/releases.html )。 我用4.1.1
  2. 解壓縮名為opencv的文件--android-sdk
  3. 在Android Studio中,轉到文件>新建>導入模塊...,然后選擇/ sdk,然后等待同步完成。
  4. 包括open-cv作為模塊依賴項。 文件->項目結構。
  5. 選擇項目模塊(而不是我們在步驟3中添加的open-cv模塊)
  6. 將opencv添加為模塊依賴項。
  7. 檢入build.gradle文件是否已將其作為依賴項添加。
  8. 清理並構建項目。

筆記

  • 不要像大多數教程所建議的那樣導入/ sdk / java。
  • 您不必像大多數教程所建議的那樣將本機庫復制到項目中。

導入OpenCV后,請使用教程獲取預覽以填充預覽窗口。

然后使用版本的JavaCamera2View。 JavaCamera2View使用camera2 API。

這些是對我有用的步驟,如果我做錯了什么,很高興予以糾正。

祝好運 :)

我使用這種方法來設置opencv 4.1.0。 這對於4.1.1也應該起作用。

  1. 下載opencv並解壓縮
  2. 在android studio中,文件->新模塊-> gradle項目,然后選擇包含build.gradle文件的sdk目錄
  3. 將其添加為“應用程序”模塊的依賴項模塊
  4. 在調用opencv api的片段/活動上,添加

if (!OpenCVLoader.initDebug()) {
    OpenCVLoader.initDebug()
}

在onResume或onCreateView生命周期掛鈎上(示例使用onResume,但在onCreateView上使用它時我沒有遇到任何問題)

更新1.如何檢查opencv是否正確安裝

  1. 解壓縮庫后,我們有兩個文件夾sdksamples
  2. 轉到samples文件夾,並將其.java和.xml文件從color-blob-detection (此示例實現JavaCameraView)文件夾復制到我們的空白項目。 我認為這比完全導入樣本要快。
  3. 也不要忘記復制清單文件。 它增加了相機的准確性。 該示例未實現運行時權限,因此暫時僅從設置->應用程序->權限手動切換即可。

注意:閱讀build.gradle文件以獲取更多設置配置。 例如。 拆分apk,ndk支持等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM