2012-07-15 14 views
26

Sto cercando di imparare JavaCV. Come tutti sapete, la mancanza di materiale educativo su questo argomento è un grosso problema. Nella home page di JavCV, hanno fornito molti esempi per gli esempi C++ nel libro "OpenCV CookBook". Ma il caso è che non sono Java, sono in SCALA !!!! Ora sono già diventato matto! So che molti esempi sono nel web, ma voglio impararlo dall'inizio alla fine, quindi solo io posso farlo correttamente. "OpenCV CookBook" è un ottimo libro ma è interamente basato su OpenCV in C++, non su Java.Apprendimento JavaCV in Java puro

Qualcuno, per favore, aiutami a trovare un posto migliore per imparare JavaCV. Forniscimi qualsiasi cosa, URL, Book, ecc. Ma deve riguardare l'apprendimento di JavaCV in Java al 100%, non in Scala, C++, C o qualsiasi altra lingua! Per favore aiuto!

+12

Questo è il caso quando ho iniziato a imparare OpenCV in Python. Non c'erano tutorial in Python, tutti erano in C++. Ma ho dovuto impararlo in qualche modo e ho iniziato a leggere il libro C++ e convertirlo personalmente in Python. E ci è voluto un sacco di tempo. Finalmente sono arrivato con il mio tutorial: opencvpython.blogspot.com, che è incentrato sui principianti. Quindi questo è quello che devo dirti. Impara tu stesso dagli esempi di base e, una volta pronto con quel codice, scrivi i tuoi tutorial per i futuri studenti. In qualche modo una persona deve prendere un'iniziativa. Lascia che sia tu !!! –

risposta

21

< aggiornamento>

I tempi cambiano - e così fa OpenCV. In questo momento, un wrapper Java puro (non Android) è in rapida crescita, permettendo a chiunque di utilizzare le funzioni OpenCV direttamente in applicazioni Java Desktop/

</update>

Potete trovare alcuni tutorial in Java nel Directory di campioni OpenCV: samples/android.

È inoltre possibile trovare ulteriori informazioni here.

Ora, sono abbastanza sicuro che dirai che vuoi Java, ma non Android :). Ma questo richiede una spiegazione.

Per varie ragioni - il principale dei quali efficienza e la seconda portabilità per piattaforme embedded, computer vision è fatto quasi interamente in C/C++. È lo standard di fatto. Tutti lo usano, con buone ragioni e buoni risultati.

Esistono diversi adattatori per la base di codice C++, come Python e Java, ma esistono per colmare alcune lacune specifiche: Python viene utilizzato per la prototipazione rapida e Java per interfacciare la lingua principale di Android. Ma in tutti gli scenari, lo sviluppo dell'algoritmo "reale" viene fatto con C/C++. Questo è il motivo per cui a nessuno importa di tutorial/libri/esempi in altre lingue.

Conclusione: Se si desidera imparare l'elaborazione delle immagini, imparare C++ o Python. Se vuoi creare qualche app, impara l'interfaccia java di OpenCV da docs/tutorial di Android. Ma non aspettarti flessibilità o controllo sulle prestazioni.

nota di update

Ci sono altre due cose da specificare qui.

Primo, mentre Android si mette sulle ruote, e Python si rivela sempre più popolare, il contenuto disponibile nelle due lingue (e altre) sta aumentando drammaticamente. Ma per gli anni a venire, il gruppo di sviluppo principale e i migliori documenti saranno nell'area del C++.

Ultimo, ma non meno importante, si dovrebbe tenere che in ogni area di lavoro o di programmazione, se vi limitate a una lingua, sei morto in mente.I principi sono importanti e dovresti essere in grado di implementarli in una varietà di lingue e dovresti essere in grado di leggere e comprendere da una varietà di fonti. Che dire di un programmatore che dice di non essere in grado di tradurre lo pseudo-codice in Java? È praticamente la stessa cosa con altre lingue.

È possibile leggere il post del grande blog Don't call yourself a programmer per capire perché si dovrebbe dimenticare la programmazione in una lingua.

+0

Grazie per la risposta, lo apprezzo molto :) Ad ogni modo, almeno c'è un modo per convertire scala in java senza imparare scala? Voglio dire, strumento online o qualcosa del genere? –

+0

@ Yohan :) si prega di leggere il mio post aggiornato. Spero che tu abbia capito l'idea. Potresti trovare alcuni strumenti online o (molto probabilmente) no, ma dovresti capire che puoi farlo. – Sam

+0

Non ho detto di conoscere solo una lingua. Conosco C# .Net e VB.Net, JavaFX, alcuni C++ e ovviamente alcuni Android. Ma questo non significa che una persona debba imparare tutte le lingue disponibili nel mondo solo perché deve usare una singola API. Invece di trovare un altro modo per farlo, in questo caso l'API Xuggler, è la cosa migliore. –