web-dev-qa-db-ja.com

opencv Java 'そのようなファイルまたはディレクトリはありません' 14.04から16.04へのアップグレード後

最近、14.04から16.04 LTSにアップグレードしました。私はこのマシンでJavaアプリケーションに取り組んでおり、opencvを使用して画像処理を行っています。ソースからopencvをコンパイルしました。 Eclipseで開発を行い、14.04でコンパイルした静的opencvライブラリにリンクします。私が言ったように、これは何ヶ月も働きました。 16.04へのアップグレード直後に、同じコードで初めて実行しようとすると、エラーが発生します。

Java.lang.UnsatisfiedLinkError /home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_Java300.so: libIlmImf.so.6: cannot open shared object file: No such file or directory

コードは次のとおりです。

public class NativeOpenCVLoader {

    static {

        System.load("/home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_Java300.so");
    }
}

もちろん、パスは正しく、ファイルはそこにあります。

ls /home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_Java300.so 
/home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_Java300.so

アップグレードで変更されたC++ライブラリがあるため、ファイルを読み取れなくなりましたか? opencvを再構築する必要がありますか?

libIlmImf.so.6を検索しても結果は得られません。

pwarner@pwarner-Studio-XPS-7100:~$ locate libIlmImf.so.6
pwarner@pwarner-Studio-XPS-7100:~$ 

しかし、私はlibIlmImf.soを持っているようです

pwarner@pwarner-Studio-XPS-7100:/usr/lib$ locate libIlmImf.so
/usr/lib/x86_64-linux-gnu/libIlmImf.so

これは、次へのソフトリンクです。

pwarner@pwarner-Studio-XPS-7100:/usr/lib/x86_64-linux-gnu$ ll libIlmImf.so*
lrwxrwxrwx 1 root root 23 Apr 17 20:42 libIlmImf.so -> libIlmImf-2_2.so.22.0.0

Zanna(およびSahibPrime)が以下に示すように、libIlmImf.so.6へのソフトリンクを作成しました。

pwarner@pwarner-Studio-XPS-7100:~$ locate libIlmImf.so.6
/usr/lib/x86_64-linux-gnu/libIlmImf.so.6

しかし、まだ運がありません-同じUnsatisfiedLinkErrorエラーが引き続き発生します。

4
excyberlabber

16.04へのアップグレード後、ソースからopencvを再構築するのに3時間費やしました。これで、プロジェクトのTomcatサーバーを再び実行できます。私はここで素晴らしい指示に従いました:

https://www.youtube.com/watch?v=hd8FFw0B0uA

そしてここ:

http://embedonix.com/articles/image-processing/installing-opencv-3-1-0-on-ubuntu/

メイク中に2つの問題が発生したため、上記のyoutubeリンクでđàmvăntàiからの指示を追加/微調整する必要がありました。 makeプロセスはlibvpx.so.1を見つけることができず、倒れました。私は自分のシステムでlibvpx.so.3を見つけ、チャンスをつかんで、そこからlibvpx.so.1へのソフトリンクを作成しました。インストールは幸せそうです。

2番目の問題は、libtiffに関連して、そして

http://answers.opencv.org/question/35642/libtiff_40-link-errors/

私は答えを見つけました:

add -D BUILD_TIFF=ON 

cmakeリストへ。その問題を修正しました。

新しい3.1.0バージョンをインストールする前に、古いopencv 3.0.0インストールをアンインストールするように注意しました。そして、私の経験に基づいて、メイク中に問題が発生した場合はビルドディレクトリの内容全体を削除し、問題を修正した後、もう一度cmakeを実行してからmakeする方が良いことを指摘できます。

ここに彼のyoutubeページからのđàmvăntàiからの明確で詳細な手順があります(それらを使用する場合は、彼のページに移動して「いいね」をクリックします-もう一度リンク: https:// www。 youtube.com/watch?v=hd8FFw0B0uA )。

*Update Repositories
Sudo apt update -y && Sudo apt upgrade

*Build tools
Sudo apt install build-essential cmake 

*Multimedia"
 Sudo apt install libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libgdal-dev zlib1g-dev libwebp-dev  libv4l-dev libxine2-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 libx264-dev yasm libxvidcore-dev libvorbis-dev libtheora-dev libswscale-dev libavformat-dev libavcodec-dev libdc1394-22-dev libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libfaac-dev ffmpeg

*Parallel frameworks
Sudo apt install libtbb2 libtbb2-dbg libtbb-dev libpomp2-dev

*Python Support
Sudo apt install python-dev python-tk python-numpy python3-dev python3-tk python3-numpy

*Oracle JDK
Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt update
Sudo apt install Oracle-Java8-installer
Sudo apt install ant  

*Extras
Sudo apt install libeigen3-dev doxygen libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev qt5-default libatlas-base-dev gfortran

cd opencv-3.1.0
mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-master/modules -D BUILD_EXAMPLES=ON -D WITH_OPENGL=ON ..
Sudo apt-get install ant default-jdk
make -j2
Sudo make install
Sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
Sudo ldconfig
cd ..
cd samples/
cmake .
Sudo make -j4 
3
excyberlabber