반응형



OpenCV 4.4.0과 opencv_contrib(extra modules)를 컴파일하여 Ubuntu 20.04에 설치하는 방법을 다룹니다.




1. 설치된 OpenCV 제거


2. 기존 설치된 패키지 업그레이드


3. OpenCV 컴파일 전 필요한 패키지 설치


4. OpenCV 설정과 컴파일 및 설치


5. OpenCV 설치 결과 확인

    5.1. C/C++

    5.2. Python




2020. 8. 25 최초작성



Python에서 OpenCV를 사용해야 하는 경우 다음 명령으로 설치할 수 있습니다. 

윈도우와 리눅스 동일한 방법으로 설치 가능합니다. 


pip3 install opencv-contrib-python


하지만 OpenCV의 nonfree 모듈을 사용해야 할 경우에는 본 포스팅대로 OpenCV를 빌드해야 합니다.  




1. 설치된 OpenCV 제거 

전에 설치했던 OpenCV가 있다면 새로 설치하는 OpenCV 4.4.0 버전이 제대로 동작하지 않기 때문에 제거해주어야 합니다.


아래처럼 보이면 OpenCV가 설치안되어 있는 상태입니다. 다음 단계로 넘어가도  됩니다.


webnautes@webnautes-pc:~$ pkg-config --modversion opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found




OpenCV 2.4대 버전이 설치되어 있는 경우에는 OpenCV  2.4 버전이 출력됩니다.


webnautes@webnautes-pc:~$ pkg-config --modversion opencv
2.4.9.1



다음 명령으로 OpenCV 라이브러리 설정 파일을 포함해서 기존에 설치된 OpenCV 패키지를 삭제하고 진행해야 합니다. 


$ sudo apt-get purge  libopencv* python-opencv
$ sudo apt-get autoremove




OpenCV 3 버전이 설치되어 있다면 다음처럼 보입니다.


webnautes@webnautes-pc:~$ pkg-config --modversion opencv
3.4.2



다음 명령으로 기존에 설치된 opencv 라이브러리를 삭제합니다. 파일을 확인해서 문제 없는 파일만 y를 눌러주면 삭제가 됩니다. 

아래 명령에서 rm 다음에 있는 -i를 제거하면 물어보지 않고 전부 삭제합니다. 


webnautes@webnautes-pc:~$  sudo find /usr/local/ -name "*opencv*" -exec rm -i {} \;




2. 기존 설치된 패키지 업그레이드

OpenCV 4.4.0를 설치해주기 전에 기존에 설치된 패키지들을 업그레이드 해주기 위한 작업입니다. 

오래 걸리더라도 해주는 것이 좋습니다. 



Ubuntu 저장소(repository)로부터 패키지 리스트를 업데이트합니다.

기존에 설치된 패키지들의 새로운 버전이 저장소에 있다면 리스트를 업데이트 하기위해 실행합니다. 


$ sudo apt-get update



기존에 설치된 패키지의 새로운 버전이 있으면 업그레이드를 진행합니다.


$ sudo apt-get upgrade




3. OpenCV 컴파일 전 필요한 패키지 설치


OpenCV를 컴파일하는데 사용하는 것들이 포함된 패키지들을 설치합니다. 언급한 패키지가 이미 설치된 경우도 있을 겁니다.



build-essential 패키지에는 C/C++ 컴파일러와 관련 라이브러리, make 같은 도구들이 포함되어 있습니다.

cmake는 컴파일 옵션이나 빌드된 라이브러리에 포함시킬 OpenCV 모듈 설정등을 위해 필요합니다. 


$ sudo apt-get install build-essential cmake




pkg-config는 프로그램 컴파일 및 링크시 필요한 라이브러리에 대한 정보를 메타파일(확장자가 .pc 인 파일)로부터 가져오는데 사용됩니다. 

터미널에서 특정 라이브러리를 사용한 소스코드를 컴파일시 필요한 헤더파일 및 라이브러리 위치 및 옵션을 추가하는데 도움이 됩니다.  


$ sudo apt-get install pkg-config




특정 포맷의 이미지 파일을 불러오거나 저장하기 위해 필요한 패키지들입니다.


$ sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev




특정 코덱의 비디오 파일을 읽어오거나 저장하기 위해 필요한 패키지들입니다.


