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

Ubuntu 16.04.3 LTS가 설치된 컴퓨터에서 진행했습니다.



1. OpenCV 2.4 버전 제거


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


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


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


5. OpenCV 설치 결과 확인

   5.1. C/C++

   5.2. Python


최종 업데이트 - 2017. 12. 27




Ubuntu 18.04에서 OpenCV 설치를 진행하는 포스팅이  추가되었습니다.


Ubuntu 18.04에 opencv_contrib 포함하여 OpenCV 3.4.1 설치
http://webnautes.tistory.com/1186





1. OpenCV 2.4 버전 제거

OpenCV 2.4대 버전이 설치되어 있으면 새로 설치하는 OpenCV 3.4 버전이 제대로 동작하지 않기 때문에 제거해주어야 합니다.




아래처럼 보이면 OpenCV 2.4대 버전이 설치안되어 있는 상태입니다.

다음 단계로 넘어가도  됩니다.


webnautes@webnautes-note:~$ 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-note:~$ pkg-config --modversion opencv
2.4.9.1




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


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




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

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

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



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 libjasper-dev libpng12-dev




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


$ sudo apt-get install 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를 선택해서 사용가능합니다.  

여기서는 qt4를 지정해주었습니다. QImage와 Mat 간의 변환에는 영향을 주지 않습니다.


$ sudo apt-get install libqt4-dev



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

libgtk2.0-dev
libgtk-3-dev

libqt5-dev




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

$ sudo apt-get install mesa-utils libgl1-mesa-dri libqt4-opengl-dev




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

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




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

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


$ sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy




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


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


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




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

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




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

SIFT, SURF 등을 사용하기 위해 필요합니다.


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




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


webnautes@webnautes-note:~/opencv$ ls -d */
opencv-3.4.0/  opencv_contrib-3.4.0/




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

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


webnautes@webnautes-note:~/opencv$ cd opencv-3.4.0/
webnautes@webnautes-note:~/opencv/opencv-3.4.0$ mkdir build
webnautes@webnautes-note:~/opencv/opencv-3.4.0$ cd build
webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$




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


$ 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_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \
-D WITH_V4L=ON  \
-D WITH_FFMPEG=ON \
-D WITH_XINE=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
../




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


-- Configuring done
-- Generating done
-- Build files have been written to: /home/webnautes/opencv/opencv-3.4.0/build




cmake 실행 결과입니다.


-- General configuration for OpenCV 3.4.0 =====================================

--   Version control:               unknown

--

--   Extra modules:

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

--     Version control (extra):     unknown

--

--   Platform:

--     Timestamp:                   2017-12-27T06:32:42Z

--     Host:                        Linux 4.10.0-42-generic x86_64

--     CMake:                       3.5.1

--     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

--       requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2

--       SSE4_1 (3 files):          + SSSE3 SSE4_1

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

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

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

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

--

--   C/C++:

--     Built as dynamic libs?:      YES

--     C++ Compiler:                /usr/bin/c++  (ver 5.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 -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -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 -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -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=non-virtual-dtor -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-narrowing -Wno-comment -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=non-virtual-dtor -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-narrowing -Wno-comment -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):

--     Linker flags (Debug):

--     ccache:                      NO

--     Precompiled headers:         YES

--     Extra dependencies:          dl m pthread rt /usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libGL.so

--     3rdparty dependencies:

--

--   OpenCV modules:

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

--     Disabled:                    js world

--     Disabled by dependency:      -

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

--     Applications:                apps

--     Documentation:               NO

--     Non-free algorithms:         NO

--

--   GUI:

--     QT:                          YES (ver 4.8.7 EDITION = OpenSource)

--       QT OpenGL support:         YES (/usr/lib/x86_64-linux-gnu/libQtOpenGL.so)

--     GTK+:                        NO

--     OpenGL support:              YES (/usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libGL.so)

--     VTK support:                 NO

--

--   Media I/O:

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

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

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

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

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

--     JPEG 2000:                   /usr/lib/x86_64-linux-gnu/libjasper.so (ver 1.900.1)

--     OpenEXR:                     build (ver 1.7.1)

--

--   Video I/O:

--     FFMPEG:                      YES

--       avcodec:                   YES (ver 56.60.100)

--       avformat:                  YES (ver 56.40.101)

--       avutil:                    YES (ver 54.31.100)

--       swscale:                   YES (ver 3.1.101)

--       avresample:                NO

--     GStreamer:                   

--       base:                      YES (ver 1.8.3)

--       video:                     YES (ver 1.8.3)

--       app:                       YES (ver 1.8.3)

--       riff:                      YES (ver 1.8.3)

--       pbutils:                   YES (ver 1.8.3)

--     libv4l/libv4l2:              NO

--     v4l/v4l2:                    linux/videodev2.h

--     Xine:                        YES (ver 1.2.6)

--     gPhoto2:                     NO

--

--   Parallel framework:            pthreads

--

--   Trace:                         YES (with Intel ITT)

--

--   Other third-party libraries:

--     Lapack:                      NO

--     Eigen:                       YES (ver 3.2.92)

--     Custom HAL:                  NO

--

--   NVIDIA CUDA:                   NO

--

--   OpenCL:                        YES (no extra features)

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

--     Link libraries:              Dynamic load

--

--   Python 2:

--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.12)

--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)

--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)

--     packages path:               lib/python2.7/dist-packages

--

--   Python 3:

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

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

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

--     packages path:               lib/python3.5/dist-packages

--

--   Python (for build):            /usr/bin/python2.7

--

--   Java:

--     ant:                         NO

--     JNI:                         NO

--     Java wrappers:               NO

--     Java tests:                  NO

--

--   Matlab:                        NO

--

--   Install to:                    /usr/local

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

--

-- Configuring done

-- Generating done

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




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


--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.12)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
--     packages path:               lib/python2.7/dist-packages
--
--   Python 3:
--     Interpreter:                 /usr/bin/python3 (ver 3.5.2)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.5m.so (ver 3.5.2)
--     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.11.0)
--     packages path:               lib/python3.5/dist-packages
--
--   Python (for build):            /usr/bin/python2.7



붉은색 줄처럼 해당 경로들을 직접 적어줘야 합니다.


$ 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_OPENGL=ON \

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

-D WITH_V4L=ON  \

-D WITH_FFMPEG=ON \

-D WITH_XINE=ON \

-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D PYTHON2_INCLUDE_DIR=/usr/include/python2.7 \

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

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

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

-D PYTHON3_INCLUDE_DIR=/usr/include/python3.5m \

-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ \

-D PYTHON3_PACKAGES_PATH=/usr/lib/python3.5/dist-packages \

-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \

../




컴파일을 시작하기 전에 사용 중인 컴퓨터의 CPU 코어수를 확인합니다.


$ cat /proc/cpuinfo | grep processor | wc -l
4




make 명령을 사용하여 컴파일을 시작합니다.

-j 다음에 위에서 확인한 숫자를 붙여서 실행해줍니다.


webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ make -j4



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

webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ sudo make install




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


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

# libc default configuration

/usr/local/lib

# Multiarch support

/lib/x86_64-linux-gnu

/usr/lib/x86_64-linux-gnu

/usr/lib/x86_64-linux-gnu/mesa-egl

/usr/lib/x86_64-linux-gnu/mesa




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


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




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


webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ sudo ldconfig




5. OpenCV 설치 결과 확인

5.1. C/C++

C/C++를 위해 OpenCV 라이브러리 사용가능 여부를 확인합니다.

문제 없으면 설치된 OpenCV 라이브러리의 버전이 출력됩니다.


webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ pkg-config --modversion opencv

3.4.0




아래처럼 opencv를 찾을 수 없다고 나오면  추가 작업이 필요합니다.


webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ 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




pkg-config 명령이 /usr/local/lib/pkgconfig 경로에 있는 opencv.pc 파일을 찾을 수 있도록 해줘야 합니다.


$ sudo sh -c 'echo PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig >> /etc/bash.bashrc'

$ sudo sh -c 'echo export PKG_CONFIG_PATH >> /etc/bash.bashrc'




