본문 바로가기
Vision/기본적인 세팅

[몽돌] OpenCV 3.4.5 installation in Ubuntu 20.04 ( OpenCV 3.4.5를 Ubuntu 20.04에 설치해보기 )

by 몽돌리스트 2021. 8. 28.
반응형

참조 블로그 : https://ghostweb.tistory.com/823 

현재 구성입니다.

Ubuntu 20.04

OpenCV 3.4.5

 

Google 에서 "How to install OpenCV in Ubuntu 20.04" 라고 검색을 하시면

여러 웹사이트가 나오는 것을 확인할 수 있습니다.

 

방법은 크게 2가지고 나눠집니다. 

1. Installing OpenCV from the Ubuntu Repository.
2. Installing OpenCV from the Source 

 

우선 첫 번째 방법.

이것은 default Ubuntu 20.04 repositories 에서 바로 다운을 받는 것을 의미합니다.

$ sudo apt update
$ sudo apt install libopencv-dev python3-opencv

그런데 이렇게 해주고 나서, 버전을 확인해보면 

$ python3 -c "import cv2; print(cv2.__version__)"
$ 4.2.0

이것은 OpenCV version in the repositories is 4.2 

따라서 좋고, 간단한 방법이지만....

버전을 선택하는 것에는 한계가 있어보였습니다.

( $ nano /etc/apt/sources.list 라고 검색하시면 List가 뜰겁니다. 만약에 안쓰면 ) 

( Ubuntu 20.04 default repository list 라고 검색하시고 추가해주세요. ) 

 

( 혹시라도 이 과정에서 OpenCV 다른 버전 ( 3.x.x  ) 선택하는 법을 아시는 분은 꼭 알려주세요! 

 

아무튼 저는 위와 같은 방식으로 했기 때문에

현재 OpenCV 4.2 를 가지고 있습니다.

 

하지만 여러 코드들과의 호환성이 안맞기 때문에,

현재 설치된 것을 지우고, 직접 설치하는 방법으로 하겠습니다.

( Installing OpenCV from the Source ) 

 

How to delete OpenCV ? 

* 참조 블로그 :  https://ghostweb.tistory.com/823

$ sudo apt purge libopencv* python3-opencv
$ sudo apt autoremove -y

$ dpkg --list | grep opencv 
$ sudo apt purge libopencv* opencv-data python3-opencv
# 리스트에 나와있는것들 다 삭제 
$ sudo apt autoremove -y


#여기서 주의 사항 ! sudo apt autoremove 를 실행시키면, 불필요한 패키지를 삭제해 줍니다.
근데 가령 다른 관련 패키지도 영향을 받을 수 있다는 점을 잊지마세요.
* 예전에 우분투 그래픽 카드 문제 때문에... 다운 받은 패키지가 있었는데, 저 명령어 실행 후, 다시 문제가 발생되더라구요. 그 다음에는 완전해결했지만, 아직도 문제가 있습니다 :) 

 

$ sudo add-apt-repository 'deb http://security.ubuntu.com/ubuntu xenial-security main'
$  sudo apt -y update
$  sudo apt -y upgrade

첫 번째 명령어를 실행하게 되면 다음과 같은 에러가 발생할 수 있습니다.

1. Repository bla bla ~

--> The repository ~ ( 아래 3줄을 참고하시면 됩니다. )

 

이런 경우에는 

Software & Updates -> Other Software -> Unchecked 

Close -> Reload

 

2. Malformed ~ bla bla 

 

안에 들어가서 다음의 줄을 삭제해주면 됩니다. ( 띄어쓰기 오타 뭐 등등 에러가 생기면 다음과 같이 해주세요. )

 

 

아무튼 수정이 되면 ?! 다시 명령어를 실행합니다.

 