$ sudo apt-get install ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev




Video4Linux 패키지는 리눅스에서 웹캠으로부터 실시간 비디오 캡처를 지원하기 위한 디바이스 드라이버와 API를 포함하고 있습니다. 


$ sudo apt-get install libv4l-dev v4l-utils




GStreamer는 비디오 스트리밍을 위한 라이브러리입니다. 

 

$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 




OpenCV에서는 highgui 모듈을 사용하여 자체적으로 윈도우 생성하여 이미지나 비디오를 보여줄 수 있습니다. 

윈도우 생성 등의 GUI를 위해 gtk 또는 qt를 선택해서 사용가능합니다.  여기서는 gtk2를 지정해주었습니다.


$ sudo apt-get install libgtk-3-dev



그외 선택 가능한 패키지는 다음과 같습니다.

libgtk2.0-dev

libqt4-dev

libqt5-dev



OpenGL 지원하기 위해 필요한 라이브러리입니다.

 

$ sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev  




OpenCV 최적화를 위해 사용되는 라이브러리들입니다.

 

$ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev




python3-dev 패키지는 OpenCV-Python 바인딩을 위해 필요한 패키지들입니다. 

Numpy는 매트릭스 연산등을 빠르게 처리할 수 있어서 OpenCV에서 사용됩니다. 


$ sudo apt-get install python3-dev python3-numpy


 pip3 install numpy



파이썬2를 위한 패키지는 설치에서 제외했습니다.


python2.7-dev

python-numpy




4. OpenCV 설정과 컴파일 및 설치


소스 코드를 저장할 임시 디렉토리를 생성하여 이동 후.. 진행합니다.


webnautes@webnautes-pc:~$ mkdir opencv
webnautes@webnautes-pc:~$ cd opencv
webnautes@webnautes-pc:~/opencv




OpenCV 4.4.0 소스코드를 다운로드 받아 압축을 풀어줍니다.

 

$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip
$ unzip opencv.zip




opencv_contrib(Extra modules) 소스코드를 다운로드 받아 압축을 풀어줍니다.

기본 모듈에서 빠진 모듈들과 SURF 등의 nonfree 모듈을 사용하기 위해 필요합니다. 

SIFT는 OpenCV  4.4.0부터 Extra 모듈에서 기본 모듈로 옮겨졌습니다. 


$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip
$ unzip opencv_contrib.zip




다음처럼 두 개의 디렉토리가 생성됩니다. 


webnautes@webnautes-pc:~/opencv$ ls -d */
opencv-4.4.0/  opencv_contrib-4.4.0/




opencv-4.4.0 디렉토리로 이동하여 build 디렉토리를 생성하고 build 디렉토리로 이동합니다.

컴파일은 build 디렉토리에서 이루어집니다.


webnautes@webnautes-pc:~/opencv$ cd opencv-4.4.0
webnautes@webnautes-pc:~/opencv/opencv-4.4.0$ mkdir build
webnautes@webnautes-pc:~/opencv/opencv-4.4.0$ cd build
webnautes@webnautes-pc:~/opencv/opencv-4.4.0/build




cmake를 사용하여 OpenCV 컴파일 설정을 해줍니다. 


OpenCV 4에서 pkg-config를 디폴트로 지원하지 않는 것으로 바뀌었습니다. 

그래서 OPENCV_GENERATE_PKGCONFIG=ON 옵션을 추가했습니다. 

