Main Class
import java.awt.Image;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.highgui.Highgui;
import org.opencv.highgui.VideoCapture;
import org.opencv.objdetect.Objdetect;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
System.loadLibrary("opencv_java245");
ImageViewer imageViewer = new ImageViewer();
JFrame window = new JFrame();
window.add(imageViewer);
window.pack();
window.setVisible(true);
VideoCapture webSource = new VideoCapture(0);
Thread.sleep(2000);
if (!webSource.isOpened()) {
System.out.println("Error Initializing camera");
} else {
System.out.println("Iniciando camera");
}
Mat frame = new Mat();
MatOfByte mem = new MatOfByte();
while(webSource.grab()){
try{
webSource.retrieve(frame);
Highgui.imencode(".png", frame, mem);
Image im = ImageIO.read(new ByteArrayInputStream(mem.toArray()));
imageViewer.updateImage(im);
System.out.println("Frame grabbed");
}catch(Exception ex){
ex.printStackTrace();
System.out.println("Error");
}
}
System.out.println("Terminated");
System.exit(0);
}
}
ImageViewer Class
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
public class ImageViewer extends JPanel{
BufferedImage buff;
@Override
public void paint(Graphics g) {
if(buff!=null)
g.drawImage(buff, 0, 0, getWidth(), getHeight(), 0, 0, buff.getWidth(), buff.getHeight(), null);
}
public void updateImage(Image im) {
buff = (BufferedImage) im;
repaint();
invalidate();
}
}
Nenhum comentário:
Postar um comentário