Благодаря этому ответу похоже, что в opencv 4
что-то изменилось, так что все существующие учебные пособия говорят об импорте папки java
как модуля, в то время как фактически требуется импортировать skd
сама папка.
Вы можете использовать JavaCV , который является оболочкой OpenCV, или сделать OpenCV вручную, как показано ниже:
1- С здесь скачать OpenCV – 4.1.1
для Android
2 - Извлеките папку, она будет распакована в OpenCV-android-sdk
, которая содержит следующее:
Hasans-Air:OpenCV-android-sdk hasan$ ls
LICENSE README.android samples sdk
3 - Отправляйтесь в свой проект на AndroidStudio
4- Файл -> Новый -> Модуль импорта
5- Выберите папку sdk
в извлеченной папке в точке 2, как показано, предлагаемый module name
равен :sdk
но вы можете переименовать его как :sdkOpenCV4
, не забывайте :
перед именем
6 - Щелкните правой кнопкой мыши app
, выберите Open Module Settings
, выберите Зависимости, затем щелкните модуль app
, нажмите Declared Dependencies
, нажмите +
, и вы увидите OpenCV
модуль там, нажмите добавить его, нажмите Apply
, затем Add
:
7- Из OpenCV SDK
скопируйте папку sdk/native/libs
и перейдите кпросмотрите папку приложения src/main
и вставьте ее в нее, затем переименуйте папку libs
в jnilibs
, чтобы в папке вашего приложения src/main
было:
8- В OnCreate
вы можете добавить чек перед началом его использования:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val ocvLoaded = OpenCVLoader.initDebug()
if (ocvLoaded) {
Toast.makeText(
this@MainActivity, "OpenCV loaded",
Toast.LENGTH_SHORT
).show()
} else {
Toast.makeText(
this@MainActivity, "Unable to load OpenCV",
Toast.LENGTH_SHORT
).show()
Log.d("openCV", "loader: ${OpenCVLoader.initDebug()}")
}
}
}