( 참고 https://github.com/opencv/opencv/issues/13154


Non free 모듈을 사용하려면 다음 옵션을 추가했습니다. 

-D OPENCV_ENABLE_NONFREE=ON  


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_PACKAGE=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D WITH_QT=OFF -D WITH_GTK=ON -D WITH_OPENGL=ON -D BUILD_opencv_python3=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.4.0/modules -D WITH_V4L=ON  -D WITH_FFMPEG=ON -D WITH_XINE=ON -D OPENCV_ENABLE_NONFREE=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_SKIP_PYTHON_LOADER=ON -D OPENCV_GENERATE_PKGCONFIG=ON ../




다음과 같은 메시지가 보이면 정상적으로 된 것입니다.


-- Configuring done

-- Generating done

-- Build files have been written to: /home/webnautes/opencv/opencv-4.4.0/build




cmake를 사용하여 진행한 OpenCV 컴파일 관련 설정 결과입니다.


-- General configuration for OpenCV 4.4.0 =====================================

--   Version control:               unknown

-- 

--   Extra modules:

--     Location (extra):            /home/webnautes/opencv/opencv_contrib-4.4.0/modules

--     Version control (extra):     unknown

-- 

--   Platform:

--     Timestamp:                   2020-08-25T13:20:02Z

--     Host:                        Linux 5.4.0-40-generic x86_64

--     CMake:                       3.16.3

--     CMake generator:             Unix Makefiles

--     CMake build tool:            /usr/bin/make

--     Configuration:               RELEASE

-- 

--   CPU/HW features:

--     Baseline:                    SSE SSE2 SSE3

--       requested:                 SSE3

--     Dispatched code generation:  SSE4_1 SSE4_2 FP16 AVX AVX2 AVX512_SKX

--       requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX

--       SSE4_1 (15 files):         + SSSE3 SSE4_1

--       SSE4_2 (1 files):          + SSSE3 SSE4_1 POPCNT SSE4_2

--       FP16 (0 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX

--       AVX (4 files):             + SSSE3 SSE4_1 POPCNT SSE4_2 AVX

--       AVX2 (29 files):           + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2

--       AVX512_SKX (4 files):      + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKX

-- 

--   C/C++:

--     Built as dynamic libs?:      YES

--     C++ standard:                11

--     C++ Compiler:                /usr/bin/c++  (ver 8.4.0)

--     C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG

--     C++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG

--     C Compiler:                  /usr/bin/cc

--     C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUG

--     C flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG

--     Linker flags (Release):      -Wl,--gc-sections -Wl,--as-needed  

--     Linker flags (Debug):        -Wl,--gc-sections -Wl,--as-needed  

--     ccache:                      NO

--     Precompiled headers:         NO

--     Extra dependencies:          dl m pthread rt

--     3rdparty dependencies:

-- 

--   OpenCV modules:

--     To be built:                 alphamat aruco bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dnn_superres dpm face features2d flann freetype fuzzy gapi hfs highgui img_hash imgcodecs imgproc intensity_transform line_descriptor ml objdetect optflow phase_unwrapping photo plot python3 quality rapid reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking video videoio videostab xfeatures2d ximgproc xobjdetect xphoto

--     Disabled:                    world

--     Disabled by dependency:      -

--     Unavailable:                 cnn_3dobj cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv hdf java js julia matlab ovis python2 sfm ts viz

--     Applications:                apps

--     Documentation:               NO

--     Non-free algorithms:         YES

-- 

--   GUI: 

--     GTK+:                        YES (ver 3.24.20)

--       GThread :                  YES (ver 2.64.3)

--       GtkGlExt:                  NO

--     OpenGL support:              NO

--     VTK support:                 NO

-- 

--   Media I/O: 

--     ZLib:                        /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.11)

--     JPEG:                        /usr/lib/x86_64-linux-gnu/libjpeg.so (ver 80)

--     WEBP:                        build (ver encoder: 0x020f)

--     PNG:                         /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.6.37)

--     TIFF:                        /usr/lib/x86_64-linux-gnu/libtiff.so (ver 42 / 4.1.0)

--     JPEG 2000:                   build Jasper (ver 1.900.1)

--     OpenEXR:                     build (ver 2.3.0)

--     HDR:                         YES

--     SUNRASTER:                   YES

--     PXM:                         YES

--     PFM:                         YES

-- 

--   Video I/O:

--     FFMPEG:                      YES

--       avcodec:                   YES (58.54.100)

--       avformat:                  YES (58.29.100)

--       avutil:                    YES (56.31.100)

--       swscale:                   YES (5.5.100)

--       avresample:                NO

--     GStreamer:                   YES (1.16.2)

--     v4l/v4l2:                    YES (linux/videodev2.h)

--     Xine:                        YES (ver 1.2.9)

-- 

--   Parallel framework:            pthreads

-- 

--   Trace:                         YES (with Intel ITT)

-- 

--   Other third-party libraries:

--     Lapack:                      NO

--     Eigen:                       YES (ver 3.3.7)

