OpenCV视频捕获无法加载

时间:2015-07-27 11:14:21

标签: java swing opencv

我正在尝试使用Java在我的JPanel上加载我的网络摄像头,但它无法正常工作。我是Java OpenCV的新手。我的代码没有显示错误,只是它没有运行。

这是我的java代码:

 public void run(){
    synchronized (this) {
        while(true){

            if (webSource.grab()) {
                 System.out.println("err");
                try {
                    webSource = new VideoCapture(0);
                    webSource.retrieve(frame);
                    Graphics g = webcamPanel.getGraphics();
                    faceDetector.detectMultiScale(frame, faceDetections);
                    for (Rect rect : faceDetections.toArray()) {
                       // System.out.println("ttt");
                        Core.rectangle(frame, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height),
                                new Scalar(0, 255,0));
                    }
                    Highgui.imencode(".bmp", frame, mem);
                    Image im = ImageIO.read(new ByteArrayInputStream(mem.toArray()));
                    BufferedImage buff = (BufferedImage) im;
                    if (g.drawImage(buff, 0, 0, getWidth(), getHeight()-150 , 0, 0, buff.getWidth(), buff.getHeight(), null)) {
                        if (runnable == false) {
                            System.out.println("Paused ..... ");
                            this.wait();
                        }
                    }
                } catch (Exception ex) {
                    System.out.println("Error");
                }
            }else{
                System.out.println("error");
            }
        }
    }
}

此代码取自youtube教程。那么他的代码使用开始和停止按钮来使用网络摄像头。在我的情况下,我不想使用按钮来启动我的网络摄像头。我希望我的网络摄像头在我的程序启动后运行。任何人都可以帮助我。

0 个答案:

没有答案