본문 바로가기
프로그래밍/OpenCV

Unbuntu에 OpenCV 설치하기, 설치 버전 확인하기 (Ubuntu, Linux)

by GhostWeb 2020. 1. 7.
반응형


이번에는 Ubuntu(우분투)에 OpenCV를 설치해볼게요.

저는 버추얼머신 우분투 환경을 기반으로 설명하며 

Windows(윈도우) 환경은 다음에 따로 포스팅하도록 할게요.


- 테스트 환경

1. 버추얼 머신 (VM)

2. Ubuntu 18.04 LTS

3. OpenCV 3.4.5 기준



1. OpenCV 설치, 버전 확인, 삭제


1-1. OpenCV 설치 여부 확인

만약에 현재 시스템에 OpenCV 설치 여부 확인과 무슨 버전이 설치되어 있나

확인을 위해 아래의 명령어를 터미널에 입력하여 확인하세요.

 pkg-config --modversion opencv


현재 시스템에 OpenCV가 설치되어 있지 않으면 다음과 같이 

출력되니 아래 내용은 건너뛰시고 다음 단계인 <OpenCV 설치하기>로 이동하세요.



그리고 OpenCV가 설치되어 있다면 다음과 같이 현재 시스템에 설치된 버전이 출력돼요.

ex : 3.2.0




1-2. 현재 설치된 OpenCV 삭제

다른 버전으로 OpenCV를 설치하실 분들은 아래의 명령어를 입력하여 설치된 OpenCV를 제거하세요.

 

 sudo apt purge libopencv* python-opencv

 sudo apt autoremove


※ 유의 사항

1. <apt autoremove> 명령어의 경우 불필요한 패키지를 제거한다고 하는데, 노트북에 설치되었던 OpenCV를 제거했더니 CUDA, ROS 관련 패키지도 영향을 받았던 기억이 있으니 기존에 우분투에서 개발하다 OpenCV 제거하시는 분들은 삭제 후 다른 패키지(환경)가 정상적으로 작동하는지 확인해보세요. (패키지 의존성 주의!)

2. <apt autoremove> 명령어는 뒤에 패키지명을 명시해서도 쓸 수 있어요.





2. OpenCV 설치하기

그럼 이제부터 OpenCV 설치를 위해 환경 구축을 해보도록 할게요.



2-1. 시스템 최신 상태로 만들기

패키지 다운로드를 위한 저장소 추가하세요.

sudo add-apt-repository 'deb http://security.ubuntu.com/ubuntuxenial-security main'


OpenCV를 설치하기 현재 시스템의 패키지 들을 최신으로 업데이트, 업그레이드해주세요.

 sudo apt update

 sudo apt upgrade


또는


 sudo apt -y update

 sudo apt -y upgrade

※ -y 옵션은 터미널에서 명령어를 실행 중 진행 여부(y/n)를 물을 때 자동으로 y를 입력해요.




2-2. 부가 패키지 설치

OpenCV 소스 코드에 필요한 패키지 등을 설치해야 되는데 설치할게 많으니 주의하세요.


- 빌드, 소스 관련

sudo apt install -y build-essential cmake pkg-config git

※ git은 github로 OpenCV 코드를 다운로드할 때 필요해요.


- 이미지 관련

sudo apt install -y libjpeg-dev libtiff5-dev libpng-dev libjasper-dev

(Ubuntu18.04에서 설치할 때 libjasper-dev 문제가 있는데 찾아보니

 libjasper-dev은 Ubuntu 17.xx 미만에서 지원한다고 하네요?)


- 동영상, 카메라 관련

sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxvidcore-dev libx264-dev libxine2-dev libv4l-dev v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev





- GUI (gtk), qt, 최적화, Python3 관련

 sudo apt install -y libgtk-3-dev libatlas-base-dev libeigen3-dev gfortran

 sudo apt install -y python3-dev python3-numpy libtbb2 libtbb-dev

 sudo apt-get -y install qt5-default



2-3. OpenCV 소스 코드 다운로드

