Не могу открыть камеру с помощью C ++ OpenCV на Android

Я пытаюсь переместить очень простое приложение OpenCV на Android. Код пытается получить доступ к камере из библиотеки C ++ .so, которая связана с основным приложением, использующим C # и Xamarin, что, я сомневаюсь, как-то связано с моей проблемой. Мой код C ++ просто пытается получить доступ к камере, используя cv :: VideoCapture, вот так:

    cv::VideoCapture cap(0); //default camera

if(!cap.isOpened())
{
LOGE("No camera detected on this system\n");
}

Это, однако, всегда терпит неудачу, несмотря на то, что я указал разрешение в AndroidManifest.xml, например так:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.XamarinARapp">
<uses-sdk android:minSdkVersion="15" />
<application android:label="XamarinARapp.Android">
</application>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/>
</manifest>

У кого-нибудь был успешный доступ к камере Android с помощью cv :: VideoCapture в C ++? Ксамарин имеет какое-либо отношение к этому?

1

Решение

но приложение строится для Android 4.4

Ваши версии SDK манифеста должны выглядеть следующим образом:

<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />

В противном случае без targetSdkVersion установить и запустить на устройстве API 23+ вам потребуется запросить разрешения камеры во время выполнения.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]