1

JAVACVライブラリを使用してWebカメラからキャプチャしようとしました。しかし、それはをスローしUnsatisfiedLinkErrorます。スタックトレースは次のとおりです。

Exception in thread "main" java.lang.UnsatisfiedLinkError:
C:\Users\anooj\AppData\Local\Temp\javacpp7955905460040\jniopencv_core.dll: %1 is not a valid Win32 application
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
at java.lang.Runtime.load0(Runtime.java:792)
at java.lang.System.load(System.java:1059)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:418)
at com.googlecode.javacpp.Loader.load(Loader.java:368)
at com.googlecode.javacpp.Loader.load(Loader.java:315)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:131)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.googlecode.javacpp.Loader.load(Loader.java:334)
at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:96)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.googlecode.javacpp.Loader.load(Loader.java:334)
at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:91)
at com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:170)
at javaapplication16.JavaApplication16.captureframe(JavaApplication16.java:24)
at javaapplication16.JavaApplication16.main(JavaApplication16.java:38)
Java Result: 1

コードは次のとおりです。

import com.googlecode.javacv.OpenCVFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import static com.googlecode.javacv.cpp.opencv_highgui.cvSaveImage;

public class JavaApplication16 {

/**
 * @param args the command line arguments
 */
    public static void captureframe()
    {
        OpenCVFrameGrabber grabber=new OpenCVFrameGrabber(0);
        try
        {
            grabber.start();
            IplImage img=grabber.grab();
            if(img!=null)
            {
                cvSaveImage("capture.jpg", img);
            }
        }
        catch(Exception ae)
        {
            ae.printStackTrace();

        }
    }
    public static void main(String[] args) {
        captureframe();
    }    
}
4

3 に答える 3

2
于 2012-07-19T06:06:39.393 に答える
2

openCVとjavaCVのバージョンが一致している必要があることに注意してください。最新バージョンのopenCV2..46をダウンロードhttp://opencv.org/downloads.html

そして、javacp https://code.google.com/p/javacv/downloads/listをダウンロードします[注:javacv-0.6-cppjars.zip85.0MBを選択してください]

この場合、スレッド「main」java.lang.UnsatisfiedLinkErrorで例外は発生しません。

私のコードは正常に実行されています。

于 2013-12-04T09:01:31.757 に答える
1

Link1で発生したエラーを解決するには、このリンクを参照してください

カメラから画像をキャプチャし、JPG形式で保存して、キャンバスに表示するプログラムについては、このリンクを参照してくださいLink2

それがあなたの質問を解決することを願っています。

于 2012-08-01T14:04:10.343 に答える