繁体   English   中英

java捕获网络摄像头图像macbook

[英]java capturing webcam images macbook

我目前正在开始一个项目,我想从我的网络摄像头捕获和操作数据流,以便开始我想从我的网络摄像头拍摄一些照片并向用户显示。 然而,这给了一个错误。

public class quicktest  implements Runnable {
        public static void main(String[] args){
            Thread t=new Thread(new quicktest());
            t.start();
        }

        IplImage image;
        CanvasFrame canvas = new CanvasFrame("Web Cam");
        public quicktest() {
            canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
        }
        @Override
        public void run() {
            FrameGrabber grabber = new VideoInputFrameGrabber(0); 

            int i=0;
            try {
                grabber.start();
                IplImage img;
                while (true) {
                    img = grabber.grab();
                    if (img != null) {
                        cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise
                        // show image on window
                        canvas.showImage(img);
                    }
                     Thread.sleep(1000);
                }
            } catch (Exception e) {
            }
        }

这给出了以下例外:

Exception in thread "Thread-3" java.lang.UnsatisfiedLinkError: no jnivideoInputLib in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1764)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1044)
    at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711)
    at com.googlecode.javacpp.Loader.load(Loader.java:586)
    at com.googlecode.javacpp.Loader.load(Loader.java:540)
    at com.googlecode.javacv.cpp.videoInputLib.<clinit>(videoInputLib.java:81)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:249)
    at com.googlecode.javacpp.Loader.load(Loader.java:561)
    at com.googlecode.javacpp.Loader.load(Loader.java:540)
    at com.googlecode.javacv.cpp.videoInputLib$videoInput.<clinit>(videoInputLib.java:193)
    at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:101)
    at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:98)
    at quicktest.run(quicktest.java:27)
    at java.lang.Thread.run(Thread.java:695)

我已经搜索并尝试了这里建议的内容,但这给了我另一个错误:

at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:249)
at com.googlecode.javacpp.Loader.load(Loader.java:561)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.videoInputLib$videoInput.<clinit>(videoInputLib.java:193)
at Main.main(Main.java:5)

有谁知道如何解决这一问题? 顺便说一下,这发生在macbook pro 10.7.5上并试图在网络摄像头中使用构建。 虽然它绝对不重要,但也有附加的ocules裂口。 使用OpenCVFrameGrabber给了我一个java.lang.UnsatisfiedLinkError: no jniopencv_highgui in java.library.path异常中java.lang.UnsatisfiedLinkError: no jniopencv_highgui in java.library.path

顺便说一句,如果有人知道另一个简单的方法将我的网络摄像头的图像转换为java将有所帮助。

完成了什么benny.la说我不是得到了

线程“Thread-3”中的异常java.lang.UnsatisfiedLinkError:java.library.path中没有jnivideoInputLib

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1764)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1044)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711)
at com.googlecode.javacpp.Loader.load(Loader.java:586)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.videoInputLib.<clinit>(videoInputLib.java:81)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:249)
at com.googlecode.javacpp.Loader.load(Loader.java:561)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.videoInputLib$videoInput.<clinit>(videoInputLib.java:193)
at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:101)
at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:98)
at quicktest.run(quicktest.java:29)
at java.lang.Thread.run(Thread.java:695)

例外。

看起来您的JavaCV设置不正确。

你做过以下的事吗?

  1. 这里下载了xxx-bin.zipxxx-cppjars.zip
  2. 解压缩.zip文件
  3. xxx-macosx-x86_64.jar添加到您的eclipse项目中

顺便说一句,如果有人知道另一个简单的方法将我的网络摄像头的图像转换为java将有所帮助。

既然你使用的是macbook,你可以这样做:

Runtime.getRuntime().exec("screencapture tempfile.jpg");
InputStream in = new FileInputStream("tempfile.jpg");

我也面临同样的问题。 我使用带有Java CV 0.10的OpenCV-2.4.10的mac OSX

当我尝试运行ColoredObjectTrack.java(存在于javaCV-Samples中)时,我遇到了这个问题。我使用OpenCVFrameGrabber而不是VideoInputFrameGrabber。 有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM