国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux環(huán)境下編譯并使用java_opencv

這篇具有很好參考價值的文章主要介紹了Linux環(huán)境下編譯并使用java_opencv。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

java_opencv windows環(huán)境下很好部署使用,官網(wǎng)直接有一鍵安裝版,所以這里就不提了,主要說說這個linux環(huán)境下,哎,一堆坑,踩了好幾天.

1.環(huán)境準備

1.1 cmake

  • 安裝編譯環(huán)境
yum -y install gcc gcc-c++ openssl openssl-devel tar
  • 下載源碼
    版本自己可以去官網(wǎng)選擇,我這里是覺得沒必要整那么高的版本
wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2.tar.gz```
tar -zxf cmake-3.16.2.tar.gz
  • 編譯安裝
./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && make -j8
make install

這一步巨慢,不加 -j8巨巨慢,自己的機器有幾核就-j幾核心,量力而為;

  • 安裝檢查
    cmake --version

1.2 ant

調(diào)jni的SDK的jar包是通過ant編譯,所以,需要裝這個東西
yum -y install ant
裝完以后,你會發(fā)現(xiàn)他會給你裝個jdk1.8,建議卸載掉

1.3 JAVA_HOME

這玩意兒一定要配,不然不會生成所需的jar包,而且必須是手動配置,即手寫入profile文件里的,
所以建議,下載壓縮包,手動配置的方式安裝jdk
安裝之前先卸載掉已經(jīng)安裝的jdk版本,如果已經(jīng)有了自己手動配置的java_home,這一步可以跳過;
rpm -qa | grep jdk
java opencv linux,java,java,linux,opencv
我這里只裝jdk11,執(zhí)行命令卸載掉
rpm -e --nodeps java-11-openjdk-headless-11.0.15.0.9
rpm -e --nodeps java-11-openjdk-devel-11.0.15.0.9
rpm -e --nodeps java-11-openjdk-11.0.15.0.9
剩下的就是標準的linux jdk安裝步驟了,可以去網(wǎng)上找一篇對著安裝.

2.opencv安裝

  • 下載基本包與拓展包
    wget -O opencv-4.5.5.tar.gz https://github.com/opencv/opencv/archive/refs/tags/4.5.5.tar.gz
    wget -O opencv_contrib-4.5.5.tar.gz https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.5.tar.gz

  • 解壓
    tar -zxvf opencv-4.5.5.tar.gz
    tar -zxvf opencv_contrib-4.5.5.tar.gz

  • 構(gòu)建
    cd ./opencv-4.5.5
    mkdir build && cd build

#開始構(gòu)建
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=/home/admin/opencv_contrib-4.5.5/modules -D ENABLE_CXX11=ON -D WITH_1394=OFF -D BUILD_opencv_xfeatures2d=OFF -D BUILD_SHARED_LIBS=OFF -D BUILD_TESTS=OFF ..
cmake的參數(shù)說明:
-D CMAKE_BUILD_TYPE=RELEASE編譯發(fā)布版本
-D CMAKE_INSTALL_PREFIX=/usr/local編譯后的安裝主目錄
-D OPENCV_GENERATE_PKGCONFIG=ON這個是為了C++引用的,可以忽略
-D OPENCV_EXTRA_MODULES_PATH=/home/admin/opencv_contrib-4.5.5/modules這個就是附加模塊路徑,這個地址需要自定義
-D ENABLE_CXX11=ONC++版本支持
-D WITH_1394=OFF這個好像要加些依賴,關(guān)掉。不關(guān)也沒關(guān)系
-D BUILD_opencv_xfeatures2d=OFF這里要重點說一下,在附件模塊opencv_contrib-4.5.5/modules里面有很多目錄,如果有些你不想要就關(guān)掉。比如xfeatures2d這個就導(dǎo)致我編譯不過,我又不用,直接關(guān)掉。
-D BUILD_SHARED_LIBS=OFF這個重點說,就是讓依賴庫變成一個SO而不是很多SO。這個SO就是java的jni要用的。
-D BUILD_TESTS=OFF關(guān)掉測試,提高編譯效率,減少時間。編譯太長時間了。。。。。
… 后面兩個點不要忘記了
注意要關(guān)注日志(我沒截圖,拿了網(wǎng)上的圖)
java opencv linux,java,java,linux,opencv

這里是你關(guān)掉的模塊
java opencv linux,java,java,linux,opencv

這里是你排除的模塊
java opencv linux,java,java,linux,opencv

這倆一定要注意,必須要有的,如果沒有,就是ant沒有安裝成功,或者java_home不對,如果沒有就不會生成所需的依賴包

  • 編譯
    make -j8 #這一步巨慢,不加多核編譯的話,可能需要幾十分鐘
    make install
  • 完成
    在/usr/local/share/java/opencv4目錄下會有我們所需的jar包與so庫文件,如果沒有,那就刪了build文件,重新構(gòu)建編譯吧

3.項目使用

  • 為了同時兼容windows與linux,需要引入依賴
<dependency>
   <groupId>org.openpnp</groupId>
   <artifactId>opencv</artifactId>
   <version>4.5.5-1</version>
</dependency>
  • 初始化依賴
@PostConstruct
public void init() {
    try {
		//獲取當前系統(tǒng)
        String osName = System.getProperties().getProperty("os.name");
        if ("Linux".equalsIgnoreCase(osName)) {
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        } else {
            nu.pattern.OpenCV.loadShared();
	      System.loadLibrary(org.opencv.core.Core.NATIVE_LIBRARY_NAME);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

也可以在靜態(tài)代碼塊里初始化
啟動下吧,不報錯就是加載成功了!
如果程序說找不到包的話,可以把/usr/local/share/java/opencv4目錄下的文件復(fù)制到/usr/lib/下
最后附上DockerFile文件,因為我是docker部署的

FROM centos
WORKDIR /home/admin

#下載jdk11
RUN wget https://download.oracle.com/otn/java/jdk/11.0.17+10/8bd089539add49a9b99e2f27eb0c4329/jdk-11.0.17_linux-x64_bin.tar.gz?AuthParam=1667384513_084b3d888e18c6459482084546b57037
#重命名jdk名稱
RUN rename jdk-11.0.17_linux-x64_bin.tar.gz?AuthParam=1667384513_084b3d888e18c6459482084546b57037 jdk-11.0.17_linux-x64_bin.tar.gz jdk-11.0.17_linux-x64_bin.tar.gz?AuthParam=1667384513_084b3d888e18c6459482084546b57037

#安裝必要的
RUN yum -y install gcc gcc-c++ openssl openssl-devel tar
RUN wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2.tar.gz
RUN tar -zxf cmake-3.16.2.tar.gz
WORKDIR cmake-3.16.2
RUN ./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && make -j8
RUN make install
WORKDIR /home/admin

##安裝ant
RUN yum -y install ant
#
##卸載當前系統(tǒng)的jdk
RUN rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.352.b08
RUN rpm -e --nodeps java-11-openjdk-11.0.15.0.9
RUN rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.352.b08
RUN rpm -e --nodeps java-1.8.0-openjdk-1.8.0.352.b08
RUN rpm -e --nodeps java-11-openjdk-headless-11.0.15.0.9
RUN rpm -e --nodeps java-11-openjdk-devel-11.0.15.0.9
##解壓
RUN tar -zxvf jdk-11.0.17_linux-x64_bin.tar.gz
##配置java_home
ENV JAVA_HOME /home/admin/jdk-11.0.17
RUN echo -e "export JAVA_HOME=/home/admin/jdk-11.0.17\n" >> /etc/profile
RUN echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
RUN echo -e "\n" >> /etc/profile
RUN echo "export CLASSPATH=$JAVA_HOME/lib" >> /etc/profile

RUN echo "source /etc/profile" >> ~/.bashrc
#source
RUN source /etc/profile
#設(shè)置javahome,以防萬一
RUN export JAVA_HOME=/home/admin/jdk-11.0.17

#下載openvc包
RUN wget -O opencv-4.5.5.tar.gz https://github.com/opencv/opencv/archive/refs/tags/4.5.5.tar.gz
RUN wget -O opencv_contrib-4.5.5.tar.gz  https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.5.tar.gz
#解壓
RUN tar -zxvf opencv-4.5.5.tar.gz
RUN tar -zxvf opencv_contrib-4.5.5.tar.gz
#切到opencv下
WORKDIR ./opencv-4.5.5
#創(chuàng)建build
RUN mkdir build
WORKDIR build
#開始構(gòu)建
RUN cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=/home/admin/opencv_contrib-4.5.5/modules -D ENABLE_CXX11=ON -D WITH_1394=OFF -D BUILD_opencv_xfeatures2d=OFF -D BUILD_SHARED_LIBS=OFF -D BUILD_TESTS=OFF ..
#開始編譯
RUN make -j8
RUN make install

#刪除無用的包
WORKDIR /home/admin
RUN rm -rf cmake-3.16.2.tar.gz
RUN rm -rf jdk-11.0.17_linux-x64_bin.tar.gz
RUN rm -rf opencv-4.5.5.tar.gz
RUN rm -rf opencv_contrib-4.5.5.tar.gz
ENV JAVA_HOME /home/admin/jdk-11.0.17

WORKDIR /home/admin

RUN cp /usr/local/share/java/opencv4/* /usr/lib/
RUN echo "source /etc/profile" >> /etc/bashrc
WORKDIR /home/admin

參考文檔

官方安裝教程
官方j(luò)ava_opencv環(huán)境配置
java在linux下編譯使用opencv
CentOS 7 源碼安裝 CMake 3.16.2 最新穩(wěn)定版文章來源地址http://www.zghlxwxcb.cn/news/detail-649062.html

到了這里,關(guān)于Linux環(huán)境下編譯并使用java_opencv的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 在linux環(huán)境下編譯運行OpenCV程序的兩種方法

    在linux環(huán)境下編譯運行OpenCV程序的兩種方法

    原來以為在Ubuntu下安裝好了OpenCV之后,自己寫個簡單的程序應(yīng)該很容易吧,但是呢,就是為了編譯一個簡單的顯示圖片的程序我都快被弄崩潰了。 在谷歌和上StackOverFlow查看相關(guān)問題解答之后,我下面就介紹Command Line和CMake兩種方式。 首先我先粘上我測試的代碼吧,文件名為

    2024年02月16日
    瀏覽(26)
  • 【Spark實戰(zhàn)】Windows環(huán)境下編譯Spark2 Linux上部署Spark On Yarn

    【Spark實戰(zhàn)】Windows環(huán)境下編譯Spark2 Linux上部署Spark On Yarn

    環(huán)境準備 git-2.14.1 maven-3.9.2 jdk-1.8 scala-2.11.8 zinc-0.3.15 主下載地址 spark-2.3.4 github官方地址 編譯準備 maven遠程倉庫使用的是阿里云的 解壓源碼包 spark-2.3.4.zip ,修改根模塊的pom文件。主要目的是為了變更hadoop的版本號,默認是 2.6.5 。 修改 spark-2.3.4devmake-distribution.sh 文件 主要是

    2024年02月13日
    瀏覽(21)
  • Windows環(huán)境下編譯OpenOCD

    Windows環(huán)境下編譯OpenOCD

    1、安裝git for windows?sdk 下載地址:Git for Windows ?ps:如果安裝失敗,需要將安裝目錄刪除后才能重新安裝。 2、打開 Git SDK 64-bit,安裝編譯所需環(huán)境 pacman -S mingw-w64-x86_64-toolchain git make libtool pkg-config autoconf automake texinfo wget 此處直接按回車 ?此處按Y,按回車 ?顯示安裝成功,如

    2024年02月13日
    瀏覽(23)
  • WINDOWS 環(huán)境下編譯 OLLVM 替換到 NDK 環(huán)境

    WINDOWS 環(huán)境下編譯 OLLVM 替換到 NDK 環(huán)境

    這里使用的是 AGP 7.2.2 、 NDK 25.2.9519653 、 llvm 14.0.7 、 cmake 3.22.1 、 python39 git 用來下載源碼 python 搞到這一步環(huán)境變量里應(yīng)該已經(jīng)有python了吧 NDK AGP 的 7.2.2 版本默認使用的 NDK 版本為 21.4.7075529 ,對應(yīng)的 LLVM 為 9.0.9 。 需要根據(jù)實際情況選擇 NDK 對應(yīng)的 LLVM 版本,編譯 OLLVM,LLV

    2024年02月16日
    瀏覽(26)
  • 如何在windows環(huán)境下編譯T

    如何在windows環(huán)境下編譯T

    一, 安裝MYSYS2 ?1. 去https://www.msys2.org下載?msys2-x86_64-xxxxx.exe; 2. 按照msys2.org主頁提示的步驟安裝; 3.安裝完默認起來的是 UCRT的, 可以根據(jù)環(huán)境的需要選擇, 我選擇的 MSYS2 MINGW64 4. 搭建編譯環(huán)境, 安裝對應(yīng)的軟件包 ?4.1 更新包數(shù)據(jù)和核心數(shù)據(jù)包 ? ? pacman -Syu 4.2 安裝工具鏈

    2024年02月08日
    瀏覽(24)
  • Linux 環(huán)境下使用 Docker 部署 Java 項目教程

    1. 安裝 Docker:首先在 Linux 系統(tǒng)上安裝 Docker,可以參考 Docker 官方文檔進行安裝。 2. 構(gòu)建 Docker 鏡像:將 Java 項目打包成 Jar 文件,并編寫 Dockerfile 文件,使用 Dockerfile 文件構(gòu)建 Docker 鏡像。 dockerfile 文件內(nèi)容如下: ???FROM openjdk:8-jdk-alpine ???VOLUME /tmp ???ADD your-project-name

    2024年02月09日
    瀏覽(58)
  • Linux系統(tǒng)部署OpenCV環(huán)境(java項目使用方式)

    Linux系統(tǒng)部署OpenCV環(huán)境(java項目使用方式)

    Opencv4.5.2的zip包(OpenCV官網(wǎng)下載) 1.?上傳opencv4.5.2的zip包到home目錄(不一定home目錄,根據(jù)運維情況決定) 2. 運行解壓縮命令 3.?進入opencv-452文件夾,創(chuàng)建文件夾 4.?進入文件夾中 5.?如果沒有安裝cmake,使用下列命令安裝,并且查看版本信息。 需要高一點的版本,我安裝的是

    2024年02月06日
    瀏覽(26)
  • 在CentOS環(huán)境下編譯GreatSQL RPM包

    在CentOS環(huán)境下編譯GreatSQL RPM包

    本文介紹如何在CentOS環(huán)境下編譯GreatSQL RPM包。 運行環(huán)境是docker中的CentOS 8 x86_64: 開始編譯之前,需要先配置好yum源,方便安裝一些輔助工具。 在這里采用阿里云的yum源: 安裝 rmp-build 包,它會附帶安裝其他必要的相關(guān)依賴包: 創(chuàng)建相應(yīng)的目錄 戳此鏈接 https://gitee.com/GreatS

    2024年02月03日
    瀏覽(16)
  • uniapp 小程序不同環(huán)境下編譯的變量配置

    官網(wǎng)地址:概述 | uni-app官網(wǎng) uni-app 通過在 package.json 文件中增加 uni-app 擴展節(jié)點,實現(xiàn)自定義條件編譯,例如要發(fā)行最新的小程序,可能需要手動修改一些生產(chǎn)與開發(fā)環(huán)境的不同ip地址等,通過此配置條件,實現(xiàn)自動編譯 ?在json文件中新增一項? uni-app 這里將環(huán)境變量設(shè)置為兩個

    2024年02月13日
    瀏覽(16)
  • qnx環(huán)境下編譯ffmpeg及解碼mp4實踐

    1.ffmpeg是一套可以用來進行音視頻處理的工具和編解碼庫; 2.采用LGPL或GPL許可證(不能修改源碼,只能使用so庫,如果要修改源碼,必須發(fā)布工程代碼); 3.ffmpeg對與硬件平臺、GPU做了很多優(yōu)化,效率非常高; 4.包含庫: (1)avcodec 編解碼(最重要的庫) (2)avformat 封裝格式

    2023年04月20日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包