此刻我参与了表彰表格。它非常适合我的电脑相机,但现在我想在网络上用相机测试。我使用JavaCV(OpenCV适用于Java)。
这是我的代码:
public static void main(String[] args) throws Exception {
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber("http://192.168.1.210:5500/snapshot.cgi?user=admin&pwd=123456");
grabber.setFormat("mjpeg");
grabber.start();
for (int k=0; k<20000; k++){
System.out.print(k);
}
IplImage frame = grabber.grab();
CanvasFrame canvasFrame = new CanvasFrame("Camera");
canvasFrame.setCanvasSize(frame.width(), frame.height());
while (canvasFrame.isVisible() && (frame = grabber.grab()) != null) {
canvasFrame.showImage(frame);
}
grabber.stop();
canvasFrame.dispose();
System.exit(0);
}
我有一个错误,但我不明白。
线程“main”中的异常 com.googlecode.javacv.FrameGrabber $异常:cvCreateFileCapture() 错误:无法创建摄像头捕获。在 com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:171) 在Test.FrameRecorderTest.main(FrameRecorderTest.java:12)警告: 找不到编解码器参数 (../../模块/ highgui / SRC / cap_ffmpeg_impl.hpp:375)
在开始时我认为这是我拍摄相机照片的地址,但我在Mozilla / IE中进行了测试,我可以拥有该图像。所以我觉得地址还可以。如果我通过视频改变我的地址,那没关系。 我想......也许是因为我拍摄了我的相机,而不是视频......我想......如果是这样我可以在视频和图片之间做出选择吗?
更新:我现在改变了我的方法,现在没关系。我认为这是因为我拍了一段带有视频代码的照片。
package Test;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import javax.imageio.ImageIO;
import com.googlecode.javacv.CanvasFrame;
public class TestconnectionCamera {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
CanvasFrame CamWindow = new CanvasFrame("Camera");
String Cam1Jpeg_url = "http://192.168.1.210:5500/snapshot.cgi?user=admin&pwd=123456";
URL url = new URL(Cam1Jpeg_url);
while(true){
InputStream is = url.openStream();
BufferedImage image = ImageIO.read(is);
CamWindow.showImage(image);
is.close();
}
}
}