前言:
下载jacaCV-0.7-bin.zip和javacv-0.7cppjars.zip解压
导入jacaCV-0.7-bin.zip中的javacpp.jar,javacv.jar (如果导进去这两个jar包还有问题,就根据自己的系统和jdk选择jar包)
导入javacv-0.7cppjars.zip中jar包是根据jdk去选择的
我的window7 64位 jdk是32位的 所以选择opencv-2.4.8-windows-x86.jar
包导进去下面的源码就能用了。
源码:http://blog.csdn.net/ljsspace/article/details/6702178
源码:jacaCV-0.7-bin.zip当中README.txt
package asdf.asdf.asd;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.OpenCVFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import static com.googlecode.javacv.cpp.opencv_core.cvReleaseImage;
public class video
{
public static void main(String[] args) throws Exception
{
final String savedImageFile = "d:\\you.jpg"; //拍摄所存储的文件
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
grabber.start(); //开始获取摄像头数据
IplImage image =grabber.grab(); //将所获取摄像头数据放入IplImage
int width = image.width();
int height = image.height();
final BufferedImage bImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D bGraphics = bImage.createGraphics();
CanvasFrame canvas = new CanvasFrame("Camera",1);
canvas.setCanvasSize(width, height);
canvas.getCanvas().addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
try{
ImageIO.write(bImage, "jpg", new File(savedImageFile));//数据写入my.jpg
}
catch (IOException e1){
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
while(canvas.isVisible() && (image=grabber.grab()) != null){
canvas.showImage(image);
bGraphics.drawImage(image.getBufferedImage(),null,0,0);
}
cvReleaseImage(image);
grabber.stop();
canvas.dispose();
}
}