--     Custom HAL:                  NO

--     Protobuf:                    build (3.5.1)

-- 

--   OpenCL:                        YES (no extra features)

--     Include path:                /home/webnautes/opencv/opencv-4.4.0/3rdparty/include/opencl/1.2

--     Link libraries:              Dynamic load

-- 

--   Python 3:

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

--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.8.so (ver 3.8.2)

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

--     install path:                lib/python3.8/dist-packages

-- 

--   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/webnautes/opencv/opencv-4.4.0/build




다음처럼 Python 3 라이브러리 항목이 보이지 않는 경우에는   


--   Python 3:

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

--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.8.so (ver 3.8.2)

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

--     install path:                lib/python3.8/dist-packages

-- 

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




붉은색 줄처럼 해당 경로들을 직접 적어줘야 합니다.   포스팅에서 사용한 옵션과 차이가 있을 수 있습니다. 


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_PACKAGE=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D WITH_QT=OFF -D WITH_GTK=ON -D WITH_OPENGL=ON -D BUILD_opencv_python3=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.4.0/modules -D WITH_V4L=ON  -D WITH_FFMPEG=ON -D WITH_XINE=ON -D OPENCV_ENABLE_NONFREE=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_SKIP_PYTHON_LOADER=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D PYTHON3_INCLUDE_DIR=/usr/include/python3.8 -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages -D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so ../




make 명령을 사용하여 컴파일을 시작합니다. 앞에 time을 붙여서 실행하면 컴파일 완료 후 걸린 시간을 알려줍니다.


webnautes@webnautes-pc:~/opencv/opencv-4.4.0/build$ time make -j$(nproc)



컴파일 성공하면 다음과 같은 메시지를 볼 수 있습니다.


[100%] Built target opencv_superres

Scanning dependencies of target opencv_python3

[100%] Building CXX object modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o

[100%] Linking CXX shared library ../../lib/libopencv_stereo.so

[100%] Built target opencv_stereo

[100%] Linking CXX shared module ../../lib/python3/cv2.cpython-38-x86_64-linux-gnu.so

[100%] Built target opencv_python3


real 7m19.737s

user 45m14.310s

sys 2m14.284s




이제 컴파일 결과물을 설치합니다.

 

webnautes@webnautes-pc:~/opencv/opencv-4.4.0/build$ sudo make install



/etc/ld.so.conf.d/ 디렉토리에 /usr/local/lib를 포함하는 설정파일이 있는지 확인합니다.


