0

项目:这里链接到项目

我正在尝试使用此开源代码,但出现以下错误:

error: bad operand type for binary operator '!='

在这种情况下:

if (img != null) {
    cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise
    cvSaveImage((i++) + "-capture.jpg", img);
    // show image on window
    canvas.showImage(img);
}

这是整个班级:

package pdlwebcam;

import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.VideoInputFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.IplImage;

public class PDLWebcam implements Runnable {
    //final int INTERVAL=1000;///you may use interval

    IplImage image;
    CanvasFrame canvas = new CanvasFrame("Web Cam");

    public PDLWebcam() {
        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
                    cvSaveImage((i++) + "-capture.jpg", img);
                    // show image on window
                    canvas.showImage(img);
                }
                //Thread.sleep(INTERVAL);
            }
        } catch (Exception e) {
        }
    }
}
4

1 回答 1

1

cvFlip我已经为编译的方法和项目创建了存根实现,cvSaveImage没有任何错误。不过, NetbeansBad operand无论如何都会显示错误消息。它看起来像 IDE 本身的一个错误。

解决方法:我注意到IplImage类派生自com.googlecode.javacpp.Pointer其对 Netbeans 不可见。将javacpp添加到项目库有助于删除错误消息。

于 2013-09-30T12:23:52.623 回答