2010-09-13 14 views
10

Sto diventando disperato !! Sto cercando di utilizzare OpenCV in Java, tramite JavaCV (JNA per aprire OpenCV per java).Utilizzo di OpenCV in Java con JavaCV

I am on Mac Os X 1.5.

Ho installato OpenCV e posso compilare ed eseguire gli esempi inclusi. Quindi funziona.

Ora apro Eclipse, e io creare un nuovo progetto, come descritto qui: http://code.google.com/p/javacv/

In questo nuovo progetto, solo una piccola classe con una chiamata a una funzione OpenCV (io ho usato il codice di esempio):

import static name.audet.samuel.javacv.jna.cxcore.*; 
import static name.audet.samuel.javacv.jna.cv.*; 
import static name.audet.samuel.javacv.jna.highgui.*; 
import static name.audet.samuel.javacv.jna.cvaux.*; 

public class Test { 
    public static void main(String[] args) { 
     IplImage image = cvLoadImage("test.png", 1); 
     if (image == null) { 
      System.err.println("Could not load image file."); 
     } else { 
      cvSmooth(image, image, CV_GAUSSIAN, 3, 0, 0, 0); 
      // ... 
     } 
    } 
} 

quando l'eseguo, ho il seguente errore:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'cxcore': dlopen(libcxcore.dylib, 9): image not found

Per favore, ho bisogno di aiuto, ho cercato su google per ore, non so più dove cercare.

+0

pubblicare il tuo codice si prega di – dnul

+0

@Matthieu: gli utenti OSX a volte hanno un problema di compatibilità tra la biblioteca a 32-bit o 64-bit VM. Puoi provare con l'opzione -d32 come argomento VM in Avvio configurazione di lancio di Eclipse – JoseK

+1

Ho aggiunto il codice (questo è il codice di esempio da JavaCV). Ho provato l'argomento "-d32" e ho ricevuto il seguente errore: "Impossibile eseguire Java in modalità 32 bit. Proseguendo in modalità 64 bit." Forse è quello? –

risposta

4

Si è scoperto che la versione SVN non era compatibile con JavaCV.

Ho scaricato l'ultima versione ufficiale (2.1), l'ho compilata e installata e funziona.

Vedi http://code.google.com/p/javacv/issues/detail?id=19

+0

per un'implementazione più semplice guarda anche qui: http://ubaa.net/shared/processing/opencv/ –

+0

Bene bene, si scopre che la versione 2.1 non funziona (almeno sulla mia macchina con OS X 10.5) , ma SVN funziona nei programmi C++. Ma il 2.1 è compatibile con JavaCV e non con la versione SVN. Quindi per me ora, OpenCV può funzionare, ma non JavaCV. –

1

è necessario collegare queste due librerie:

- javacpp.jar 
- javacv.jar 

Nel JavaCV/lib-OpenCV/win_x86_64 devi avere i file del vostro simile:

- msvcp100.dll 
- msvcr100.dll 
- opencv_core220.dll 
- opencv_calib3d220.dll 
- ... 

Queste DLL devono essere compilate per la tua piattaforma (vinci 32/vinci 64/Linux/ecc.

È necessario definire percorso dei file DLL OpneCV:

-Djava.library.path=lib-opencv/win_x86_64/ 
- or the DLLs have to be somewhere in your system PATH of your operating system 
0

avevo guardato questo problema per un po ', come suggerisce l'OP tutti i tipi di problemi cominciano a strisciare dalla lavorazione del legno. Ho passato un sacco di post StackOverflow per essere in grado di creare un'esperienza relativamente indolore per l'impostazione di un progetto OpenCV in Java. Ho passato attraverso JavaCV e ho scoperto che non rispondeva alle mie esigenze. Sono stato comunque in grado di implementare direttamente la funzionalità di riferimento nei post OpenCV (post C++) ma in linguaggio Java quando ho usato alcune versioni di javacpp. Avevo anche un sacco di problemi di compilazione dato che javacpp dipende da librerie C++ compilate che devono essere native per l'ambiente in cui si trova l'utente (qualcosa che le persone che vivono in Java amano non trattare). Comunque sono stato in grado di costruire e ambientare con Maven. Uso eclipse ma questo dovrebbe funzionare bene con altri ambienti di programmazione. Ho creato un progetto di esempio per illustrare come iniziare a costruire un progetto di bootstrap e iniziare a lavorare. Il progetto confronta 2 immagini, dati i loro URL. È un test di uguaglianza, avvizzire le immagini sono identiche o meno. Speriamo che questo possa aiutare la gente a prepararsi e lavorare in questo ambiente ed evitare le tonnellate e le insidie ​​che ho incontrato quando ho provato a lavorare con OpenCV in Java (ero in quel momento esattamente nello stesso posto in cui lavoravo con OP :)).

L'esempio: https://github.com/darkhipo/ImgzCmp