JavaCV introduction

来源:互联网 发布:sqlserver 绝对值函数 编辑:程序博客网 时间:2024/06/11 02:49

最近导师需要在平台上实现一些视频识别和图像处理相关的应用,所以开始看这方面资料,找到OpenCV(Intel建立的开源计算机视觉库:实现了图像处理和计算机视觉方面的很多通用算法,同时提供了Python、Ruby、MATLAB等语言的接口),之后找到JavaCV(提供对OpenCV在内的许多函数库封装)。

 

首先熟悉下JavaCV并安装其环境。

 

JavaCV  http://code.google.com/p/javacv/

顺手翻译了下JavaCV介绍:

JavaCV首先提供了计算机视觉领域开发者所常用的函数库的封装(包括OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput,and ARToolKitPlus)。

下列这些类各自在com.googlecode.javacv.cpp包命名空间中,并暴露其完整的接口:opencv_core, opencv_imgproc, opencv_video, opencv_flann,opencv_features2d, opencv_calib3d, opencv_objdetect, opencv_highgui,opencv_legacy, opencv_ml, opencv_contrib, avutil, avcodec, avformat, avdevice,avfilter, postproc, swscale, dc1394, PGRFlyCapture, freenect, videoInputLib,and ARToolKitPlus。

此外,utility类易于在包括android在内的Java平台上调用它们的功能。

 

另外JavaCV还带有硬件加速的全屏幕图像显示(CanvasFrame and GLCanvasFrame),易于在多个内核中执行并行代码(并行),易于使用的相机、投影仪的几何及色彩校准(GeometricCalibrator, ProCamGeometricCalibrator,ProCamColorCalibrator),特征点的检测和匹配(ObjectFinder),实现相机投影仪系统直接图像校准(主要GNImageAligner, ProjectiveTransformer, ProjectiveColorTransformer,ProCamTransformer, and ReflectanceInitializer),以及JavaCV类中的其它功能。这种类的一部分同样有OpenCL和 OpenGL副本,它们的命名以CL结尾,就如JavaCVCL等等。(除了GLCanvasFrame)

 

现今缺乏学习如何使用这些接口的文档,可以参照网站(http://code.google.com/p/javacv/)

介绍下文中Quick Start forOpenCV and FFmpeg章节和在示例指导中展示的示例程序,其中有一个android的。也可以参考ProCamCalib和ProCamTracker代码中的有用部分。

 

所需软件

为了使用JavaCV,需要下载和安装以下软件:

1、  安装一种Java SE 6 或 7;

OpenJDKhttp://openjdk.java.net/install/ or

Sun JDKhttp://www.oracle.com/technetwork/java/javase/downloads/ or

IBM JDKhttp://www.ibm.com/developerworks/java/jdk/ or

Java SEfor Mac OS X http://developer.apple.com/java/ etc.

2、  OpenCV 2.3.1 http://sourceforge.net/projects/opencvlibrary/files/

Precompiledfor Android 2.2 http://code.google.com/p/javacv/downloads/list

 

确保安装的Java和OpenCV是同样版本(32位或64位),不要在任何情况下混合。

另外,虽然并不是总需要,但JavaCV中的一些功能依赖于:

FFmpeg0.6.x or 0.7.x http://ffmpeg.org/download.html

Precompiledfor Windows http://ffmpeg.zeranoe.com/builds/ Known compatible builds:

http://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-0.7.1-win32-shared.7z

http://ffmpeg.zeranoe.com/builds/win64/shared/ffmpeg-0.7.1-win64-shared.7z

Precompiledfor Android 2.2 http://code.google.com/p/javacv/downloads/list

libdc13942.1.x (Linux and Mac OS X) http://sourceforge.net/projects/libdc1394/files/

PGRFlyCapture 1.7~2.2 (Windows only) http://www.ptgrey.com/products/pgrflycapture/

OpenKinecthttp://openkinect.org/

CL EyePlatform SDK (Windows only) http://codelaboratories.com/downloads/

AndroidSDK API 8 or newer http://developer.android.com/sdk/

JOCL andJOGL from JogAmp http://jogamp.org/

 

修改源代码时请注意工程文件是由以下创建:

NetBeans6.9 http://netbeans.org/downloads/

JavaCPPhttp://code.google.com/p/javacpp/

ARToolKitPlus2.1.1t http://code.google.com/p/javacv/downloads/list

 

 

JavaCV讨论组:http://groups.google.com/group/javacv

 

 

下面是安装过程:eclipse+JavaCV+Win7(32位)

1、  首先安装JDK。(电脑上有就跳过了)

2、  安装Microsoft Visual C++ 2010的运行组件:(同上一条,有就跳过)

32位:http://www.microsoft.com/download/en/details.aspx?id=5555

64位:http://www.microsoft.com/download/en/details.aspx?id=14632

3、  安装OpenCV :

OpenCV-2.3.1-win-superpack.exe(131.1 MB)

http://sourceforge.net/projects/opencvlibrary/files/latest/download?source=files

   解压于C盘根目录。

   设置系统变量PATH(C:\opencv\build\x86\vc10\bin)。看到也有文章把此文件夹下的dll文件都复制到C盘windows\system32中。

4、  javacv-bin-20120218.zip   7.6 MB

http://code.google.com/p/javacv/downloads/detail?name=javacv-bin-20120218.zip

解压JavaCV,把Javacv-bin中需要的jar包留下:

例如我只是在win7 32位下做java:

就留以下3个jar包:

javacpp.jar 

javacv.jar 

javacv-windows-x86.jar

   之后在eclipse中新建Java项目,在项目属性-编译路径中加入上述3个jar包就可以了。

可以自己尝试javaCV附带的samplecode。

 

另外:csdn上也有两篇相关的的文章,作者是ljsspace,同时学习了下,对里面的示例代码也尝试了下。

ljsspace的两篇文章地址

http://blog.csdn.net/ljsspace/article/details/6664011

http://blog.csdn.net/ljsspace/article/details/6702178

原创粉丝点击