소스 코드 다운로드를 위해 터미널을 열어 소스 코드를 다운로드할 폴더를 만드세요.

 cd ~

 mkdir opencv &&cd opencv


OpenCV 소소는 다운로드를 할 수 있는 방법은 여러 가지가 있는데 편하신 방법을 선택하세요.


1. 홈페이지에서 소스 코드(압축 파일) 다운로드 (https://opencv.org/releases/)

2. 터미널에서 wget을 이용한 소스코드 다운로드 (다운로드할 버전 숫자 필요)

3. github를 통해 소스코드 다운로드


저는 wget 명령을 이용하여 터미널에서 설치를 진행할게요.

릴리즈 정보 등을 알고 싶으신 분은 위의 opencv 공식 홈페이지를 참고하세요.


- 설명

opencv-3.x.x : OpenCV 기본 소스 코드

opencv_contrib-3.x.x : 추가 기능 소스 코드 (Extra Module, 알고리즘, 테스트 중인 신기능 포함)


- 소스 코드 다운로드

 wget -O opencv-3.4.5.zip https://github.com/opencv/opencv/archive/3.4.5.zip

 wget -O opencv_contrib-3.4.5.zip https://github.com/opencv/opencv_contrib/archive/3.4.5.zip


※ 뒤의 3.4.5는 버전을 의미하는 것으로 설치하실 OpenCV의 버전을 써주세요.

(OpenCV Ver Ex : 2.x.x, 3.x.x, 4.x.x)


※ 위의 명령어를 터미널에 붙여 넣어 실행 시 404 error가 나온다면 파일명 뒤에 p 지웠다가 다시 p를 쳐서 실행해보세요. 

아니면 앞에 <-O opencv-3.4.5.zip>를 지우고 다운로드하면 되는데 opencv_contrib도 버전 숫자로 다운로드 되니 주의하세요. 

(링크라 뒤에 쓰레기 문자가 붙는 거 같네요.)


- 압축 해제

 unzip opencv-3.4.5.zip

 unzip opencv_contrib-3.4.5.zip



2-4. 소스 코드 빌드

소스 코드 빌드를 위한 폴더를 생성하고 Makefile을 생성할게요.


- 폴더 생성, 이동

 cd opencv-3.4.5

 mkdir build &&cd build


- CMake : Makefile 파일 생성

여기가 Makefile을 만드는 부분인데요.

설치 전에 환경 변수를 설정하는 부분이 있어서 주의해야 돼요.


※ 블로그에서 명령어를 복사 붙여넣기 하면 빈 줄이 생기기 때문에 터미널에 명령어를 넣기 전에 

메모장이나 gedit에 명령어를 붙여 넣은 다음 공백 줄을 제거한 다음에 터미널에 붙여 넣으세요.


▷ 설명

OPENCV_EXTRA_MODULES_PATH : opencv_contrib 모듈의 위치


▷ 명령어

cmake \

-D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D WITH_TBB=OFF \

-D WITH_IPP=OFF \

-D WITH_1394=OFF \

-D BUILD_WITH_DEBUG_INFO=OFF \

-D BUILD_DOCS=OFF \

-D INSTALL_C_EXAMPLES=ON \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D BUILD_EXAMPLES=OFF \

-D BUILD_TESTS=OFF \

-D BUILD_PERF_TESTS=OFF \

-D WITH_QT=ON \

-D WITH_GTK=OFF \

-D WITH_OPENGL=ON \

-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.5/modules \

-D WITH_V4L=ON \

-D WITH_FFMPEG=ON \

-D WITH_XINE=ON \

-D BUILD_NEW_PYTHON_SUPPORT=ON \

-D OPENCV_GENERATE_PKGCONFIG=ON ../


▷ 에러 발생 시

-- Configuring incomplete, errors occurred!

See also "/home/ubuntu/opencv/opencv-3.4.5/build/CMakeFiles/CMakeOutput.log".

See also "/home/ubuntu/opencv/opencv-3.4.5/build/CMakeFiles/CMakeError.log".


▷ 생성 성공 시

-- Configuring done

-- Generating done

-- Build files have been written to: /home/ubuntu/opencv/opencv-3.4.5/build


▷ 실행 결과

............. 출력 생략 .........................

-- OpenCL: YES (no extra features)

-- Include path: /home/ubuntu/opencv/opencv-3.4.5/3rdparty/include/opencl/1.2

-- Link libraries: Dynamic load

--

-- Python 3:

-- Interpreter: /usr/bin/python3 (ver 3.6.9)

-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.6m.so(ver 3.6.9)

-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.13.3)

