JavaCV introduction

最近導師需要在平臺上實現一些視頻識別和圖像處理相關的應用,所以開始看這方面資料,找到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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章