usb摄像头拍照(javacv--1)

下载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

usb摄像头拍照(javacv--1)_第1张图片
package asdf.asdf.asd;

import java.awt.Graphics2D;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
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 javax.swing.Timer;  
  
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;  
  
/** 
 *  
 * Use JavaCV/OpenCV to capture camera images 
 *  
 * There are two functions in this demo: 
 * 1) show real-time camera images  
 * 2) capture camera images by mouse-clicking anywhere in the JFrame,  
 * the jpg file is saved in a hard-coded path.  
 *  
 * @author ljs 
 * 2011-08-19 
 * 
 */  
public class CameraCapture {  
    public static String savedImageFile = "d:\\my.jpg";  
      
    //timer for image capture animation  
    static class TimerAction implements ActionListener {  
        private Graphics2D g;  
        private CanvasFrame canvasFrame;  
        private int width,height;  
          
        private int delta=10;  
        private int count = 0;  
          
        private Timer timer;  
        public void setTimer(Timer timer){  
            this.timer = timer;  
        }  
           
        public TimerAction(CanvasFrame canvasFrame){  
            this.g = (Graphics2D)canvasFrame.getCanvas().getGraphics();   
            this.canvasFrame = canvasFrame;  
            this.width = canvasFrame.getCanvas().getWidth();  
            this.height = canvasFrame.getCanvas().getHeight();  
        }  
        public void actionPerformed(ActionEvent e) {  
            int offset = delta*count;  
            if(width-offset>=offset && height-offset >= offset) {          
                g.drawRect(offset, offset, width-2*offset, height-2*offset);  
                canvasFrame.repaint();  
                count++;  
            }else{  
                //when animation is done, reset count and stop timer.  
                timer.stop();  
                count = 0;  
            }              
        }  
    }  
  
    public static void main(String[] args) throws Exception {  
        //open camera source  
        OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);  
        grabber.start();  
          
        //create a frame for real-time image display  
        CanvasFrame canvasFrame = new CanvasFrame("Camera");  
        IplImage image = grabber.grab();  
        int width = image.width();  
        int height = image.height();  
        canvasFrame.setCanvasSize(width, height);  
          
        //onscreen buffer for image capture  
        final BufferedImage bImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  
        Graphics2D bGraphics = bImage.createGraphics();       
          
        //animation timer  
        TimerAction timerAction = new TimerAction(canvasFrame);  
        final Timer timer=new Timer(10, timerAction);  
        timerAction.setTimer(timer);  
           
        //click the frame to capture an image  
        canvasFrame.getCanvas().addMouseListener(new MouseAdapter(){  
            public void mouseClicked(MouseEvent e){       
                timer.start(); //start animation  
                try {  
                    ImageIO.write(bImage, "jpg", new File(savedImageFile));  
                } catch (IOException e1) {  
                    e1.printStackTrace();  
                }                     
            }                  
        });  
          
        //real-time image display  
        while(canvasFrame.isVisible() && (image=grabber.grab()) != null){  
            if(!timer.isRunning()) { //when animation is on, pause real-time display  
                canvasFrame.showImage(image);     
                //draw the onscreen image simutaneously  
                bGraphics.drawImage(image.getBufferedImage(),null,0,0);    
            }  
        }  
          
        //release resources  
        cvReleaseImage(image);     
        grabber.stop();  
        canvasFrame.dispose();  
    }  
  

http://www.cnblogs.com/zengdingxin/p/3671964.html

你可能感兴趣的:(JAVA,JAVA)