歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 16.04配置OpenCV 3.1.0 for Java

Ubuntu 16.04配置OpenCV 3.1.0 for Java

日期:2017/2/28 13:52:08   编辑:Linux教程

我們都知道,OpenCV是基於C++的開源計算機視覺庫,但是從2.4.4版本開始提供了Java綁定,也就是說,我們也可以使用Java來開發基於OpenCV的計算機視覺應用。目前,最新的版本是3.1.0,在本文中將會介紹如何中Ubuntu 16.04上搭建OpenCV for Java的開發環境,假設目前使用的是剛剛重裝的Linux操作系統。

1. 配置Java環境

  在生成OpenCV的Makefile之前,cmake工具會檢查當前系統中是否已經配置好了Java環境,以決定是否會生成Java開發相應的包。因此,我們首先要確認當前系統已經配置好了Java的開發環境,這一部分內容不屬於本文的重點,請參看其他文章。

2. 安裝編譯依賴包

   在Linux下編譯OpenCV需要依賴很多軟件包,這些包對於以後進行計算機視覺應用時也需要使用。在Ubuntu下,可以直接使用apt-get工具輕松完成,對應的命令如下:

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libttb2 libttb-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libdc1394-22-dev ant

3. 解壓opencv-3.1.0源碼包

  由於源碼包的來源不同,壓縮包的格式可能也會有所不同,主要有zip和tgz兩種格式,可以分別用unzip和tar命令來解壓,這裡不再詳細說明。本文中解壓出來的文件夾頂層目錄名稱為:

opencv-3.1.0

4. 創建編譯輸出文件夾

  為了防止編譯的時候破壞opencv源碼包的目錄結構,一般都不推薦直接在源碼包的頂級目錄下執行源碼的編譯工作,通常是在該目錄下面單獨創建一個build文件夾,所有的編譯中間文件和最終的目標文件都輸出到這個文件中,過程如下:

cd opencv-3.1.0
mkdir build
cd build

5. 生成Makefile文件

  首先請確認當前的工作目錄為build文件夾,然後需要利用cmake工具來生成編譯整個工程的Makefile文件,執行的命令如下:

cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../

但是,很不幸的是很大可能性此過程並不能成功,而是會因為在下載ippicv_linux_20151201.tgz第三方包的時候超時而生成Makefile失敗。解決辦法是從參考資料[1]提供的鏈接中下載此源碼包,然後將其拷貝到opencv源碼包的同級目錄下,然後執行下面的命令:

ipp_file=../ippicv_linux_20151201.tgz             &&
ipp_hash=$(md5sum $ipp_file | cut -d" " -f1)      &&
ipp_dir=3rdparty/ippicv/downloads/linux-$ipp_hash &&
mkdir -p $ipp_dir &&
cp $ipp_file $ipp_dir

說明:還有一種方法就是將IPP編譯選項關閉,只需要在cmake命令中添加選項:

cmake -DWITH_IPP=OFF

  以上命令執行完成後,再重新執行之前的cmake命令,這樣就可以成功實現Makefile文件的生成。如果成功生成了文件,那麼請檢查創建過程中的輸出信息是否存在如下圖所示的一行內容:

在其中的“To be built”行中指出了最終會編譯的對應的模塊,如果成功檢測到了Java環境,那麼一定存在“java”這個選項,如上圖第3行所示。如果沒有找到,則說明Java運行環境沒有配置好,可以使用類似下面的命令重新配置一下:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64

導出相應的環境變量以後,再重新執行cmake命令。

6. 編譯源代碼

  接下來,需要根據生成的Makefile規則執行源代碼的編譯過程,對於現在的多核系統,可以執行以下命令來實現並行編譯:

make -j8

最終,會在“./bin/”目錄下生成包含Java接口的JAR文件“opencv-310.jar”,會在“./lib/”目錄下生成對應的動態鏈接庫文件“libopencv_java310.so”,這兩個文件就是使用Java開發基於OpenCV的計算機視覺應用時所用到的庫文件。

7. 安裝庫文件

  最後,需要將生成的庫文件安裝到/usr/local目錄下的對應子文件下,此過程需要管理員權限創建文件和文件夾,執行的命令如下:

sudo make install

Java開發相關的動態鏈接庫文件和jar包位於目錄:

/usr/local/share/OpenCV/java/

8. 測試

  接下來的工作就是在Eclipse上測試能否使用OpenCV庫來開發Java計算機視覺應用程序。

(1) 創建工程,依次選擇File -> New -> Java Project,如下圖所示,填寫工程名,然後點擊Finish完成。

(2)配置工程屬性。右鍵單擊工程,選擇“Properties”屬性菜單。選擇“Java Build Path”中的“Libraries”子選項卡,選擇“Add Library...”按鈕,在彈出的對話框中選擇“User Library”類型,然後單擊Next。

然後點擊“New”按鈕,在彈出的對話框中輸入用戶庫的名字,比如“opencv-3.1.0”。接下來,我們需要將這個庫關聯到對應的JAR文件。選擇“Edit”按鈕,在彈出的文件選擇對話框中,找到opencv-310.jar文件所在的路徑,並選擇該文件,確認。

接下來,展開JAR包,選中“Native Library Location”,然後點擊旁邊的“Edit”按鈕,選擇libopencv_java310.so所在的路徑,即/usr/local/share/OpenCV/java文件夾。這樣所有的屬性都配置完成了,點擊Finish即可。

(3) 編寫測試代碼。創建一個Sample類,然後輸入以下代碼。

 1 import org.opencv.core.*;
 2 import org.opencv.imgcodecs.Imgcodecs;
 3 
 4 public class Sample {
 5     static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}
 6     
 7     public static void main(String[] args){
 8         Mat m = Imgcodecs.imread("/home/tang/Pictures/baby.jpg");
 9         System.out.println(m);
10     }
11 }

該程序會從本地文件系統中讀取一張圖片,並把數據存儲到Mat類中,然後輸出這個圖片到信息。運行結果如下:

如果你看到了類似如上的信息,那麼恭喜你,你的OpenCV Java開發環境已經配置好了!

參考資料:

[1] http://www.linuxfromscratch.org/blfs/view/svn/general/opencv.html

[2] http://www.linuxidc.com/Linux/2016-05/131605.htm

[3] http://www.linuxidc.com/Linux/2016-05/131604.htm

OpenCV官方教程中文版(For Python) PDF http://www.linuxidc.com/Linux/2015-08/121400.htm

Ubuntu Linux下安裝OpenCV2.4.1所需包 http://www.linuxidc.com/Linux/2012-08/68184.htm

Ubuntu 12.04 安裝 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htm

CentOS下OpenCV無法讀取視頻文件 http://www.linuxidc.com/Linux/2011-07/39295.htm

Ubuntu 12.04下安裝OpenCV 2.4.5總結 http://www.linuxidc.com/Linux/2013-06/86704.htm

Ubuntu 10.04中安裝OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2010-09/28678.htm

基於QT和OpenCV的人臉識別系統 http://www.linuxidc.com/Linux/2011-11/47806.htm

[翻譯]Ubuntu 14.04, 13.10 下安裝 OpenCV 2.4.9 http://www.linuxidc.com/Linux/2014-12/110045.htm

OpenCV的詳細介紹:請點這裡
OpenCV的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved