2010-03-14 1 views
0

Я использую opencv и java для обнаружения лиц, и в этом преследовании я нашел этот файл JNI2OPENCV .... но я смущен тем, как заставить его работать, может ли кто-нибудь мне помочь?OpenCV для JNI, как заставить его работать?

http://img519.imageshack.us/img519/4803/askaj.jpg

и следующее является FaceDetection.java

class JNIOpenCV { 
    static { 
     System.loadLibrary("JNI2OpenCV"); 
    } 
    public native int[] detectFace(int minFaceWidth, int minFaceHeight, String cascade, String filename); 
} 

public class FaceDetection { 
    private JNIOpenCV myJNIOpenCV; 
    private FaceDetection myFaceDetection; 

    public FaceDetection() { 
     myJNIOpenCV = new JNIOpenCV(); 
     String filename = "lena.jpg"; 
     String cascade = "haarcascade_frontalface_alt.xml"; 

    int[] detectedFaces = myJNIOpenCV.detectFace(40, 40, cascade, filename); 
    int numFaces = detectedFaces.length/4; 

     System.out.println("numFaces = " + numFaces); 
     for (int i = 0; i < numFaces; i++) { 
      System.out.println("Face " + i + ": " + detectedFaces[4 * i + 0] + " " + detectedFaces[4 * i + 1] + " " + detectedFaces[4 * i + 2] + " " + detectedFaces[4 * i + 3]); 
     } 
    } 

    public static void main(String args[]) { 
     FaceDetection myFaceDetection = new FaceDetection(); 
    } 
} 

кто-нибудь сказать мне, как я могу сделать эту работу на Netbeans ?? Я попробовал Google, но помощь по этой теме очень сложна.

Я добавил всю папку как Llibrary в проект netbeans, и я попытаюсь запустить файл, я получаю следы последователей.

Exception in thread "main" java.lang.UnsatisfiedLinkError: FaceDetection.JNIOpenCV.detectFace(IILjava/lang/String;Ljava/lang/String;)[I at FaceDetection.JNIOpenCV.detectFace(Native Method) at FaceDetection.FaceDetection.<init>(FaceDetection.java:19) at FaceDetection.FaceDetection.main(FaceDetection.java:29) Java Result: 1 BUILD SUCCESSFUL (total time: 2 seconds)

кто-нибудь сказать мне точный способ работать с этим? как все, что я должен делать?

ответ

0

Если вы используете JNI для Windows, Dependency Walker будет вашим другом.

Но, прежде чем мы получим, что сначала убедитесь, что JRE может найти свой JNIOpenCV.dll, добавив: System.out.println("java.library.path="+System.getProperty("java.library.path")); к статическому блока конструктора.

Однако, я думаю, проблема здесь не в поиске вашего файла JNIOpenCV.dll, а файла, от которого это зависит. Откройте ваш .dll в ходу зависимостей (просто перетащите его туда) и обратите внимание на любые сообщения об ошибках (кроме msjava.dll - проигнорируйте это, это не имеет значения). Скорее всего, моя догадка заключается в том, что вам нужны библиотеки времени исполнения Microsoft Visual C/C++, загружайте их с веб-сайта Visual Studio и помещайте их в ту же папку, что и ваша dll.

Удачи!

+0

Привет, спасибо миллион за ответ ...... хотя я havnt проверил java.library.path thingy ... я открыл JNI2OpenCV.dll в ходу зависимости и мог многое понять, помог бы мне в этом? http://img221.imageshack.us/img221/5042/helpf.jpg – user293252

+0

Здесь я добавил и нашел java.library.path 'java.library.path = C: \ Program Files \ Java \ jdk1. 6.0_18 \ Bin;; C:. \ WINDOWS \ Sun \ Java \ Bin; C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ WINDOWS \ system32 \ WBEM C: \ Program Files \ Intel \ DMIX; C: \ OpenCV2.0 \ bin; C: \ Sun \ SDK \ jdk \ bin; C: \ Program Files \ QuickTime \ QTSystem \; C: \ Program Files \ MySQL \ MySQL Server 5.1 \ bin; C: \ Sun \ SDK \ bin ' – user293252

+0

Похоже, что ходок зависимости выглядит хорошо, MSJAVA и MPR обычно имеют ошибки, поэтому, если все остальное, что не видно, прекрасно, если это нормально. System.loadLibrary() ищет библиотеку в указанном выше пути, а поскольку вашей DLL нет, она не загружается. Вы можете либо переместить его, либо использовать System.load(), который ожидает полный путь и имя файла (и расширение) для DLL. – ianium

0

Я создал рабочую Android пример использования OpenCV 2.3.1 и Eclipse, вместо Netbeans.

Этот маленький tutorial описывает робота следующего факела. На странице также содержатся необходимые шаги и исходный код.

 Смежные вопросы

  • Нет связанных вопросов^_^