본문으로 바로가기

opencv 4.4.0 install compile

category SERVER/LINUX 2021. 3. 2. 16:04
# 필요한 패키지이지만 필요 없는거 골라내기 어려움.
$ sudo yum install opencv opencv-devel opencv-python

$ sudo yum install epel-release git gcc gcc-c++ cmake3 qt5-qtbase-devel \
    python python-devel python-pip cmake python-devel python34-numpy \
    gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel \
    libjpeg-turbo-devel libtiff-devel libdc1394-devel tbb-devel numpy \
    eigen3-devel gstreamer-plugins-base-devel freeglut-devel mesa-libGL \
    mesa-libGL-devel boost boost-thread boost-devel libv4l-devel 
    
$ sudo yum install ant    

# 설치할 폴더를 하나 만듦
$ mkdir opencv
$ cd opencv

# 소스를 직접 compile 하기 때문에 소스 다운
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip
$ unzip opencv.zip

# 빌드할 폴더 생성
$ mkdir build
$ cd build

# cmake 가 없어서 설치
# 기존 cmake 삭제
$ sudo yum remove cmake 
$ mkdir cmake
$ cd cmake
$ wget https://github.com/Kitware/CMake/releases/download/v3.20.0-rc2/cmake-3.20.0-rc2-linux-x86_64.sh
$ ./cmake-3.20.0-rc2-linux-x86_64.sh

# cd build 할 위치 -> cmake 설치한 걸로 cmake
$ /home/ec2-user/cmake/cmake-3.20.0-rc2-linux-x86_64/bin/cmake -D BUILD_SHARED_LIBS=OFF ..

위와 같이 to be built 목록에  java가 들어가 있어야함. 

해당 부분이 없다면 java_home path 가 없어서 일수도 있고, ant 가 설치되지 않아서 일수도 있다. 

# 다시 compile 계속.
# 컴파일 실행 nproc 는 사용가능한 프로세스 수 앞에 time 은 make 걸린 시간.
$ time make -j$(nproc)

# 컴파일 결과물 설치
$ sudo make install

 

설치 후 테스트

# Hello.java

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.core.Scalar;
class SimpleSample {
  static{ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }
  public static void main(String[] args) {
    System.out.println("Welcome to OpenCV " + Core.VERSION);
    Mat m = new Mat(5, 10, CvType.CV_8UC1, new Scalar(0));
    System.out.println("OpenCV Mat: " + m);
    Mat mr1 = m.row(1);
    mr1.setTo(new Scalar(1));
    Mat mc5 = m.col(5);
    mc5.setTo(new Scalar(5));
    System.out.println("OpenCV Mat data:\n" + m.dump());
  }
}
# Hello.java 파일 컴파일 opencv build 만든 폴더 밑에 bin 에 opencv-440.jar 파일이 생성되어있다.
$ javac -classpath ./:./opencv/build/bin/opencv-440.jar Hello.java

# 컴파일한 내용 실행 
# 첫번째 인자 -Djava.library.path 는 build lib 위치
# 두번째 인자는 opencv-440.jar 파일 위치
$ java -Djava.library.path=./opencv/build/lib -cp ./:./opencv/build/bin/opencv-440.jar Hello
참고로 빌드한 폴더에 모든 내용이 들어가 있음.
opencv-440.jar 파일이나 libopencv_java440.so 파일등 구동에 필요한 파일들

 

'SERVER > LINUX' 카테고리의 다른 글

자바 나눔고딕 폰트 설치  (0) 2021.05.28
swap 증설 - 메모리 없을때 사용하는..  (0) 2021.03.02
비밀번호 없이 서버 접근  (0) 2021.03.02
linux jenkins install  (0) 2021.03.02
java yum install  (0) 2021.03.02