2012-09-20 12 views
6

Potrzebuję wykonać aplikację do rozpoznawania obrazów. Przeglądałem samouczek OpenCV i napisałem, że muszę zainstalować menedżera OpenCV z Google Play, który moim zdaniem nie jest dobry z punktu widzenia użytkownika. Ale po kopaniu przez wiele godzin zauważyłem, że OpenCV jest najbardziej popularny i niezawodny wśród wszystkich. Czy istnieje dobra alternatywa dla OpenCV, która nie wymaga instalacji innej aplikacji. A czym jest ta statyczna inicjalizacja OpenCV. A jeśli nie chcę instalować menedżera OpenCV, to jak dobrze powinienem znać NDK.Android - alternatywa dla OpenCV?

Odpowiedz

1

Inicjalizacja statyczna jest alternatywą dla menedżera OpenCV, ponieważ biblioteka jest zawarta w pakiecie APK (podobnie jak w przeszłości), a użytkownik nie musi instalować menedżera. Również deweloperzy pracują nad tym, aby sposób zarządzania wdrażaniem aplikacji był bardziej płynny dla użytkowników.

+1

OK, tu jest jeszcze jedno pytanie. Jeśli wykonuję statyczną inicjalizację, jakie pliki muszę dodać w moim folderze lib. Samouczek OpenCV dał mi rozmycie obrazu, jak to działa. Sprawdziłem pliki wewnątrz natywnych/libs i są to ogromne pliki pod względem wielkości, które nie zamierzam w ogóle dodawać. W jaki sposób mogą mieć aplikację OpenCV Manager o wielkości 375 kb, wykonującą wszystkie czynności wymagające megs plików. Myślę, że jestem zdezorientowany. Czy możesz wyjaśnić nieco, jakie pliki z tego folderu lib będą wymagały, aby rzeczy działały w mojej aplikacji. – Varundroid

+0

Przepraszam, że pytam o coś nowego, ale nigdy wcześniej nie robiłem czegoś takiego. – Varundroid

+1

Menedżer OpenCV ma 375kb, ponieważ poprosi Cię o pobranie biblioteki o wielkości kilku MB, która zależy od procesora twojego smartfona. Musisz ręcznie dodać tę bibliotekę, gdy wykonujesz metodę statyczną. Z tych "ogromnych" plików musisz wybrać ten właściwy dla urządzeń docelowych lub uwzględnić je wszystkie. Myślę, że jeśli je dodasz, cała Twoja aplikacja nie przekroczy 25 MB, prawda? –

2

Możesz wysyłać OpenCV do swojego własnego pakietu, jeśli chcesz, naprawdę nie potrzebujesz dla menedżera. Jeśli wysyłasz pakiet OpenCV do swojego pakietu, możesz go użyć na poziomie natywnym (C/C++), ale możesz także użyć wrapperów do bezpośredniego użycia na poziomie Java.

+0

+1. Dzięki za odpowiedź. – Varundroid

+0

WAŻNE: Menedżer OpenCV zawiera natywną bibliotekę opencv skompilowaną za pomocą gnustl_static ... W przypadku, gdy twój kod C++ jest skompilowany również z gnustl_static, może to spowodować straszne awarie !!! po prostu przeczytaj sekcję "Statyczne środowiska uruchomieniowe" w CPLUSPLUS-SUPPORT.html na stronie dokumentacji w NDK – Sdra

1

Może mógłbyś użyć biblioteki Qualcomm Vuforia. Nigdy go nie używałem, ale dużo o tym słyszałem.

+0

Vuforia to duże rzeczy AR. Nie mogę dodać zbyt wiele kosztów w mojej aplikacji, ale nadal dziękuję za radę. – Varundroid