로그아웃했다가 로그인하면 적용이됩니다.


다시 확인했을 때,  OpenCV 버전이 출력되야 합니다.


webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ pkg-config --modversion opencv

3.4.0




pkg-config --libs --cflags opencv 명령을 실행했을 때 다음처럼 나오면 문제없이 설치가 완료된 것입니다.





/usr/local/share/OpenCV/samples/  경로에 OpenCV 예제코드들이 설치됩니다.





예제 코드를 하나 가져와서 컴파일 해보겠습니다.


$ cp /usr/local/share/OpenCV/samples/cpp/facedetect.cpp ./




컴파일 후, 실행시켜 봅니다.


$ g++ -o facedetect facedetect.cpp $(pkg-config --libs --cflags opencv)  

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



다음처럼 검출시간이 표시되면서 카메라 영상에 얼굴이 검출된 결과를 얻을 수 있습니다.


webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml " --scale=1.3
Video capturing has been started ...

[ INFO:0] Initialize OpenCL runtime...

detection time = 46.7177 ms

detection time = 46.2221 ms

detection time = 25.8225 ms

detection time = 25.4972 ms

detection time = 25.7804 ms

detection time = 25.614 ms

detection time = 24.6517 ms

detection time = 26.3028 ms

detection time = 27.0063 ms

detection time = 26.7993 ms

detection time = 27.4889 ms



5.2. Python

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

각각 OpenCV 버전이 출력되어야 합니다.

webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ python
Python 2.7.12 (default, Nov 20 2017, 18:23:56)

[GCC 5.4.0 20160609] on linux2

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

>>> import cv2

>>> cv2.__version__

'3.4.0'

>>>



webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)

[GCC 5.4.0 20160609] on linux

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

>>> import cv2

>>> cv2.__version__

'3.4.0'

>>>




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


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




다음처럼  터미널에 표시되면서 카메라 영상에 얼굴이 검출된 결과를 얻을 수 있습니다.


python2

webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$  python /usr/local/share/OpenCV/samples/python/facedetect.py --cascade "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade "/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml" /dev/video0

face detection using haar cascades


USAGE:

   facedetect.py [--cascade <cascade_fn>] [--nested-cascade <cascade_fn>] [<video_source>]


[ INFO:0] Initialize OpenCL runtime...



python3

webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$  python3 /usr/local/share/OpenCV/samples/python/facedetect.py --cascade "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade "/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml" /dev/video0

face detection using haar cascades


USAGE:

   facedetect.py [--cascade <cascade_fn>] [--nested-cascade <cascade_fn>] [<video_source>]


[ INFO:0] Initialize OpenCL runtime...




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


webnautes@webnautes-note:~/opencv/opencv-3.4.0/build$ cd
webnautes@webnautes-note:~$ rm -rf opencv