그 다음에는 이제 부가 패키지 설치 입니다. ( 블로그 참조 : https://ghostweb.tistory.com/823

#빌드, 소스 관련
$ sudo apt install -y build-essential cmake pkg-config git

# 이미지 관련
$ sudo apt install -y libjpeg-dev libtiff5-dev libpng-dev libjasper-dev

# 동영상 및 카메라 관련 
$ 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, qt ( qt Creator -> 정말 많이 씁니다. ), 최적화, Python 3 관련
$ sudo apt install -y libgtk-3-dev libatlas-base-dev libeigen3-dev gfortran
$ sudo apt install -y python3-dev python3-numpy libtbb2 libtbb-dev

# 이때 Qt 버전을 꼭 명심해야 합니다. 자세한 내용은 "OpenCV 3 qt version" 이라고 구글링하시면 됩니다.
$ sudo apt-get -y install qt5-default

 

이제는 OpenCV Source code를 다운받으면 됩니다.

여기에는 엄청 다양한 방법들이 있는데, 

 

wget 명령을 빼고는 안해봐서 잘 모르겠네요...

일단 저는 다운을 받아보겠습니다.

wget 은 Web Get의 약자로 네트워크 상에서 데이터를 다운로드할 수 있습니다.

 

여기서 

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

opencv_contrib-x.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

이 숫자들은 다운을 받고싶으신 버전으로 적으시면 됩니다. 

현재 설정은 OpenCV 3.4.5 입니다.

 

그 다음은 압축을 풀어주는 절차입니다.

$ unzip opencv-3.4.5.zip
$ unzip opencv_contrib-3.4.5.zip

소스 코드를 다운 받고, unzip도 해줬으니,

이제 대망의 소스 코드 빌드 입니다.

 

 $ cd opencv-3.4.5
 $ mkdir build &&cd build
$ 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 ../

# OPENCV_EXTRA_MODULES_PATH : opencv_contrib 모듈의 위치
# Tipppppp -> 우분투에서도 Cmake 프로그램을 사용할 수 있습니다. 
# Ubuntu software 에서 Cmake를 검색하시면 바로 설치가 가능합니다.
# 사용법은 검색을 하시면 되고, Windows랑 크게 다르지 않게 보였습니다. ( 시도는 안해봤지만.. ) 

 

생성에 성공하면 ?

 

여기서 파이썬의 정보가 보이는 것이 중요하다고 합니다.

그리고 완료 ! 메시지 확인하면 됩니다.

만약 에러가 뜬다면 /  대부분의 경우 

경로 설정의 문제

ON/OFF ( in cmake command ) 의 문제

Library package 의 문제

엄청 많습니다 사실... ( 구글의 힘을 빌리세요 ! ) 

-- 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 
$ make -j숫자 ( or make 만 ) 실행을 해줍니다.
-------- 시간 엄청 걸립니다. 0% -> 100% 될 때 까지

# 이제 설치를 해줍니다. 
$ sudo make install 

# 설치 후, 버전 확인
$ pkg-config --modversion opencv

 

 

다음은 예제 파일을 가지고 코드를 실행시키는 과정입니다.

Cmake 란?

간단히 말해서 "Build Tool"이라고 합니다.

이 도구가 없이 IDE를 통해 빌드하고 배포를 하게 되면?

그때부터 큰 재앙이 시작됩니다.

 

왜냐하면, 그 배포된 파일들은

각각 개발자 PC의 환경에 의해 Version이 결정되기 때문입니다.

 

따라서, 다양한 운영체재에서 코드를 사용하기 위해서

빌드라는 과정을 거치는데, 그것을 Cmake 라는 아이가 해줍니다.

 

Git에서 코드를 다운받으면,

CMakeLists.txt 가 포함된 것을 볼 수 있을 겁니다.

거기에는 코드 규칙에 맞게 주요 명령어와 변수들이 정리 되어있으며

때때로 예를 들어 OpenCV Version 정보 등이 들어가있는 것을 확인할 수 있습니다.

 

$ cmake ..
$ make

# 이렇게 하면 대부분 돌아가는데! 
# 혹시나 돌아가지 않는 경우가 생길 수 있습니다. 
# CMakeLists.txt 파일을 들여다 보면 그 해답을 얻을 수 있습니다.
# 또한 src ( source folder ) / build 등 폴더가 제대로 되어있는지를 확인하셔야 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글