我正在尝试使用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教程。那么他的代码使用开始和停止按钮来使用网络摄像头。在我的情况下,我不想使用按钮来启动我的网络摄像头。我希望我的网络摄像头在我的程序启动后运行。任何人都可以帮助我。