해봤어요 www.facebook.com/webnautes/

  1. 이전 댓글 더보기
  2. 우분투초보 2018.05.24 10:38 신고

    안녕하세여 이전 c++ / Python / Python3 마지막 예제코드 실행하다 실패한 사람입니다.

    말씀하신대로 ls /dev/video0 확인해서 파일이 없었구 현재 노트북 카메라로 이용해서 하고 있습니다.

    죄송하지만 노트북 카메라로 opencv 로 하는 방법과 저 파일이 없었을때 대처를 알고 싶습니다.

    • 우분투초보 2018.05.24 10:47 신고

      c++ 오류는
      OpenCV Error: Unspecified error (GStreamer: unable to start pipeline
      ) in cvCaptureFromCAM_GStreamer, file /home/han/opencv/opencv-3.4.0/modules/videoio/src/cap_gstreamer.cpp, line 890
      VIDEOIO(cvCreateCapture_GStreamer(CV_CAP_GSTREAMER_V4L2, reinterpret_cast<char *>(index))): raised OpenCV exception:

      /home/han/opencv/opencv-3.4.0/modules/videoio/src/cap_gstreamer.cpp:890: error: (-2) GStreamer: unable to start pipeline
      in function cvCaptureFromCAM_GStreamer

      Capture from camera #0 didn't work
      Detecting face(s) in

      파이선 오류들은

      face detection using haar cascades

      USAGE:
      facedetect.py [--cascade <cascade_fn>] [--nested-cascade <cascade_fn>] [<video_source>]

      OpenCV Error: Unspecified error (GStreamer: unable to start pipeline
      ) in cvCaptureFromCAM_GStreamer, file /home/han/opencv/opencv-3.4.0/modules/videoio/src/cap_gstreamer.cpp, line 890
      VIDEOIO(cvCreateCapture_GStreamer (CV_CAP_GSTREAMER_FILE, filename)): raised OpenCV exception:

      /home/han/opencv/opencv-3.4.0/modules/videoio/src/cap_gstreamer.cpp:890: error: (-2) GStreamer: unable to start pipeline
      in function cvCaptureFromCAM_GStreamer

      Warning: unable to open video source: /dev/video0
      Warning: unable to open video source: synth
      Traceback (most recent call last):
      File "/usr/local/share/OpenCV/samples/python/facedetect.py", line 52, in <module>
      ret, img = cam.read()
      AttributeError: 'NoneType' object has no attribute 'read'

    • webnautes webnautes 2018.05.24 23:40 신고

      /dev/video0가 없다면 우분투에서 노트북 카메라를 인식 못하는 듯합니다.


      hwinfo 패키지를 설치하고
      sudo apt-get install hwinfo


      다음 명령으로 노트북 카메라 정보를 확인해보세요..
      hwinfo --usb


      혹시 다음과 같은 부분이 있다면
      Driver Activation Cmd: "modprobe gspca_zc3xx"


      modprobe gspca_zc3xx라고 입력하면
      /dev/video0가 생성됩니다.



      문제 있으면 hwinfo --usb 결과를 올려주세요

    • 우분투초보 2018.05.25 11:05 신고

      안녕하세요 작성자님 정말 귀찮으셔도 답변 해주셔서 정말 감사드립니다.
      우선 작성자님 께서 올려주신 말대로

      hwinfo 패키지를 설치하
      sudo apt-get install hwinfo
      파악
      hwinfo --usb
      확인
      Driver Activation Cmd: "modprobe gspca_zc3xx"
      생성
      modprobe gspca_zc3xx

      해서 dev/video0 에 디렉터리가 생성 하는게 확인 되었지만

      제가 확인 단계에서 해당되는 글자가 없고 그대로 생성 해서 위에 c++ python 으로 다시 확인 하였으나 오류가 나왔습니다. 우선 usb 확인 한 내용부터 올려드리겠습니다.

      03: USB 00.0: 10503 USB Mouse
      [Created at usb.122]
      Unique ID: FKGF.frIHgptZi00
      Parent ID: pBe4._Mkd+LmXb03
      SysFS ID: /devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/2-1:1.0
      SysFS BusID: 2-1:1.0
      Hardware Class: mouse
      Model: "VMware Virtual Mouse"
      Hotplug: USB
      Vendor: usb 0x0e0f "VMware, Inc."
      Device: usb 0x0003 "Virtual Mouse"
      Revision: "1.03"
      Compatible to: int 0x0210 0x0018
      Driver: "usbhid"
      Driver Modules: "usbhid"
      Device File: /dev/input/mice (/dev/input/mouse2)
      Device Files: /dev/input/mice, /dev/input/mouse2, /dev/input/event4, /dev/input/by-id/usb-VMware_VMware_Virtual_USB_Mouse-event-mouse, /dev/input/by-path/pci-0000:02:00.0-usb-0:1:1.0-event-mouse, /dev/input/by-id/usb-VMware_VMware_Virtual_USB_Mouse-mouse, /dev/input/by-path/pci-0000:02:00.0-usb-0:1:1.0-mouse
      Device Number: char 13:63 (char 13:34)
      Speed: 12 Mbps
      Module Alias: "usb:v0E0Fp0003d0103dc00dsc00dp00ic03isc01ip02in00"
      Driver Info #0:
      Buttons: 8
      Wheels: 1
      XFree86 Protocol: explorerps/2
      GPM Protocol: exps2
      Config Status: cfg=new, avail=yes, need=no, active=unknown
      Attached to: #8 (Hub)

      04: USB 00.1: 0000 Unclassified device
      [Created at usb.122]
      Unique ID: dOTr.MBYYmXkU5s1
      Parent ID: k4bc.Qnlx_VAX744
      SysFS ID: /devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-1/1-1:1.1
      SysFS BusID: 1-1:1.1
      Hardware Class: unknown
      Model: "Realtek HP Webcam"
      Hotplug: USB
      Vendor: usb 0x0bda "Realtek Semiconductor Corp."
      Device: usb 0x58ed "HP Webcam"
      Revision: "0.13"
      Serial ID: "200901010001"
      Driver: "uvcvideo"
      Driver Modules: "uvcvideo"
      Speed: 480 Mbps
      Module Alias: "usb:v0BDAp58EDd0013dcEFdsc02dp01ic0Eisc02ip00in01"
      Config Status: cfg=new, avail=yes, need=no, active=unknown
      Attached to: #6 (Hub)

      05: USB 00.0: 10a00 Hub
      [Created at usb.122]
      Unique ID: hSuP.eX9EDlP2ZX0
      Parent ID: pBe4._Mkd+LmXb03
      SysFS ID: /devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/2-2:1.0
      SysFS BusID: 2-2:1.0
      Hardware Class: hub
      Model: "VMware Virtual USB Hub"
      Hotplug: USB
      Vendor: usb 0x0e0f "VMware, Inc."
      Device: usb 0x0002 "Virtual USB Hub"
      Revision: "1.00"
      Driver: "hub"
      Driver Modules: "usbcore"
      Speed: 12 Mbps
      Module Alias: "usb:v0E0Fp0002d0100dc09dsc00dp00ic09isc00ip00in00"
      Config Status: cfg=new, avail=yes, need=no, active=unknown
      Attached to: #8 (Hub)

      06: USB 00.0: 10a00 Hub
      [Created at usb.122]
      Unique ID: k4bc.Qnlx_VAX744
      SysFS ID: /devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-0:1.0
      SysFS BusID: 1-0:1.0
      Hardware Class: hub
      Model: "Linux Foundation 2.0 root hub"
      Hotplug: USB
      Vendor: usb 0x1d6b "Linux Foundation"
      Device: usb 0x0002 "2.0 root hub"
      Revision: "4.15"
      Serial ID: "0000:02:03.0"
      Driver: "hub"
      Driver Modules: "usbcore"
      Speed: 480 Mbps
      Module Alias: "usb:v1D6Bp0002d0415dc09dsc00dp00ic09isc00ip00in00"
      Config Status: cfg=new, avail=yes, need=no, active=unknown

      08: USB 00.0: 10a00 Hub
      [Created at usb.122]
      Unique ID: pBe4._Mkd+LmXb03
      SysFS ID: /devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-0:1.0
      SysFS BusID: 2-0:1.0
      Hardware Class: hub
      Model: "Linux Foundation 1.1 root hub"
      Hotplug: USB
      Vendor: usb 0x1d6b "Linux Foundation"
      Device: usb 0x0001 "1.1 root hub"
      Revision: "4.15"
      Serial ID: "0000:02:00.0"
      Driver: "hub"
      Driver Modules: "usbcore"
      Speed: 12 Mbps
      Module Alias: "usb:v1D6Bp0001d0415dc09dsc00dp00ic09isc00ip00in00"
      Config Status: cfg=new, avail=yes, need=no, active=unknown


      이며 예제로 실행을 하면 오류는
      C++
      select timeout
      select timeout
      OpenCV Error: Assertion failed (total() == 0 || data != __null) in Mat, file /home/han/opencv/opencv-3.4.0/modules/core/include/opencv2/core/mat.inl.hpp, line 500
      terminate called after throwing an instance of 'cv::Exception'
      what(): /home/han/opencv/opencv-3.4.0/modules/core/include/opencv2/core/mat.inl.hpp:500: error: (-215) total() == 0 || data != __null in function Mat

      중지됨 (core dumped)

      python
      select timeout
      select timeout
      OpenCV Error: Assertion failed (total() == 0 || data != __null) in Mat, file /home/han/opencv/opencv-3.4.0/modules/core/include/opencv2/core/mat.inl.hpp, line 500
      Traceback (most recent call last):
      File "/usr/local/share/OpenCV/samples/python/facedetect.py", line 52, in <module>
      ret, img = cam.read()
      cv2.error: /home/han/opencv/opencv-3.4.0/modules/core/include/opencv2/core/mat.inl.hpp:500: error: (-215) total() == 0 || data != __null in function Mat

      긴 장문으로 질문드려서 죄송합니다.

    • webnautes webnautes 2018.05.25 17:49 신고

      괜찮습니다.~^^

      올려주신 것을 보니.. 아래처럼 카메라 정보가 있습니다.

      Vendor: usb 0x0bda "Realtek Semiconductor Corp."
      Device: usb 0x58ed "HP Webcam"
      Revision: "0.13"
      Serial ID: "200901010001"
      Driver: "uvcvideo"
      Driver Modules: "uvcvideo"


      기존 모듈을 제거하고
      modprobe -r gspca_zc3xx

      uvcvideo 모듈을 추가해줍니다.
      modprobe uvcvideo


      테스트를 다시 해보세요

    • 우분투초보 2018.05.25 18:42 신고

      빠른시간내에 답변을 해주셔서 감사 드립니다. 작성자분 말씀대로 삭제후 추가하고 다시 테스트를 해보았지만 이번엔 Video capturing has been started ... 이후
      동일하게 오류 형상이 나왔습니다.
      혹시나 제가 파일을 잘못 만든건지 기존 예제 테스트 파일도 삭제해서 다시 시도 해봤습니다.. ㅜㅜ

      소프트웨어인 치즈로 돌려보았지만 아직 무언가 문제가 있어서 안되는거 같구요...

      혹시 다시 우분투를 다시 깔고 첨부터 시도 해야하나요?

    • webnautes webnautes 2018.05.25 23:55 신고

      카메라를 바꾸어 볼 필요가 있을거 같습니다.

      VMware 상에 우분투를 설치한거 같던데..
      그래서 그런거 같기도 합니다.

    • 우분투초보 2018.05.28 09:41 신고

      답변을 빨리 못달아서 죄송합니다.

      우선 작성자님 말씀대로 VMware 상에 우분투를 설치를 해서 진행 했습니다.

      빠른답변과 해결법을 주셔서 감사합니다.

      Visual Studio로 다시 해볼 생각 입니다.

      궁금해서 질문 한개더 드립니다.
      혹시 VMware상에 하면 안되는 이유가 무엇인가요? 내장 카메라만 안되는건지
      아니면 웹켐을 따로 사야하는건지.

    • webnautes webnautes 2018.05.28 11:59 신고

      VMware가 물리적 하드웨어를 가상 머신에 설치된 우분투에서도 사용할 수 있게 해주지만..

      직접 피시에 설치한 우분투에서 동일한 하드웨어를 사용하는 것과 똑같이 동작하지 않는 경우가 있어서 그렇습니다.

      OpenCV를 사용한다면 처리 속도도 중요하기 때문에 상대적으로 느리게 동작할 수 밖에 없는 VMware는 피하는게 좋을 듯합니다.



  3. koo 2018.05.24 19:06 신고

    포스팅 잘 보았습니다.
    make -j4 명령 도중에 70%대 정도에서

    [ 69%] Built target opencv_dnn
    Scanning dependencies of target opencv_annotation
    [ 70%] Building CXX object apps/annotation/CMakeFiles/opencv_annotation.dir/opencv_annotation.cpp.o
    [ 70%] Linking CXX executable ../../bin/opencv_annotation
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libGL.so: undefined reference to `drmGetDevices2'
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libGL.so: undefined reference to `drmGetDevice2'
    collect2: error: ld returned 1 exit status
    apps/annotation/CMakeFiles/opencv_annotation.dir/build.make:101: 'bin/opencv_annotation' 타겟에 대한 명령이 실패했습니다
    make[2]: *** [bin/opencv_annotation] 오류 1
    CMakeFiles/Makefile2:8082: 'apps/annotation/CMakeFiles/opencv_annotation.dir/all' 타겟에 대한 명령이 실패했습니다
    make[1]: *** [apps/annotation/CMakeFiles/opencv_annotation.dir/all] 오류 2
    make[1]: *** 끝나지 않은 작업을 기다리고 있습니다....
    [ 70%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/src/fast_score.cpp.o
    [ 71%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/src/orb.cpp.o
    [ 71%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/src/mser.cpp.o
    [ 71%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/src/evaluation.cpp.o
    [ 71%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/src/brisk.cpp.o
    [ 71%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/src/draw.cpp.o
    [ 71%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/src/gftt.cpp.o
    [ 71%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/opencl_kernels_features2d.cpp.o
    [ 71%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d.dir/src/fast.avx2.cpp.o
    [ 71%] Linking CXX shared library ../../lib/libopencv_features2d.so
    [ 71%] Built target opencv_features2d
    Makefile:160: 'all' 타겟에 대한 명령이 실패했습니다
    make: *** [all] 오류 2

    이런 명령이 뜨면서 완료가 되지 않습니다.
    무시하고 다음 명령인 sudo make install을 실행하면
    비슷한 오류가 나면서 100%까지 완료가 되질 않습니다.
    그 후에 opencv 버전 확인을 하면 opencv를 찾을수 없다고 나오고
    'pkg-config 명령이 /usr/local/lib/pkgconfig 경로에 있는 opencv.pc 파일을 찾을 수 있도록 해줘야 합니다.' 에 해당하는 명령을 써도 그대롭니다.
    실제로 /usr/local/lib에 pkgconfig 디렉터리가 생성조차 안되어있습니다..
    해결방법 부탁드립니다ㅜㅜ

    • webnautes webnautes 2018.05.25 11:26 신고

      그래픽 카드에서 지원하는 OpenGL 기능과 관련이 있어서..
      모델명과 libGL.so로 검색을 해봐야 할듯합니다.


      간단하게는 OpenGL을 사용하지 않도록 하면 해결될 듯합니다.

      -D WITH_OPENGL=OFF



      혹시 Jetson TX2를 위해 컴파일하는 거라면.. 아래 링크를 확인해보세요.

      https://devtalk.nvidia.com/default/topic/1007290/jetson-tx2/building-opencv-with-opengl-support-/post/5141945


  4. koo 2018.05.28 21:00 신고

    덕분에 opencv 설치까지 모두 마쳤습니다. 마지막에 나오는 facedetect예제를 실행시키려는데 오류가 나타납니다.

    ./facedetect: error while loading shared libraries: libopencv_highgui.so.3.4: cannot open shared object file: No such file or directory

    현재 제가 사용하고 있는 ARM보드가 Huins사의 I.MX6Q모델입니다. 카메라를 연결하였지만 오류는 여전히 나타났고 다른 예제들에도 같은 문구의 오류가 나타났습니다... 혹시 해결방법이 있는지 여쭤보고싶습니다.

    그리고 opencv를 설치하는 과정이 porting(포팅)이라는 과정과 같은 것인지도 궁금합니다.
    번거롭게 해드려서 죄송합니다...

    • webnautes webnautes 2018.05.28 21:31 신고

      프로그램 실행시 라이브러리 파일을 찾지 못하는 것 같습니다.

      아래 링크에 나오는 설명처럼 진행해보세요..

      https://github.com/GaoHongchen/DIPDemo/issues/1

      포팅은 특정 플랫폼을 위해 작성된 소스 코드를 다른 플랫폼에서 동작하도록 하는 작업인듯 싶습니다.


      윈도우용 프로그램을 리눅스용 프로그램으로 변경하는 것도 포팅이라 볼 수도 있어서..

      OpenCV를 특정 보드에서 동작하도록 하는 것도 포팅이라 볼 수 있을 듯합니다.


      ARM 보드 쪽에선

      보통 부트로더 소스 코드나 리눅스 소스 코드를 특정 ARM 보드에서 동작시키기 위해 하드웨어 스펙에 맞추어 코드를 변경하는 경우를 포팅이라 보는 듯합니다.

      같은 ARM 시피유를 사용하더라도 보드를 만드는 업체에 따라 다른 하드웨어 구성으로 설계하기 때문입니다.


      이런 맥락에서 본다면 OpenCV를 우분투/데비안 계열 리눅스를 사용하는 플랫폼에서 컴파일 하는 경우에는 포팅이라 부르기 애매한 듯합니다.

      피시(인텔 CPU)든 라즈베리파이(ARM CPU)든 우분투/데비안 계열 리눅스상에서는 코드 수정없이 컴파일하면 되서라고 봅니다.





  5. fkfnk 2018.06.20 21:49 신고


    /usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `ff_a64_muxer' can not be used when making a shared object; recompile with -fPIC
    /usr/local/lib/libavformat.a: error adding symbols: Bad value
    collect2: error: ld returned 1 exit status
    modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:283: recipe for target 'lib/libopencv_videoio.so.3.4.0' failed
    make[2]: *** [lib/libopencv_videoio.so.3.4.0] Error 1
    CMakeFiles/Makefile2:4463: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/all' failed
    make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....

    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/eltwise_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/max_unpooling_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/detection_output_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/split_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/shift_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/pooling_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/permute_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/blank_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/mvn_layer.cpp.o
    [ 63%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/fully_connected_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/padding_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/scale_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/reorg_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/recurrent_layers.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/normalize_bbox_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/proposal_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/lrn_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/resize_nearest_neighbor_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/crop_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/concat_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/convolution_layer.cpp.o
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/flatten_layer.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/region_layer.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/layers_common.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/softmax_layer.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/reshape_layer.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/nms.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/tensorflow/tf_io.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/tensorflow/tf_importer.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/ocl4dnn/src/common.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/ocl4dnn/src/ocl4dnn_lrn.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/ocl4dnn/src/ocl4dnn_inner_product.cpp.o
    [ 65%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/ocl4dnn/src/ocl4dnn_pool.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/ocl4dnn/src/ocl4dnn_softmax.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/ocl4dnn/src/math_functions.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/torch/torch_importer.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/torch/THDiskFile.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/torch/THGeneral.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/torch/THFile.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/dnn.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/halide_scheduler.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/darknet/darknet_importer.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/darknet/darknet_io.cpp.o
    [ 66%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/op_halide.cpp.o
    [ 67%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/init.cpp.o
    [ 67%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/caffe/caffe_shrinker.cpp.o
    [ 67%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/caffe/caffe_importer.cpp.o
    [ 67%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/caffe/caffe_io.cpp.o
    [ 67%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/opencl_kernels_dnn.cpp.o
    [ 67%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/layers/layers_common.avx.cpp.o
    [ 67%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/layers/layers_common.avx2.cpp.o
    [ 67%] Linking CXX shared library ../../lib/libopencv_dnn.so
    [ 67%] Built target opencv_dnn
    Makefile:160: recipe for target 'all' failed
    make: *** [all] Error 2
    open@lattepanda:~/opencv/opencv-3.4.0/build$
    혹시 이렇게 오류가 뜨는데 어떻게 해야할까요?? ㅠㅠㅠ

  6. fkfnk 2018.06.21 10:47 신고

    답변해주셔서 감사합니다 말씀해주신데로 -D WITH_FFMPEG=OFF \ 요렇게 옵션을 변경하였더니
    CMake Error: The source directory "/home/open/opencv" does not appear to contain CMakeLists.txt.
    Specify --help for usage, or press the help button on the CMake GUI.
    요런 에러가 뜨네요..

    • webnautes webnautes 2018.06.21 11:11 신고

      입력하실 때 실수하신 듯 보입니다.
      혹시 모르니 아래를 복사해서 포스팅처럼 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_OPENGL=ON \
      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \
      -D WITH_V4L=ON \
      -D WITH_FFMPEG=OFF \
      -D WITH_XINE=ON \
      -D BUILD_NEW_PYTHON_SUPPORT=ON \
      ../

  7. fkfnk 2018.06.21 14:24 신고

    감사합니다 ㅠㅠ 다 해결됬어요 근데 예제코드 g++ -o facedetect facedetect.cpp $(pkg-config --libs --cflags opencv)
    가져온다음 이렇게 컴파일 하였고 ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml " --scale=1.3
    이렇게 실행을 하니 ./facedetect: error while loading shared libraries: libopencv_highgui.so.3.4: cannot open shared object file: No such file or directory
    이렇게 에러가 나네요 ㅠㅠ 마지막으로 부탁드립니다

  8. yu 2018.06.21 15:38 신고

    질문 사항 한가지 드립니다..
    cmake 완료 후 make -j4 명령어를 사용 중 다음과 같은 error 메세지가 발생 하고 있습니다..

    혹시 해결 가능 한 부분 있을까요..
    내용은 다음과 같습니다.

    [ 44%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/convert.sse4_1.cpp.o
    [ 44%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/stat.sse4_2.cpp.o
    [ 44%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/convert.fp16.cpp.o
    [ 44%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/mathfuncs_core.avx.cpp.o
    [ 44%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/convert.avx2.cpp.o
    [ 44%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/mathfuncs_core.avx2.cpp.o
    make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libGL.so', needed by 'lib/libopencv_core.so.3.4.0'. Stop.
    make[2]: *** Waiting for unfinished jobs....
    [ 44%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/stat.avx2.cpp.o
    CMakeFiles/Makefile2:2143: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failed
    make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
    Makefile:160: recipe for target 'all' failed
    make: *** [all] Error 2

  9. fkfnk 2018.06.21 16:35 신고

    전에 동일증상에 답변해주셨던걸로 해결하였습니다.
    덕분에 막혔던 부분을 수월하게 해결하여 무리없이 프로젝트 시작할수있게되었습니다 정말 감사합니다

    • webnautes webnautes 2018.06.21 16:36 신고

      해결하셨다니 다행이네요

    • camperfeel 2018.10.16 20:53 신고

      ./darknet: error while loading shared libraries: libopencv_highgui.so.3.4: cannot open shared object file: No such file or directory

      안녕하세요. 저도 위와같은 에러가 발생하는데 어떻게 해결하셨나요?
      'opencv초보자'님에 대한 댓글을 검색하려고 해봐도 없어서 이렇게 댓글을 남깁니다..

    • webnautes webnautes 2018.10.16 21:21 신고

      다음처럼 하면 해결됩니다

      /etc/ld.so.conf.d/opencv.conf 파일에 /usr/local/lib를 입력하고..
      $ sudo ldconfig -v를 실행하세요..


      그리고나서 다음 명령 실행하면 OpenCV 버전 나오는지 확인하세요..
      $ pkg-config --modversion opencv

      그래도 문제 있으면..다음 명령을 실행하고 로그아웃했다 로그인하고 다시해보세요..

      $ sudo sh -c 'echo PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig >> /etc/bash.bashrc'

      $ sudo sh -c 'echo export PKG_CONFIG_PATH >> /etc/bash.bashrc'


      opencv초보자님은 /usr/local/lib대신에 다음 경로로 바꿔서 해결되었다하네요.
      /usr/local/lib/x86_64-linux-gnu/

  10. fkfnk 2018.06.22 19:36 신고

    게시글하고 상관 없는 질문인데 혹시 하나만더 여쭈어봐도 될까요?? 제가 리눅스환경에서 작업을하는데 윈도우 환경에서 작업한 코드를 리눅스에서 돌릴려고 하니깐 에러가 자꾸 나네요 ㅠㅠ 구글링을 해봐도 한계가있어서 혹시나 하는 마음에 남겨봅니다
    #include <stdlib.h>
    #include <stdio.h>
    #include <cv.h>
    #include "opencv2/opencv.hpp"
    #include "opencv2/highgui.hpp"

    int sub_image(IplImage*img1, IplImage*img2, IplImage*dst);

    int main()

    {
    IplImage * image;

    CvCapture* capture;

    capture = cvCaptureFromCAM(0);

    image = cvQueryFrame(capture);

    int cnt=0;

    char name[10] ;

    char buffer[40] ;

    int BYTE =0;

    IplImage * temp= cvCreateImage(cvGetSize(image), 8, 3);

    IplImage * dst= cvCreateImage(cvGetSize(image), 8, 3);


    while(1)
    {

    image = cvQueryFrame(capture);

    //CvCapture 로부터 프레임을 얻어 image 라는 IplImage객체에 넣습니다.


    if( sub_image(image, temp, dst) == 1) //sub_image를 호출하여 리턴값이 1이면 실행

    {

    cnt++; //매 프레임마다 카운트하여 이 카운트를 파일명에 넣습니다.

    // itoa(cnt, name, 10);//저장되는사진이름은1,2,3,식으로카운트번호

    sprintf(buffer,"C:\\cctv\\%s.jpg",name);

    cvSaveImage(buffer,image); //지정된 파일명으로 저장합니다.

    }


    cvCopy(image, temp); //if문에 걸리지 않더라도 매 프레임을 temp에 저장합니다.

    //while문이 다시 돌때 새로들어온 프레임인 image와 이전프레임인 temp와의 차를

    //구하게 하려는 의도입니다.

    cvShowImage("show",image);

    cvShowImage("cha",dst);


    if(cvWaitKey(10)== 'p')

    break;




    }
    cvReleaseCapture(&capture); //메모리해제

    cvReleaseImage(&image);

    cvReleaseImage(&dst);

    cvReleaseImage(&temp);

    cvDestroyAllWindows();


    }


    int sub_image(IplImage*img1, IplImage*img2, IplImage*dst) //차영상을 구하는 소스입니다

    // RGB 기반으로 단순히 이전프레임과 현재프레임의 각 픽셀의 R,G,B 각각이 40이상씩 모두 차이나면

    //화면에 변화가 생겼다고 가정(기준을 정하여) 조건에 맞으면 return 1을 합니다.

    {

    int value1, value2, value3;

    int cnt=0;

    int BYTE =0;

    int imag1;



    // 한프레임내의 픽셀을 도는 2중 for문
    for(int x=0; x<img1->height;x++) //이미지차연산

    {

    for(int y=0; y <img1->width;y++)
    {

    value1 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y ]) - ((BYTE)img2->imageData[x*img2->widthStep + 3*y]) ) ;

    value2 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y + 1]) - ((BYTE)img2->imageData[x*img2->widthStep + 3*y]+1 ) ) ;


    value3 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y + 2]) - ((BYTE)img2->imageData[x*img2->widthStep + 3*y]+ 2) ) ;


    //한 프레임내에서 R,G,B모두 40이상의 색상차이를 보이면 이 수를 카운트해서(cnt++)

    //한프레임 내에서 총 몇개의 픽셀이 변화를 일으켰는지 셉니다.

    if(value1>40&& value2>40 && value3>40) // RGB 가모두40이상차이날경우

    {

    dst->imageData[x*dst->widthStep + 3*y+ 0] = (BYTE)img1->imageData[x*img1->widthStep+ 3*y + 0];

    dst->imageData[x*dst->widthStep + 3*y+ 1] = (BYTE)img1->imageData[x*img1->widthStep+ 3*y + 1];

    dst->imageData[x*dst->widthStep + 3*y+ 2] = (BYTE)img1->imageData[x*img1->widthStep+ 3*y + 2];



    cnt++; //카운트함

    }

    //그 외에 40이상 차이나지 않는 픽셀의 경우엔 0으로 채워서 검은색으로 만들어

    //화면에 보여줄때 차이를 분명히 하기위해서입니다. 단순히 보는사람입장에서 생각하는거라 파일로 저장화하는데 관련이 없으므로 지워도 무>방합니다.

    else

    {

    dst->imageData[x*dst->widthStep + 3*y+ 0] = 0;

    dst->imageData[x*dst->widthStep + 3*y+ 1] = 0;

    dst->imageData[x*dst->widthStep + 3*y+ 2] = 0;

    }

    }

    }



    //한 프레임을 2중for문으로 싹 돌고나서 누적된 카운트수를 세서 300개 이상(임의의 기준)

    // 일 경우 이 장면에 뭔가 새로운게 들어왔다고 가정하고 return 1을 합니다.

    if(cnt>300) //영상1프레임내에서변화가있는픽셀이300개이상일경우리턴1

    return 1;



    //그외에는 0을 리턴합니다.

    return 0;
    }
    코드를 보면 c++은 맞는데 리눅스에서 컴파일이 자꾸 에러가 나네요.
    몇개는 잡아냈는데 이 에러는 안잡히네요. 한번만 봐주시면 감사하겠습니다
    test.cpp: In function ‘int sub_image(IplImage*, IplImage*, IplImage*)’:
    test.cpp:139:44: error: expected ‘)’ before ‘img1’
    value1 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y ]) - ((BYTE)img2->imageData[x*img2->widthStep +
    ^
    test.cpp:139:139: error: expected ‘)’ before ‘;’ token
    value1 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y ]) - ((BYTE)img2->imageData[x*img2->widthStep + 3*y]) ) ;

    test.cpp:141:44: error: expected ‘)’ before ‘img1’
    value2 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y + 1]) - ((BYTE)img2->imageData[x*img2->widthSte
    ^
    test.cpp:141:145: error: expected ‘)’ before ‘;’ token
    value2 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y + 1]) - ((BYTE)img2->imageData[x*img2->widthStep + 3*y]+1 ) ) ;

    test.cpp:144:44: error: expected ‘)’ before ‘img1’
    value3 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y + 2]) - ((BYTE)img2->imageData[x*img2->widthSte
    ^
    test.cpp:144:145: error: expected ‘)’ before ‘;’ token
    value3 = abs(((BYTE)img1->imageData[x*img1->widthStep+ 3*y + 2]) - ((BYTE)img2->imageData[x*img2->widthStep + 3*y]+ 2) ) ;

    test.cpp:160:63: error: expected ‘;’ before ‘img1’
    dst->imageData[x*dst->widthStep + 3*y+ 0] = (BYTE)img1->imageData[x*img1->widthStep+ 3*y + 0];
    ^
    test.cpp:162:61: error: expected ‘;’ before ‘img1’
    dst->imageData[x*dst->widthStep + 3*y+ 1] = (BYTE)img1->imageData[x*img1->widthStep+ 3*y + 1];
    ^
    test.cpp:164:60: error: expected ‘;’ before ‘img1’
    dst->imageData[x*dst->widthStep + 3*y+ 2] = (BYTE)img1->imageData[x*img1->widthStep+ 3*y + 2];

    • webnautes webnautes 2018.06.22 20:15 신고

      주요 코드가 OpenCV 2.4 버전 코드라서 에러가 나는 걸로 보입니다.

      OpenCV 3.0 이상에서는 iplimage 구조체 대신에 Mat 클래스를 사용하는 걸로 알고 있습니다.

    • webnautes webnautes 2018.06.22 20:17 신고

      현재 에러는 괄호 안맞아서 인듯 싶기도 하네요. 확인해 볼께요

    • webnautes webnautes 2018.06.22 20:44 신고

      OpenCV 3.x 라이브러리에 OpenCV 2.x 라이브러리가 포함된걸 알고 있었지만..

      코드가 두 버전을 섞어 사용했는데도
      컴파일도 문제 없이 되는 군요...


      1. 우선 올려주신 코드에서 다음 줄을 주석처리하거나 제거하세요. 두 군데 있습니다.

      int BYTE =0;


      2. 그 다음 리눅스에는 없는 타입인 BYTE를 unsigned char로 바꾸어 줘야 합니다.

      cv.h 헤더 파일 위치도 문제가 있어서 바꾸어 놓고 필요없는 헤더파일을 제거합니다.

      결과적으로 sub_image 함수 선언 앞쪽에 다음 세 줄만 남습니다.

      #include "opencv/cv.h"
      #include "opencv2/opencv.hpp"


      typedef unsigned char BYTE;



      int sub_image(IplImage*img1, IplImage*img2, IplImage*dst);

    • webnautes webnautes 2018.06.22 20:47 신고

      그리고 코드 작성시 다음 포스팅 내용으로 해보세요..

      에러가 직관적으로 바로 보입니다.


      Ubuntu 18.04에서 Sublime Text 3를 사용하여 OpenCV 개발환경 만들기

      http://webnautes.tistory.com/1187


      아직 확인은 못해봤지만... Ubuntu 16.04에서도 거의 동일하게 동작할듯합니다.

  11. 초보 2018.07.09 11:25 신고

    파이썬에서 예제를 하나 실행해보려 했더니
    ImportError: No module named 'cv2' 오류가 발생하였습니다.
    빌드 과정에서 Python 2의 Interpreter, Libraries, numpy, packages path는 모두 정상적으로 출력되었습니다.
    (다만 /usr/local/lib/python2.7/site-packages 폴더가 비어있고, /usr/local/lib/python3.5/site-packages 폴더는 아예 존재하지 않았습니다.)
    혹시 opencv 설치가 제대로 되지 않은건가 하여, 덮어쓰기식으로 또 다시 설치를 해보고자 하였습니다.
    (물론 opencv, python이 설치되었는지 확인해보았는데, 버전을 정상적으로 출력하였기에, 설치가 된 것으로 생각하고 있습니다만...)
    그런데, 컴파일을 하려 했더니
    Makefile:160: recipe for target 'all' failed
    make: *** [all] Error 2
    이라는 오류가 발생하였습니다.
    -D WITH_OPENGL=OFF
    로 빌드하고 컴파일하려해도 역시나 동일한 오류가 발생하였습니다.
    opencv 셋팅하는게 정말 어렵네요... 가이드대로 설치해도 오류가 발생하니... 우분투를 몇번이나 재설치했는지 모르겠습니다.
    해결책을 알려주시면 감사하겠습니다.

    • 초보 2018.07.09 13:56 신고

      Pycharm에서는 안 되었는데, 터미널 상에서는 실행에 성공하였습니다. Pycharm의 문제인 것 같은데... 아무튼 해결책은 모르지만, OpenCV가 제대로 설치된 것은 확인하였습니다. 감사합니다!

    • webnautes webnautes 2018.07.09 14:02 신고

      답변이 늦었네요..

      PyCharm에서 가상환경이 디폴트로 되어 있어서 생기는 문제입니다.

      다음 포스팅의 3번대로 실제 우분투에 설치되어 있는 python을 사용하도록 해보세요..

  12. kimjinwoo 2018.07.15 09:56 신고

    /usr/bin/ld: out of memory allocating 1633836916 bytes after a total of 1892352 bytes
    collect2: error: ld returned 1 exit status
    modules/features2d/CMakeFiles/opencv_features2d.dir/build.make:710: 'lib/libopencv_features2d.so.3.3.0' 타겟에 대한 명령이 실패했습니다
    make[2]: *** [lib/libopencv_features2d.so.3.3.0] 오류 1
    CMakeFiles/Makefile2:10816: 'modules/features2d/CMakeFiles/opencv_features2d.dir/all' 타겟에 대한 명령이 실패했습니다
    make[1]: *** [modules/features2d/CMakeFiles/opencv_features2d.dir/all] 오류 2
    Makefile:160: 'all' 타겟에 대한 명령이 실패했습니다
    make: *** [all] 오류 2
    I have tihs problom so can you help me out?
    if you have chance, you write in korean
    now I cannot write korean only in English

    • webnautes webnautes 2018.07.15 10:00 신고

      혹시 PC아닌 가요?
      아래 링크에 나온것처럼 Swap 을 늘려보세요.

      https://www.pyimagesearch.com/2017/10/09/optimizing-opencv-on-the-raspberry-pi/

  13. answer 2018.07.24 23:14 신고

    선생님 안녕하세요... 에러가 나는데 도저히 해결하지 못하고 있어서 이렇게 질문드립니다.

    개발환경 셋팅은 아래와 같습니다.

    cuda 9.0, cuDNN 7.x anaconda python 3.6 ubuntu 16.04

    에러가 나는 코드와 에러는 아래와 같습니다.

    에러 발생 코드:
    $ g++ -o facedetect facedetect.cpp $(pkg-config --libs --cflags opencv)

    에러 메시지:
    /usr/bin/ld: warning: libicui18n.so.58, needed by //home/caitech/anaconda3/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: libicuuc.so.58, needed by //home/caitech/anaconda3/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: libicudata.so.58, needed by //home/caitech/anaconda3/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `u_errorName_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_setMillis_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_getAlias_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_inDaylightTime_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `u_strToLower_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_getStandardName_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `u_strToUpper_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_setSubstChars_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_getMaxCharSize_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_getTimeZoneDisplayName_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_fromUnicode_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_open_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_getDefaultName_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_getDefaultTimeZone_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_clone_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_getDSTSavings_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucol_strcoll_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_close_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_countAvailable_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_openCountryTimeZones_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucol_open_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_compareNames_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_close_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_getAvailableName_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_openTimeZoneIDEnumeration_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_open_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucol_setAttribute_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_openTimeZones_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `uenum_close_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_countAliases_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucol_close_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucol_getSortKey_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucal_get_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `uenum_next_58'
    //home/caitech/anaconda3/lib/libQt5Core.so.5: undefined reference to `ucnv_toUnicode_58'
    collect2: error: ld returned 1 exit status

    제 추측으로는 cmake의 결과로 python3에 관한 항목이 전혀 나오지 않았는데 그냥 진행한 것이 문제일 것 같다는 생각이 드는데...
    혹시 해결책 생각 나시는게 있으시면 정중히 의견 여쭙겠습니다... 감사합니다.

    • webnautes webnautes 2018.07.25 00:22 신고

      cmake 대신에 cmake-gui를 사용하면 anaconda관련 경로들이 인식된다는데.. 테스트 환경이 안되서 못해봤네요..

      자세한 내용은 아래 링크를 확인해보세요.
      https://askubuntu.com/questions/1011636/opencv-undefined-references-for-libqt5core-so-5

  14. CB 2018.07.26 15:16 신고

    안녕하세요 포스팅 잘 보았습니다. 설치중 cmake 단계에서 python3 관련한 내용이 출력되지 않는 오류가 발생하여 질문을 드립니다.

    저는 아무것도 설치하지 않은 우분투 16.04 버전에서 anaconda 4.5.8, cuda toolkit 8.0, cudnn 6 만 설치한 상태로 진행하였구요

    -D PYTHON3_PACKAGES_PATH=/usr/lib/python3.5/dist-packages
    에 해당하는 폴더가 존재하지 않아서
    제가 생성한 아나콘다 가상환경 폴더에서
    /home/cb/anaconda3/envs/python35/lib/python3.5/site-packages
    폴더를
    /usr/lib/python3.5/
    위치에 복사하고
    -D PYTHON3_PACKAGES_PATH=/usr/lib/python3.5/site-packages
    로 수정해서 실행하였는데, 컴파일 결과물을 보면

    -- Python 2:
    -- Interpreter: /usr/bin/python2.7 (ver 2.7.12)
    -- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
    -- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
    -- packages path: /usr/lib/python2.7/dist-packages
    --
    -- Python (for build): /usr/bin/python2.7
    --
    -- Java:
    -- ant: NO
    -- JNI: NO
    -- Java wrappers: NO
    -- Java tests: NO
    --
    -- Matlab: NO
    --
    -- Install to: /usr/local

    이런 식으로 python3 에 대한 내용은 출력되지 않습니다.

    선생님께서 다른 분들께 답변 달아주신 내용들을 참고해서, 제 나름대로 해결해보려 하였으나 여기서 막혔네요. 도와주실 수 있을까요?

    • webnautes webnautes 2018.07.26 16:52 신고

      아직해보지는 못했는데 다음 옵션들을 cmake에 추가해서 해보세요..

      -DCMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") -DPYTHON3_EXECUTABLE=$(which python) -DPYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -DPYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")


      다음 사이트에 나오는 내용입니다.
      https://www.scivision.co/anaconda-python-opencv3/

  15. 쩜쩜쩜 2018.08.07 19:31 신고

    [ 64%] Linking CXX shared library ../../lib/libopencv_videoio.so
    [ 64%] Built target opencv_videoio
    [ 64%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/softmax_layer.cpp.o
    [ 64%] Generating qrc_window_QT.cxx
    [ 65%] Generating src/moc_window_QT.cxx
    moc: Cannot open options file specified with @
    Usage: moc [options] <header-file>
    -o<file> write output to file rather than stdout
    -I<dir> add dir to the include path for header files
    -E preprocess only; do not generate meta object code
    -D<macro>[=<def>] define macro, with optional definition
    -U<macro> undefine macro
    -i do not generate an #include statement
    -p<path> path prefix for included file
    -f[<file>] force #include, optional file name
    -nn do not display notes
    -nw do not display warnings
    @<file> read additional options from file
    -v display version of moc
    modules/highgui/CMakeFiles/opencv_highgui.dir/build.make:62: recipe for target 'modules/highgui/src/moc_window_QT.cxx' failed
    make[2]: *** [modules/highgui/src/moc_window_QT.cxx] Error 1
    CMakeFiles/Makefile2:4916: recipe for target 'modules/highgui/CMakeFiles/opencv_highgui.dir/all' failed
    make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....

    (중략)

    [ 68%] Linking CXX shared library ../../lib/libopencv_dnn.so
    [ 68%] Built target opencv_dnn
    Makefile:160: recipe for target 'all' failed
    make: *** [all] Error 2


    자꾸 이 에러가 뜨면서 컴파일이 멈춥니다. 어떻게 해결해야 할까요?ㅠㅠ

  16. opencvQT 2018.08.31 17:37 신고

    g++ -o facedetect facedetect.cpp $(pkg-config --libs --cflags opencv) 명령어 실행 과정에서

    /usr/bin/ld: warning: libicui18n.so.56, needed by //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: libicuuc.so.56, needed by //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: libicudata.so.56, needed by //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `u_strToLower_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_getStandardName_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_getAlias_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `uenum_next_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `u_strToUpper_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_setSubstChars_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_getTimeZoneDisplayName_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_fromUnicode_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `u_errorName_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `uenum_close_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_getDSTSavings_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_openTimeZoneIDEnumeration_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_setMillis_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucol_close_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucol_getSortKey_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_get_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucol_open_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_compareNames_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_clone_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_open_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucol_setAttribute_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_openCountryTimeZones_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_open_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_openTimeZones_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_countAliases_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_inDaylightTime_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_close_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_getAvailableName_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_getDefaultName_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucal_getDefaultTimeZone_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_toUnicode_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucol_strcoll_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_close_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_getMaxCharSize_56'
    //home/soo/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_countAvailable_56'
    collect2: error: ld returned 1 exit status
    다음과 같은 에러가 발생했습니다.

    작성자님이 올려주신 내용과 비교하였을 때 다른 내용은 QT 버젼 외엔 없었습니다.
    (QT Creator를 사용할 일이 있어 5.1을 사용중입니다.)
    -- GUI:
    -- QT: YES (ver 5.10.0)
    -- QT OpenGL support: YES (Qt5::OpenGL 5.10.0)
    -- GTK+: NO
    -- OpenGL support: YES (/usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libGL.so)

    이 글을 보며 여러번 opencv를 설치해 보았지만, QT Creator를 먼저 설치 한 후 opencv를 설치해본 적이 처음이라
    QT 버젼에 문제가 있다고 생각이 듭니다.

    꼭 부탁드립니다 ㅠㅠ

    • webnautes webnautes 2018.08.31 17:50 신고

      라이브러리 패스가 등록되지 않아서 그런듯합니다.

      다음 링크대로 등록해주세요..

      https://stackoverflow.com/a/40327731

  17. KHJ 2018.09.06 16:50 신고

    질문이 있습니다.

    위 과정을 차례대로 진행 하였고 무난하게 성공하였는데

    /usr/local/share/OpenCV/samples/ 경로에 python 만 있고, 사진처럼 다양한 예제들이 존재하질 않습니다.

    어떻게 해야 하나요 ?

    • webnautes webnautes 2018.09.06 17:10 신고

      컴파일시 사용한 소스코드 OpenCV 폴더안에 samples 폴더가 존재합니다.

    • KHJ 2018.09.06 19:19 신고

      아 감사합니다. 이번엔 예제를 실행 해봤는데 아래와 같은 오류가 나타납니다.

      rhkrgudwh@ubuntu:~/opencv/opencv-3.4.0/samples/cpp$ ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml " --scale=1.3
      Video capturing has been started ...
      select timeout
      select timeout
      OpenCV Error: Assertion failed (total() == 0 || data != __null) in Mat, file /home/rhkrgudwh/opencv/opencv-3.4.0/modules/core/include/opencv2/core/mat.inl.hpp, line 500
      terminate called after throwing an instance of 'cv::Exception'
      what(): /home/rhkrgudwh/opencv/opencv-3.4.0/modules/core/include/opencv2/core/mat.inl.hpp:500: error: (-215) total() == 0 || data != __null in function Mat

      Aborted (core dumped)

      웹캠 연결도 확인 했는데 무슨 문제일까요 .. ?

    • webnautes webnautes 2018.09.06 22:44 신고

      CPP 예제도 실행시켜 보세요...
      웹캠을 바꾸어 볼 필요도 있는 듯합니다.

    • KHJ 2018.09.09 18:22 신고

      선생님 블로그의 "OpenCV 3.x 예제 - 웹캠에서 캡처한 영상을 동영상 파일로 저장하기" 코드를 따라 해봤는데,
      다른 코드도 그렇고 select tiemout 오류가 뜨면서 안됩니다.ㅠ

      카메라 자체에 문제가 있을까 싶어서 로지텍 사이트에서 카메라를 실행시키는 소프트웨어를 다운받아 해보았는데 잘 됩니다.

      현재 실행환경이 vmware의 우분투 환경인데 Cheese를 실행시켜도 검은 화면만 나오고 있습니다.

      혹시 이 문제에 대한 해결방법도 아시는지요 ..

  18. 왜안대징 2018.09.09 12:32 신고

    [ 63%] Generating src/moc_window_QT.cxx
    moc: Cannot open options file specified with @
    Usage: moc [options] <header-file>
    -o<file> write output to file rather than stdout
    -I<dir> add dir to the include path for header files
    -E preprocess only; do not generate meta object code
    -D<macro>[=<def>] define macro, with optional definition
    -U<macro> undefine macro
    -i do not generate an #include statement
    -p<path> path prefix for included file
    -f[<file>] force #include, optional file name
    -nn do not display notes
    -nw do not display warnings
    @<file> read additional options from file
    -v display version of moc
    modules/highgui/CMakeFiles/opencv_highgui.dir/build.make:62: recipe for target 'modules/highgui/src/moc_window_QT.cxx' failed
    make[2]: *** [modules/highgui/src/moc_window_QT.cxx] Error 1
    CMakeFiles/Makefile2:4673: recipe for target 'modules/highgui/CMakeFiles/opencv_highgui.dir/all' failed
    make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    이렇게 오류가뜨고
    아래 이런오류가 또뜹니다.
    [ 67%] Built target opencv_dnn
    Makefile:160: recipe for target 'all' failed
    make: *** [all] Error 2

    그다음 cmake install. 하면
    [ 63%] Generating src/moc_window_QT.cxx
    moc: Cannot open options file specified with @
    Usage: moc [options] <header-file>
    -o<file> write output to file rather than stdout
    -I<dir> add dir to the include path for header files
    -E preprocess only; do not generate meta object code
    -D<macro>[=<def>] define macro, with optional definition
    -U<macro> undefine macro
    -i do not generate an #include statement
    -p<path> path prefix for included file
    -f[<file>] force #include, optional file name
    -nn do not display notes
    -nw do not display warnings
    @<file> read additional options from file
    -v display version of moc
    modules/highgui/CMakeFiles/opencv_highgui.dir/build.make:62: recipe for target 'modules/highgui/src/moc_window_QT.cxx' failed
    make[2]: *** [modules/highgui/src/moc_window_QT.cxx] Error 1
    CMakeFiles/Makefile2:4673: recipe for target 'modules/highgui/CMakeFiles/opencv_highgui.dir/all' failed
    make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
    Makefile:160: recipe for target 'all' failed
    make: *** [all] Error 2
    다시 이런오류가 뜨는데
    해결방법좀 알려주시면 감사합니다요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ

    • webnautes webnautes 2018.09.09 15:41 신고

      에러가 발생한 Qt 대신에 Gtk를 사용하도록 해보세요.

      우선 다음 패키지들을 설치해줍니다.

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


      cmake 실행시 다음 옵션을 변경합니다.

      변경 전
      -D WITH_QT=ON \

      변경 후
      -D WITH_QT=OFF \
      -D WITH_GTK=ON \

  19. 짧은한줄 2018.09.16 23:13 신고

    혹시 저와 같은 분이 계실까 하여 댓글로 남깁니다.
    g++ -o facedetect facedetect.cpp $(pkg-config --libs --cflags opencv) 실행시
    /usr/bin/ld: warning: libicui18n.so.56, needed by //media/ark/sub/ProgramFiles/Qt/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: libicuuc.so.56, needed by //media/ark/sub/ProgramFiles/Qt/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: libicudata.so.56, needed by //media/ark/sub/ProgramFiles/Qt/5.10.0/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
    //media/ark/sub/ProgramFiles/Qt/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `u_strToLower_56'
    //media/ark/sub/ProgramFiles/Qt/5.10.0/gcc_64/lib/libQt5Core.so.5: undefined reference to `ucnv_getStandardName_56'
    식으로 에러 메시지를 뜨는 경우.

    Qt path를 변경또는 추가합니다.

    운영자님이 댓글에 https://stackoverflow.com/questions/29455836/linkage-against-libqt5core/40327731#40327731
    추가해주셨는데 Qt가 설치된 경로(개인PC마다 다 다른데 제경우는 /media/ark/sub/ProgramFiles/Qt/5.10.0/gcc_64/lib 였습니다)를 추가해주시면 컴파일 에러는 해결됩니다.
    실행시 추가되는 옵션에 대한 설명두 남겨 보고 싶었는데 아직 몰라서 나중에 찾아봐야 겠네요 ㅠㅠ

    ps. 처음 접하실때 저와 같이 단순하게 복붙을 한번 해보고 오류 뜨시는 분이 계실까봐서 남겨봅니다.

  20. plzhelpme 2018.10.10 16:50 신고

    포스팅에 있는 그대로 따라해서 make 까지 진행했습니다.

    그런데 26%쯤에서
    In file included from /home/sanghun/opencv/opencv-3.4.0/modules/stitching/include/opencv2/stitching.hpp:49:0,
    from /home/sanghun/opencv/opencv-3.4.0/modules/stitching/src/precomp.hpp:59,
    from /home/sanghun/opencv/opencv-3.4.0/build/modules/stitching/opencv_stitching_pch_dephelp.cxx:1:
    /home/sanghun/opencv/opencv-3.4.0/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:42: fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
    compilation terminated.
    modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/build.make:62: recipe for target 'modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/opencv_stitching_pch_dephelp.cxx.o' failed
    make[2]: *** [modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/opencv_stitching_pch_dephelp.cxx.o] Error 1
    CMakeFiles/Makefile2:7780: recipe for target 'modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/all' failed
    make[1]: *** [modules/stitching/CMakeFiles/opencv_stitching_pch_dephelp.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    ...
    Makefile:162: recipe for target 'all' failed
    make: *** [all] Error 2
    이렇게 종료됩니다.

    해결방법이 있을까요?

    • webnautes webnautes 2018.10.10 19:23 신고

      CUDA 옵션이 활성화되서 에러가 났네요.

      다음처럼 끄는 옵션을 추가하여 진행하세요.

      -D WITH_CUDA=OFF

  21. 다됨 2018.10.11 17:49 신고

    넘넘 고맙다냥!

+ Recent posts

티스토리 툴바