前言:
下載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();
}
}