2010-02-17 15 views
22

Stavo pensando di provare OpenCV per un progetto e ho notato che aveva C, C++ e Python.Elaborazione immagini OpenCV - C++ vs C vs Python

Sto cercando di capire se dovrei usare C++, C o Python - e vorrei usare qualsiasi cosa abbia il miglior supporto di OpenCV.

Solo guardando la pagina dell'indice per la documentazione diversa sembra che le associazioni C++ possano avere più funzioni rispetto alle altre? È vero?

Se C++ ha più collegamenti, sembra che sarebbe una scelta più ovvia per me, ma ero solo curioso di sapere se avesse davvero più funzioni, ecc. Rispetto agli altri?

Grazie!

+1

Vorrei aver fatto questa domanda prima di provare opencv –

risposta

11

L'interfaccia Python è ancora in fase di sviluppo mentre l'interfaccia C++ (in particolare con la nuova classe Mat) è piuttosto matura. Se sei a tuo agio in C++, ti consiglio vivamente di utilizzarlo - altrimenti, puoi iniziare a usare Python e contribuire a tutte le funzionalità che pensi che OpenCV abbia bisogno :)

14

In realtà il binding di Python era terminato starting with release 2.2. Quindi andrei con Python se fossi in te, perché le prestazioni saranno quasi le stesse comunque come si usano librerie c in entrambi i casi. Comunque python ti porterà lì più velocemente, in sicurezza e trascorrerai più tempo sul tuo algoritmo piuttosto che ottenere cose da costruire ed eseguire senza menzionare i problemi di gestione della memoria

+3

Sei a conoscenza di qualsiasi benchmark C++ vs. python? – Chris

4

Penso che dipenda quanto sei bravo in C++. L'interfaccia di Mat sembra più moderna della vecchia interfaccia IPLImage C. Il problema che sto avendo è che la maggior parte degli esempi che troverete sul web, o anche qui su StackOverflow, sono per l'interfaccia C (ad esempio cvCvtColor), non per l'interfaccia C++. Quindi sto davvero lottando per portare gli esempi C in C++.

1

Anche se sei molto esperto in C o C++, dovresti usare python per accelerare lo sviluppo (dovrei indovinare un fattore 4x). Le prestazioni sono proprio le stesse.