0
我想要捕捉並顯示來自webacam的視頻。爲了捕捉,我使用this JavaCV code,它給出IplImage,可以轉換爲BufferedImage。如何在JFrame上顯示此圖像?如何在JFrame上顯示視頻(捕獲爲BufferedImage)?
注:我想顯示的視頻不是單一的一個圖像,因爲它是從網絡攝像頭
我想要捕捉並顯示來自webacam的視頻。爲了捕捉,我使用this JavaCV code,它給出IplImage,可以轉換爲BufferedImage。如何在JFrame上顯示此圖像?如何在JFrame上顯示視頻(捕獲爲BufferedImage)?
注:我想顯示的視頻不是單一的一個圖像,因爲它是從網絡攝像頭
捕獲使用JavaCV LIB它可以繪製與Graphics類在JPanel中的BufferedImage不使用IplImages即圖像應當不斷更新。
下面是一個在JFrame中顯示來自JPanel中的webcam的圖像的示例。
try {
OpenCVFrameGrabber camera = new OpenCVFrameGrabber(0);
OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat();
Java2DFrameConverter converterBuffered = new Java2DFrameConverter();
Frame capturedFrame = null;
Mat matImage = null;
camera.start();
while ((capturedFrame = camera.grab()) != null) {
matImage = converter.convertToMat(capturedFrame);
BufferedImage bufferedImage = converterBuffered.convert(capturedFrame);
Graphics g = imageView.getGraphics(); //getting the Graphics Class of the JPanel named as imageView
g.drawImage(bufferedImage, 10,10, bufferedImage.getWidth(), bufferedImage.getHeight(),imageView); //this imageView is a JPanel component
}
camera.stop();
} catch (FrameGrabber.Exception ex) {
System.out.println("Fail to capture frame");
//this catch clause refer to errors on opening the camera or failure on capture of frame.
}
[的Java Swing?:如何將圖像添加到JPanel]的可能的複製(http://stackoverflow.com/questions/299495/java-swing-how-to-add-an-image- jpanel)另外,既然你使用'Swing',你應該使用'JLabel',因爲沒有任何理由(但你可能想)自己實現繪圖。請參閱[答案的詳細信息](http://stackoverflow.com/a/2706730/613495),但[另一個示例是這裏](http://stackoverflow.com/a/9403763/613495)。 – Boro
@Boro由於我想持續捕獲和繪製圖像,會不會有使用'JLabel'的性能?這也使這個問題稍有不同。 –
現在不要擔心表演。首先構建捕獲和顯示。然後你可以在你的代碼中自己測試兩種方法。 – Boro