-- install path: lib/python3.6/dist-packages/cv2/python-3.6

--

-- Python (for build): /usr/bin/python3

--

-- Java:

-- ant: NO

-- JNI: NO

-- Java wrappers: NO

-- Java tests: NO

--

-- Install to: /usr/local

-- -----------------------------------------------------------------

-- Configuring done

-- Generating done

-- Build files have been written to: /home/ubuntu/opencv/opencv-3.4.5/build


만약에 Python 2 또는 3 정보가 없을 경우 위의 cmake 명령어에 python 정보를 추가해줘야 돼요.

저는 python2 설치가 안 되어 있어서 안 나오는 듯하네요.


- Cmake에 Python 정보 추가

※ 추가할 Python 버전에 맞게 이름, 경로 변경

-D PYTHON2_INCLUDE_DIR=/usr/include/python2.x \

-D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.x/dist-packages/numpy/core/include/ \

-D PYTHON2_PACKAGES_PATH=/usr/lib/python2.x/dist-packages \

-D PYTHON2_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.x.so \


- 빌드

nproc를 입력하여 현재 시스템의 CPU 코어 개수를 확인합니다.

저는 가상 머신이라 1개 출력되네요.

nproc


그다음 컴파일을 위해 위에서 확인한 CPU 코어 개수를 붙여 다음과 같이 실행하세요.

1개인 경우는 그냥 make만 실행하세요.

 make -j숫자

 (또는 make)


그리고 만약에 <make -j>를 사용 시 에러가 발생한다면 그냥 make 만으로 실행해보세요.

make 하는데 시간이 좀 걸리니 잠시 쉬고 오세요.

(노트북 i3 : CPU 1 코어, SSD, 버추얼 머신 환경 30분 이상 소요)





이제 설치를 하면 되는데 make install 명령어는 root 권한이 필요해서 앞에 sudo를 써줘야 해요.

sudo make install



2-5. 설치 확인 및 테스트 코드

- 버전 확인

이제 설치가 완료했으니 OpenCV 버전 확인 명령어로 설치가 잘 되었나 확인해보세요.


 pkg-config --modversion opencv



- 이미지를  출력하기

이제 테스트를 위해 바로 실행 가능한 파이썬을 이용하여 이미지를 창에 띄워볼게요.

먼저 작업을 위한 폴더를 만들고 OpenCV 예제 사진으로 유명한 lena 사진을 현재 폴더에 복사할게요.


▷ 폴더 생성, 이미지 복사

 cd ~

 mkdir work_space_opencv &&cd work_space_opencv

 cp ~/opencv/opencv-3.4.5/samples/data/lena.jpg .



▷ 소스 코드 파일 생성,

다음으로는 소스 코드를 만들 건데 저는 gedit을 사용할 건데 vi, vim 등 사용하셔도 돼요.

gedit test.py


gedit, vim 등 편집 툴을 열었으면 아래의 소스코드를 붙여 넣고 저장하세요.

import cv2

image = cv2.imread("lena.jpg", cv2.IMREAD_ANYCOLOR)

cv2.imshow("lena", image)

cv2.waitKey(0)

cv2.destroyAllWindows()


▷ 실행

다시 터미널로 돌아와 아래와 같은 명령어를 실행하면 lena 이미지가 출력되는 것을 볼 수 있어요.

 python test.py

(또는 pyyhon3 test.py)



그럼 이상으로 포스팅을 마치며 오늘도 즐거운 개발하세요.


반응형