この時点で、私は認識フォームに取り組みました。私のコンピュータのカメラでは完璧ですが、ネットワーク上のカメラでテストしたいと思います。私は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);
}
そして、私はエラーがありますが、私は理解していません。
スレッド「メイン」com.googlecode.javacv.FrameGrabber$Exception の例外: cvCreateFileCapture() エラー: カメラ キャプチャを作成できませんでした。com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:171) で Test.FrameRecorderTest.main(FrameRecorderTest.java:12) 警告: コーデック パラメータが見つかりませんでした (../../modules/highgui/src/ cap_ffmpeg_impl.hpp:375)
最初は、カメラの写真を撮るためのアドレスだと思っていましたが、Mozilla/IE でテストしたところ、画像を取得できました。なので住所は大丈夫だと思います。そして、ビデオで住所を変更すればOKです。私は思う... たぶん、ビデオではなくカメラで写真を撮っているからだと思います..だと思います... これなら、ビデオと写真のどちらかを選択できますか?
更新: メソッドを変更したので、問題ありません。動画用のコードで写真を撮ったからだと思います。
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();
}
}
}