日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Ubuntu >内容正文

Ubuntu

opencv java ubuntu_Ubuntu 16.04配置OpenCV 3.1.0 for Java

發(fā)布時(shí)間:2024/7/23 Ubuntu 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv java ubuntu_Ubuntu 16.04配置OpenCV 3.1.0 for Java 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們都知道,OpenCV是基于C++的開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù),但是從2.4.4版本開(kāi)始提供了Java綁定,也就是說(shuō),我們也可以使用Java來(lái)開(kāi)發(fā)基于OpenCV的計(jì)算機(jī)視覺(jué)應(yīng)用。目前,最新的版本是3.1.0,在本文中將會(huì)介紹如何中Ubuntu 16.04上搭建OpenCV for Java的開(kāi)發(fā)環(huán)境,假設(shè)目前使用的是剛剛重裝的Linux操作系統(tǒng)。

1. 配置Java環(huán)境

在生成OpenCV的Makefile之前,cmake工具會(huì)檢查當(dāng)前系統(tǒng)中是否已經(jīng)配置好了Java環(huán)境,以決定是否會(huì)生成Java開(kāi)發(fā)相應(yīng)的包。因此,我們首先要確認(rèn)當(dāng)前系統(tǒng)已經(jīng)配置好了Java的開(kāi)發(fā)環(huán)境,這一部分內(nèi)容不屬于本文的重點(diǎn),請(qǐng)參看其他文章。

2. 安裝編譯依賴包

在Linux下編譯OpenCV需要依賴很多軟件包,這些包對(duì)于以后進(jìn)行計(jì)算機(jī)視覺(jué)應(yīng)用時(shí)也需要使用。在Ubuntu下,可以直接使用apt-get工具輕松完成,對(duì)應(yīng)的命令如下:

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源碼包

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

opencv-3.1.0

4. 創(chuàng)建編譯輸出文件夾

為了防止編譯的時(shí)候破壞opencv源碼包的目錄結(jié)構(gòu),一般都不推薦直接在源碼包的頂級(jí)目錄下執(zhí)行源碼的編譯工作,通常是在該目錄下面單獨(dú)創(chuàng)建一個(gè)build文件夾,所有的編譯中間文件和最終的目標(biāo)文件都輸出到這個(gè)文件中,過(guò)程如下:

cd opencv-3.1.0

mkdirbuild

cd build

5. 生成Makefile文件

首先請(qǐng)確認(rèn)當(dāng)前的工作目錄為build文件夾,然后需要利用cmake工具來(lái)生成編譯整個(gè)工程的Makefile文件,執(zhí)行的命令如下:

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

但是,很不幸的是很大可能性此過(guò)程并不能成功,而是會(huì)因?yàn)樵谙螺dippicv_linux_20151201.tgz第三方包的時(shí)候超時(shí)而生成Makefile失敗。解決辦法是從參考資料[1]提供的鏈接中下載此源碼包,然后將其拷貝到opencv源碼包的同級(jí)目錄下,然后執(zhí)行下面的命令:

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

說(shuō)明:還有一種方法就是將IPP編譯選項(xiàng)關(guān)閉,只需要在cmake命令中添加選項(xiàng):

cmake -DWITH_IPP=OFF

以上命令執(zhí)行完成后,再重新執(zhí)行之前的cmake命令,這樣就可以成功實(shí)現(xiàn)Makefile文件的生成。如果成功生成了文件,那么請(qǐng)檢查創(chuàng)建過(guò)程中的輸出信息是否存在如下圖所示的一行內(nèi)容:

在其中的“To be built”行中指出了最終會(huì)編譯的對(duì)應(yīng)的模塊,如果成功檢測(cè)到了Java環(huán)境,那么一定存在“java”這個(gè)選項(xiàng),如上圖第3行所示。如果沒(méi)有找到,則說(shuō)明Java運(yùn)行環(huán)境沒(méi)有配置好,可以使用類似下面的命令重新配置一下:

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

導(dǎo)出相應(yīng)的環(huán)境變量以后,再重新執(zhí)行cmake命令。

6. 編譯源代碼

接下來(lái),需要根據(jù)生成的Makefile規(guī)則執(zhí)行源代碼的編譯過(guò)程,對(duì)于現(xiàn)在的多核系統(tǒng),可以執(zhí)行以下命令來(lái)實(shí)現(xiàn)并行編譯:

make -j8

最終,會(huì)在“./bin/”目錄下生成包含Java接口的JAR文件“opencv-310.jar”,會(huì)在“./lib/”目錄下生成對(duì)應(yīng)的動(dòng)態(tài)鏈接庫(kù)文件“l(fā)ibopencv_java310.so”,這兩個(gè)文件就是使用Java開(kāi)發(fā)基于OpenCV的計(jì)算機(jī)視覺(jué)應(yīng)用時(shí)所用到的庫(kù)文件。

7. 安裝庫(kù)文件

最后,需要將生成的庫(kù)文件安裝到/usr/local目錄下的對(duì)應(yīng)子文件下,此過(guò)程需要管理員權(quán)限創(chuàng)建文件和文件夾,執(zhí)行的命令如下:

sudo make install

Java開(kāi)發(fā)相關(guān)的動(dòng)態(tài)鏈接庫(kù)文件和jar包位于目錄:

/usr/local/share/OpenCV/java/

8. 測(cè)試

接下來(lái)的工作就是在Eclipse上測(cè)試能否使用OpenCV庫(kù)來(lái)開(kāi)發(fā)Java計(jì)算機(jī)視覺(jué)應(yīng)用程序。

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

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

然后點(diǎn)擊“New”按鈕,在彈出的對(duì)話框中輸入用戶庫(kù)的名字,比如“opencv-3.1.0”。接下來(lái),我們需要將這個(gè)庫(kù)關(guān)聯(lián)到對(duì)應(yīng)的JAR文件。選擇“Edit”按鈕,在彈出的文件選擇對(duì)話框中,找到opencv-310.jar文件所在的路徑,并選擇該文件,確認(rèn)。

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

(3) 編寫測(cè)試代碼。創(chuàng)建一個(gè)Sample類,然后輸入以下代碼。

1 import org.opencv.core.*;2 importorg.opencv.imgcodecs.Imgcodecs;3

4 public classSample {5 static{System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}6

7 public static voidmain(String[] args){8 Mat m = Imgcodecs.imread("/home/tang/Pictures/baby.jpg");9 System.out.println(m);10 }11 }

該程序會(huì)從本地文件系統(tǒng)中讀取一張圖片,并把數(shù)據(jù)存儲(chǔ)到Mat類中,然后輸出這個(gè)圖片到信息。運(yùn)行結(jié)果如下:

如果你看到了類似如上的信息,那么恭喜你,你的OpenCV Java開(kāi)發(fā)環(huán)境已經(jīng)配置好了!

參考資料:

總結(jié)

以上是生活随笔為你收集整理的opencv java ubuntu_Ubuntu 16.04配置OpenCV 3.1.0 for Java的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。