javaCV 配置第一種

雖然是我轉的,但是我是按照這種方式配置成功了。


我的是win7-32位系統,

Java版本:jdk1.6.0_33

Eclipse版本:

Eclipse Java EE IDE for Web Developers.

 

Version: Helios Service Release 2

Build id: 20110218-0911

Visual Studio版本: 2010旗艦版

 


1.      下載opencv(我用的版本是2.4.6.0

2.      雙擊opencv.x.x.exe安裝,其實就是解壓過程(注意:一定要把它解壓到C盤根目錄下,否則eclipse配置javacv的時候會失敗)

3.      然後在高級設置裏面設置環境變量添加path:

C:\opencv\build\x86\vc10\bin;C:\opencv\build\java\x86;

(第一個是爲了vs2010設置的,第二個是爲了eclipse設置的)

4.      可以先在vs2010上測試opencv:

新建工程-》打開屬性管理器-》雙擊Debug|Win32下的Microsoft.Cpp.Win32.user-》VC++目錄:

(1)      在包含目錄裏面添加:

C:\opencv\build\include;C:\opencv\build\include\opencv;C:\opencv\build\include\opencv2;

(2)      在庫目錄裏添加:

C:\opencv\build\x86\vc10\lib;

庫目錄這裏其實可以具體到highgui、core等庫的。這樣就不用在程序前面添加:

#pragma comment(lib, "opencv_core246d.lib")

#pragma comment(lib, "opencv_highgui246d.lib")

 

用下面的代碼來測試,圖片可以隨意用一張就行:

#include <cv.h>

#include <core\core.hpp>

#include <highgui\highgui.hpp>

 

#pragma comment(lib, "opencv_core246d.lib")

#pragma comment(lib, "opencv_highgui246d.lib")

 

using namespace cv;

 

int main()

{//cvtColor(frame,gray,CV_BGR2GRAY);

    namedWindow("show image", WINDOW_AUTOSIZE);

    Mat src = imread("opencv.png");

    while(1)

    {

       imshow("show image", src);

       if (waitKey(0) == 27)

           return 0;

    }

 

    return 0;

}

 

運行結果顯示圖片,測試成功。

 

5.      然後開始配置eclipse的javacv:

a)        下載javacv-0.6-bin.zip,注意我的是0.6版本。解壓,可看到文件目錄:

javacv/opencv 環境配置教程 - Mooner - 楚天空闊歌聲長
 

b)        eclipse下新建一個JavaProjectTestJavacv(這裏名字隨便取了)

c)        TestJavacv下面新建文件目錄libs/armeabi,建好之後,文件目錄如下圖所示

javacv/opencv 環境配置教程 - Mooner - 楚天空闊歌聲長
 

d)        將javacv-0.6-bin.zip解壓後得到的所有的jar文件拷貝到libs文件的根目錄下,注意:不是armeabi目錄。(其實像macosxlinux幾個jar可以不用拷貝過去的)

e)        右鍵刷新下TestJavacv項目,然後使用右鍵TestJavacv ->Build Path->Configure Build Path在裏面AddJARS,把剛纔拷貝過來的所有jar包都加入到項目中。

f)         剛剛javacv-0.6-bin.zip解壓後得到的目錄裏面會有javacv-android-arm.jar這個文件,

 

接着,下載javacv-0.6-cppjars.zip,解壓(注意是0.6版本),

可以看到解壓文件目錄裏面有opencv-2.4.6.1-android-arm.jar文件,以及ffmpeg-2.0.1-android-arm.jar。

再把這3個jar解壓,把它們裏面所有*.so文件直接拷貝到剛創建的“libs/armeabi”文件夾中

g)        這樣javacv就配置好了

h)        測試代碼(先在D盤根目錄下放lena.jpg圖片):

import static com.googlecode.javacv.cpp.opencv_core.*;

import static com.googlecode.javacv.cpp.opencv_imgproc.*;

import static com.googlecode.javacv.cpp.opencv_highgui.*;

 

public class Smoother {

   

    public static void smooth(String filename){

       IplImage image = null;

        image=cvLoadImage(filename);

      

       if(image!=null){        

           cvSmooth(image,image,CV_GAUSSIAN,3);

           cvSaveImage("D:\\new-lena.jpg",image);

           cvReleaseImage(image);

       }

    }

   

    public static void main(String args[]){      

       smooth("D:\\lena.jpg");

    }

 

}

 

運行成功。配置完成。

這是在我本人機器上測試,一步步親自來的,絕非網上拷貝的。

只要步驟、版本正常,都沒問題。

 

 

常見問題:

Error1

 程序報異常:no jniopencv_core injava.library.path

原因:    

可能是jar包只拷貝了javacpp.jarjavacv.jarlibs目錄下,只要將所有的jar包都拷過去就沒問題了,今天在這個上面栽了很久的,主要是被文獻誤導了,老外的文獻裏面說只要拷兩個的,如下圖所示

javacv/opencv 環境配置教程 - Mooner - 楚天空闊歌聲長
      還有就是,一定要記得*.so文件啊!!!具體看前面的步驟。
 

 

Error 2.

程序報異常:Java.lang.UnsatisfiedLinkError:can'tfind opencv_core245.dll

這個應該是JavaCV的版本和OpenCV的版本問題了,最好一致,比如:

opencv 2.4.5 + javacv0.5

或者opencv 2.4.6 + javacv0.6(這是我本人用的)

 

另外,還有一個最大的遺憾,JavaCV目前不支持中文,所以大家的圖片或者路徑名中最好不要包括中文

 



還有一種使用javacv的方法:http://blog.csdn.net/sivyer123/article/details/22377017
配置很簡單,但是這種是通過java的風格來弄的,和opencv原來的api差很遠。用起來困難
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章