usb攝像頭拍照(javacv--2)

前言:

下載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();       
    }  
      
}  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章