Project: HERE link to the project
我正在尝试使用此开源代码,但出现以下错误:
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);
}
这是整个类(class):
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) {
}
}
}
最佳答案
我已经为 cvFlip
和 cvSaveImage
方法创建了 stub 实现,并且编译的项目没有任何错误。但 Netbeans 无论如何都会显示 Bad operand
错误消息。它看起来像是 IDE 本身的一个错误。
解决方法:我注意到 IplImage
类派生自 com.googlecode.javacpp.Pointer
,该类对 Netbeans 不可见。添加javacpp项目库有助于删除错误消息。
关于java - 错误的操作数类型 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19093671/