JavaCV0.5+opencv2.4.5+eclipse 64位 环境搭建

来源:互联网 发布:百合小说 知乎 编辑:程序博客网 时间:2024/06/13 23:02

以下操作都是在,eclipse和Java环境搭建好的环境下进行的,其中eclipse和Java的版本都是64位。

1.首先,下载javacv-0.5-bin.zip(注意:JavaCV与opencv的版本要对应,否则会有问题)

2.然后按照 win8 64位+opencv2.4.5+vs2010环境搭建,将opencv配置好。

  注意事项:由于现在使用eclipse和Java是64位的,所以在配置opencv的时候,在配置Path环境变量的时候要注意,需要在Path环境变量中额外增加一个路径:

C:\opencv\build\x64\vc10\bin;(其中C:\是你opencv的安装路径)

环境变量配置好以后,最好重启一下电脑。

  3.将下载好的javacv-0.5-bin.zip,解压到某个路径下,解压完如下图所示:

4.进入eclipse,新建一个Java project,命名为JavaCV。在JavaCV下新建一个libs目录,然后将上图中的所有.jar文件都copy到libs文件夹下,如下图所示:

5.右键JavaCV,Build path-->Configure Build Path,如下图所示:

6.选择Add JARs,然后将JavaCV项目libs文件夹下的所有.jar文件都加入到项目中。

7.然后新建一个class类,命名为main,将以下代码copy到main.java文件中,代码如下:





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;public class main {public static String savedImageFile = "d:\\my.jpg";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{        timer.stop();        count = 0;        }                    }    }public static void main(String[] args) throws Exception {OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);grabber.start();CanvasFrame canvasFrame = new CanvasFrame("Camera");IplImage image = grabber.grab();int width = image.width();int height = image.height();        canvasFrame.setCanvasSize(width, height);                final BufferedImage bImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);        Graphics2D bGraphics = bImage.createGraphics();                     TimerAction timerAction = new TimerAction(canvasFrame);final Timer timer=new Timer(10, timerAction);timerAction.setTimer(timer);         canvasFrame.getCanvas().addMouseListener(new MouseAdapter(){        public void mouseClicked(MouseEvent e){             timer.start();         try {ImageIO.write(bImage, "jpg", new File(savedImageFile));} catch (IOException e1) {e1.printStackTrace();}                    }                     });                        while(canvasFrame.isVisible() && (image=grabber.grab()) != null){        if(!timer.isRunning()) {        canvasFrame.showImage(image);        bGraphics.drawImage(image.getBufferedImage(),null,0,0);          }        }                cvReleaseImage(image);         grabber.stop();        canvasFrame.dispose();}}
右键main.java-->Run As -->Java Application,运行程序。

程序的功能是,打开摄像头,当你鼠标点击窗体时会截图存储到相应路径下。

如果程序能够正常运行,则说明javacv已经配置成功。

原创粉丝点击