webnautes@webnautes-pc:~/opencv/opencv-4.4.0/build$ cat /etc/ld.so.conf.d/*
/usr/lib/x86_64-linux-gnu/libfakeroot

# libc default configuration

/usr/local/lib

# Multiarch support

/usr/local/lib/x86_64-linux-gnu

/lib/x86_64-linux-gnu

/usr/lib/x86_64-linux-gnu




/usr/local/lib이 출력되지 않았다면 다음 명령을 추가로 실행해야합니다.


webnautes@webnautes-pc:~/opencv/opencv-4.4.0/build$  sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf'




/usr/local/lib을 찾은 경우나 못찾아서 추가한 작업을 한 경우 모두 컴파일시 opencv  라이브러리를 찾을 수 있도록 다음 명령을 실행합니다.


webnautes@webnautes-pc:~/opencv/opencv-4.4.0/build$ sudo ldconfig




5. OpenCV 설치 결과 확인 

5.1. C/C++

OpenCV 3과 달리 opencv대신에 opencv4를 옵션으로 사용하여 pkg-config를 실행해야 컴파일할 수 있습니다. 

$ g++ -o facedetect /usr/local/share/opencv4/samples/cpp/facedetect.cpp $(pkg-config opencv4 --libs --cflags)



실행시켜보면 얼굴 인식이 됩니다. 

$ ./facedetect --cascade="/usr/local/share/opencv4/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="/usr/local/share/opencv4/haarcascades/haarcascade_eye_tree_eyeglasses.xml" --scale=1.3



다음 포스팅도 참고하세요. 



Visual Studio Code에서 CMake 사용하여 OpenCV 코드 컴파일 하기

https://webnautes.tistory.com/933 





5.2. Python

1. python 3x에서 opencv 라이브러리를 사용가능한지는 다음처럼 확인합니다.

OpenCV 버전으로 4.4.0이 출력되어야 합니다.

webnautes@webnautes-pc:~/opencv/opencv-4.4.0/build$ python3
Python 3.8.2 (default, Jul 16 2020, 14:00:26) 

[GCC 9.3.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import cv2

>>> cv2.__version__

'4.4.0'

>>> quit()



2. 예제 코드를 실행해봅니다.


$  python3 /usr/local/share/opencv4/samples/python/facedetect.py --cascade "/usr/local/share/opencv4/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade "/usr/local/share/opencv4/haarcascades/haarcascade_eye_tree_eyeglasses.xml" /dev/video0



카메라 영상에 얼굴이 검출된 결과를 얻을 수 있습니다.



3. 이제 필요 없어진 컴파일에 사용했던 opencv 소스코드 디렉토리를 삭제합니다.


webnautes@webnautes-pc:~/opencv/opencv-4.4.0/build$ cd
webnautes@webnautes-pc:~$ rm -rf opencv




반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요.

  1. 학생 2020.09.10 13:36

    안녕하세요 게시글 보고 우분투 20.04 버전에 opencv 4.4.0 버전을 설치하고 있는 학생입니다..설치를 하다가
    wget -o opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip 까진 되는데 이후에
    unzip opencv.zip 을 실행하면
    Archive: opencv.zip
    End-of-central-directory signature not found. Either this file is not
    a zipfile, or it constitutes one disk of a multi-part archive. In the
    latter case the central directory and zipfile comment will be found on
    the last disk(s) of this archive.
    unzip: cannot find zipfile directory in one of opencv.zip or
    opencv.zip.zip, and cannot find opencv.zip.ZIP, period. 라고 오류가 나옵니다.ㅠㅠ
    해결방법이 있을까요??

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.09.10 20:10 신고

      다운로드가 덜 된듯합니다. 다시 다운로드 해보세요.

      그래도 똑같으면 OpenCV 깃허브에서 직접 다운로드 받으세요

      https://github.com/opencv/opencv

      https://github.com/opencv/opencv_contrib

  2. ss 2020.09.24 09:54

    안녕하세요 똑같이 설치를 했는데 이상한 오류가 생깁니다.
    Gtk-ERROR **: 01:45:00.736: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
    Trace/breakpoint trap
    무슨 오류인지 도대체 잘 모르겠습니다

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.09.24 20:39 신고

      gtk2와 gtk3이 같이 설치된 상태에서 OpenCV를 빌드해서 생긴 문제 같습니다.

      libgtk2.0-dev를 삭제해보고 개선되지 않으면 OpenCV를 다시 빌드해보세요.

    • Favicon of https://deepflowest.tistory.com BlogIcon Orange57 2020.11.17 09:10 신고

      안녕하세요 저도 같은 오류가 나는데, 혹시 해결 하셨나요?

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.11.17 09:16 신고

      gtk3와 gtk2가 같이 설치해서 발생한거 같습니다. gtk3를 지우고 gtk2만 설치된상태에서 cmake 실행 결과의 GUI 항목에 gtk+ yes가 보이나 보세요.

      gtk2와 gtk3패키지 이름은 포스트에 나와있습니다.

  3. kdkd 2020.09.24 14:47

    제대로 설치했는데 pkg-config --modversion opencv 이걸로 확인하면 Package opencv was not found in the pkg-config search path.
    Perhaps you should add the directory containing `opencv.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'opencv' found
    이렇게 오류가 뜹니다. 왜 그런건지 아시나요?

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.09.24 20:40 신고

      OpenCV 4.x에선 pkg-config 명령 실행시 opencv 대신에 opencv4를 사용해야합니다.

      pkg-config --modversion opencv4

  4. liberty67 2020.10.23 23:14

    g++ -o facedetect /usr/local/share/opencv4/samples/cpp/facedetect.cpp $(pkg-config opencv4 --libs --cflags) 명령어 실행 시

    /usr/bin/ld : cannot find -lopencv_gapi
    /usr/bin/ld: cannot find -lopencv_gapi
    ....

    등의 오류와 함께 컴파일이 되지 않는데 해결방법이 있을까요?????

+ Recent posts