반응형

 

OpenCV 4.5.1와 opencv_contrib(extra modules)를 컴파일하여 Raspberry Pi 4에 설치하는 방법을 다룹니다. Raspberry Pi 3에서도 동일하게 동작합니다. 




1. 기존 OpenCV 버전 제거
2. 기존 설치된 패키지 업그레이드
3. OpenCV 컴파일 전 필요한 패키지 설치
4. OpenCV 설정과 컴파일 및 설치
5. OpenCV 설치 결과 확인
    5.1. C/C++
    5.2. Python



2016. 5.  4    최초작성

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2021.  2. 19   Raspberry Pi 4에서 진행

2021. 11. 22   최종작성 - 2021년 10월 30일에 릴리즈된 Raspberry Pi OS 와 OpenCV 4.5.1

                       Raspberry Pi OS에서 Python 2를 지원하지 않음. 

                       OpenCV 4.5.4로 진행하다가 에러가 나서 다시 4.5.1로 진행



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

OpenCV의 nonfree 모듈을 사용해야 할 경우에는 컴파일을 해야 합니다.  

 

pip3 install opencv-contrib-python





2021년 10월 30일에 릴리즈된 Raspberry Pi OS 와 OpenCV 4.5.1을 사용했습니다.
사용한 버전과 다른 것을 사용하면 예기치 못한 문제가 발생할 수 있습니다. 

OpenCV를 컴파일하기 위해서는 최소 16G Micro SD 카드를 사용해야 합니다.

포스팅은 라즈비안 초기 이미지부터 진행하기 때문에 상황이 다른 경우에는 모두  대처하기가 힘든 점을 감안해주세요.




1. 기존 OpenCV 버전 제거 

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



1-2. 아래처럼 보이면 OpenCV 이전 버전이 설치안되어 있는 상태입니다. 2장을 진행하세요. 

 

pi@raspberrypi:~ $ 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 이전 버전이 설치되어 있는 경우에는 OpenCV  버전이 출력됩니다.

 

pi@raspberrypi:~ $  pkg-config --modversion opencv

2.4.9.1



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

 

pi@raspberrypi:~ $ sudo apt-get purge  libopencv* python-opencv

pi@raspberrypi:~ $ sudo apt-get autoremove




1-3. 컴파일하여 설치한 경우 다음처럼 OpenCV 버전을 확인할 수 있습니다. 

 

pi@raspberrypi:~ $ pkg-config --modversion opencv

3.4.2



또는

 

pi@raspberrypi:~ $ pkg-config --modversion opencv4

4.5.1



다음 명령으로 기존에 설치된 opencv 라이브러리를 삭제합니다. 

 

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




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

 

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

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



2-2. 기존에 설치된 패키지의 새로운 버전이 저장소에 있다면 패키지 리스트를 업데이트합니다. 

여기에서 에러가 난다면 앞에서 추가한 주소를 다른 곳으로 변경해보세요. 

 

 pi@raspberrypi:~ $ sudo apt update 



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

 

pi@raspberrypi:~ $ sudo apt upgrade



2-2, 2-3에서 apt 명령대신 apt-get 명령을 사용하면 에러가 나니 주의하세요.



2-4. 재부팅해줍니다. 

 

pi@raspberrypi:~ $ sudo reboot



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

3-1. OpenCV를 컴파일하는데 필요한 패키지들을 설치합니다. 

일부 패키지는 배포된 Raspbian 이미지에 이미 포함되어 있는 경우도 있습니다.

또는 다른 패키지 설치시 같이 설치되기도 하지만 필요한 패키지들이라 언급하도록 하겠습니다. 



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

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

 

$ sudo apt install build-essential cmake



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

 

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



3-4. 특정 코덱의 비디오 파일/스트리밍을 읽어오거나 기록하기 위해 필요한 FFmpeg 관련 패키지들입니다.

 

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



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

 

$ sudo apt install libv4l-dev v4l-utils



3-6. 특정 코덱의 비디오 파일/스트리밍을 읽어오거나 기록하기 위해 필요한 GStreamer 관련 패키지들입니다.

 

$ sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly



3-7. OpenCV에서는 highgui 모듈을 사용하여 자체적으로 윈도우 생성하여 이미지나 영상을 보여줍니다.  

윈도우 생성 등의 GUI를 위해 gtk 또는 qt를 선택해서 사용가능합니다.  본 글에서는  gtk2를 사용합니다. 

 

$ sudo apt install libgtk2.0-dev



그외 선택 가능한 패키지는 다음과 같습니다. QT를 사용하려면 cmake 옵션에 WITH_GTK 대신에 WITH_QT를 추가해야 합니다. 

 

libgtk-3-dev

libqt4-dev

libqt5-dev



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

 

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



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

 

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



3-10. python2.7-dev와 python3-dev 패키지는 파이썬을 위한 헤더파일과 라이브러리가 포함된  패키지들입니다. 

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

 

$ sudo apt install python3-dev python3-numpy



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

 

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

 

pi@raspberrypi:~ $ mkdir opencv

pi@raspberrypi:~ $ cd opencv

pi@raspberrypi:~/opencv $



4-2. OpenCV 4.5.1 소스코드를 다운로드 받아 압축을 풀어줍니다.

 

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

$ unzip opencv.zip



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

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

 

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

$ unzip opencv_contrib.zip



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

 

pi@raspberrypi:~/opencv $  ls -d */

opencv-4.5.1  opencv_contrib-4.5.1



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

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

 

pi@raspberrypi:~/opencv $  cd opencv-4.5.1

pi@raspberrypi:~/opencv/opencv-4.5.1 $  mkdir build

pi@raspberrypi:~/opencv/opencv-4.5.1 $  cd build

pi@raspberrypi:~/opencv/opencv-4.5.1/build $  




4-6. cmake를 사용하여 OpenCV 컴파일 설정을 해줍니다.  복사해서 터미널에 붙여넣기 해주면 됩니다. 

 

다음 옵션은 빌드할 OpenCV 버전에 맞추어 아래 경로중 “4.5.1” 부분을 변경하세요. 

-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.1/modules 

 

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 ENABLE_NEON=ON -D ENABLE_VFPV3=ON -D WITH_QT=OFF -D WITH_GTK=ON -D WITH_OPENGL=ON -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.1/modules -D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_XINE=ON -D ENABLE_PRECOMPILED_HEADERS=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_GENERATE_PKGCONFIG=ON ../



4-7. 다음처럼 cmake 실행 중에  추가적인 다운로드가  있습니다.  

라즈베리파이에 인터넷이 연결된 상태에서 진행하세요..



-- xfeatures2d/boostdesc: Download: boostdesc_bgm.i

-- xfeatures2d/boostdesc: Download: boostdesc_bgm_bi.i

-- xfeatures2d/boostdesc: Download: boostdesc_bgm_hd.i

-- xfeatures2d/boostdesc: Download: boostdesc_binboost_064.i

-- xfeatures2d/boostdesc: Download: boostdesc_binboost_128.i

-- xfeatures2d/boostdesc: Download: boostdesc_binboost_256.i

-- xfeatures2d/boostdesc: Download: boostdesc_lbgm.i

-- xfeatures2d/vgg: Download: vgg_generated_48.i

-- xfeatures2d/vgg: Download: vgg_generated_64.i

-- xfeatures2d/vgg: Download: vgg_generated_80.i

-- xfeatures2d/vgg: Download: vgg_generated_120.i

-- data: Download: face_landmark_model.dat




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

 

-- Configuring done

-- Generating done

-- Build files have been written to: /home/pi/opencv/opencv-4.5.1/build



cmake 실행 결과입니다.

 

python2를 Raspberry Pi OS에서 더 이상 지원하지 않는듯 보입니다. 

 

-- General configuration for OpenCV 4.5.1 =====================================
--   Version control:               unknown
--
--   Extra modules:
--     Location (extra):            /home/pi/opencv/opencv_contrib-4.5.1/modules
--     Version control (extra):     unknown
--
--   Platform:
--     Timestamp:                   2021-11-21T13:06:58Z
--     Host:                        Linux 5.10.63-v7l+ armv7l
--     CMake:                       3.18.4
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/gmake
--     Configuration:               RELEASE
--
--   CPU/HW features:
--     Baseline:                    VFPV3 NEON
--       requested:                 DETECT
--       required:                  VFPV3 NEON
--
--   C/C++:
--     Built as dynamic libs?:      YES
--     C++ standard:                11
--     C++ Compiler:                /usr/bin/c++  (ver 10.2.1)
--     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 -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -mfpu=neon -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 -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -mfpu=neon -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 -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -mfpu=neon -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 -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -mfpu=neon -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 /usr/lib/arm-linux-gnueabihf/libGL.so /usr/lib/arm-linux-gnueabihf/libGLU.so
--     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 mcc 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 julia matlab ovis python2 sfm ts viz
--     Applications:                apps
--     Documentation:               NO
--     Non-free algorithms:         YES
--
--   GUI:
--     GTK+:                        YES (ver 2.24.33)
--       GThread :                  YES (ver 2.66.8)
--       GtkGlExt:                  YES (ver 1.2.0)
--     OpenGL support:              YES (/usr/lib/arm-linux-gnueabihf/libGL.so /usr/lib/arm-linux-gnueabihf/libGLU.so)
--     VTK support:                 NO
--
--   Media I/O:
--     ZLib:                        /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.11)
--     JPEG:                        /usr/lib/arm-linux-gnueabihf/libjpeg.so (ver 62)
--     WEBP:                        build (ver encoder: 0x020f)
--     PNG:                         /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.6.37)
--     TIFF:                        /usr/lib/arm-linux-gnueabihf/libtiff.so (ver 42 / 4.2.0)
--     JPEG 2000:                   build (ver 2.3.1)
--     OpenEXR:                     build (ver 2.3.0)
--     HDR:                         YES
--     SUNRASTER:                   YES
--     PXM:                         YES
--     PFM:                         YES
--
--   Video I/O:
--     FFMPEG:                      YES
--       avcodec:                   YES (58.91.100)
--       avformat:                  YES (58.45.100)
--       avutil:                    YES (56.51.100)
--       swscale:                   YES (5.7.100)
--       avresample:                NO
--     GStreamer:                   YES (1.18.4)
--     v4l/v4l2:                    YES (linux/videodev2.h)
--     Xine:                        YES (ver 1.2.10)
--
--   Parallel framework:            pthreads
--
--   Trace:                         YES (with Intel ITT)
--
--   Other third-party libraries:
--     Lapack:                      NO
--     Eigen:                       YES (ver 3.3.9)
--     Custom HAL:                  YES (carotene (ver 0.0.1))
--     Protobuf:                    build (3.5.1)
--
--   OpenCL:                        YES (no extra features)
--     Include path:                /home/pi/opencv/opencv-4.5.1/3rdparty/include/opencl/1.2
--     Link libraries:              Dynamic load
--
--   Python 3:
--     Interpreter:                 /usr/bin/python3 (ver 3.9.2)
--     Libraries:                   /usr/lib/arm-linux-gnueabihf/libpython3.9.so (ver 3.9.2)
--     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.19.5)
--     install path:                lib/python3.9/dist-packages/cv2/python-3.9
--
--   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/pi/opencv/opencv-4.5.1/build




4-9. 진행하기 전에 스왑(swap) 공간을 늘려줘야 멀티코어를 사용하여 컴파일시 메모리 부족으로 에러가 나지 않습니다.

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



/etc/dphys-swapfile 파일을 열어서 

 

$ sudo nano /etc/dphys-swapfile



CONF_SWAPSIZE  변수값을 100에서 2048로 수정합니다.

Ctrl + O를 눌러 저장하고 Ctrl + X를 눌러 빠져나옵니다. 

 

# set size to absolute value, leaving empty (default) then uses computed value

#   you most likely don't want this, unless you have an special disk situation

# CONF_SWAPSIZE=100

CONF_SWAPSIZE=2048



스왑 서비스 재시작하여 변경된 설정을 반영시켜주면 스왑 크기가 대략 20배가 됩니다. 



현재는 Swap이 100 메가입니다. 

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ free

               total        used        free      shared  buff/cache   available

Mem:         3930860      179928     1751316       36172     1999616     3554424

Swap:         102396           0      102396




스왑 관련 서비스를 재시작합니다.

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ sudo /etc/init.d/dphys-swapfile restart

[ ok ] Restarting dphys-swapfile (via systemctl): dphys-swapfile.service.



Swap이 2048메가로 바뀝니다. 

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ free

               total        used        free      shared  buff/cache   available

Mem:         3930860      181864      109168       36872     3639828     3551788

Swap:        2097148           0     2097148




4-10. 이제 make 명령을 사용하여 컴파일을 시작합니다.  -j4 옵션을 주고 우선 진행합니다.   

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ time make -j4

 

Raspberry Pi 4에 방열판을 달았을 뿐인데 멈춤 없이 진행이 되었습니다. 

66분 걸렸네요. 

 

real    66m51.708s

user    227m4.180s

sys     15m52.754s



Raspberry Pi 3에서 진행했던 결과입니다.

트위터에서 오래 빌드하는 과정에 라즈베리파이3가 과열되어 문제 된다는 말이 보여서 
이번에는 새로 구입한 라즈베리파이3용 냉각팬을 돌리면서 진행했습니다. 

이번에는 에러없이 진행이 되었습니다. 256/60 = 4.2 시간 정도 걸렸네요. 

real    256m37.705s
user    587m51.886s
sys     24m29.895s


다음 링크의 스크립트를 사용하여 빌드 40% 진행했을 때 온도를 측정해보니 다음과 같습니다.
https://www.cyberciti.biz/faq/linux-find-out-raspberry-pi-gpu-and-arm-cpu-temperature-command/

GPU => temp=44.0'C
CPU => 43'C

Raspberry Pi OS 2020년 8월 20일 버전과 OpenCV 4.5.0을 사용했을 때에 문제 없이 완료된 것입니다. 추가로 빌드시 발생하는 열을 냉각시키기위해 냉각팬을 돌렸습니다. 사용한 조합이 다르면 예상치 못한  문제가 생길 수도 있습니다. 



혹, python 라이브러리 빌드하는 부분에서 다음처럼 오랫동안 멈춤 현상이 있는 경우 . Ctrl + C를 눌러 중지하고 




make 명령으로 다시 진행해서 완료하면 됩니다. 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ make




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

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ sudo make install



샘플 코드들은 /usr/local/share/opencv4/samples/ 위치에 복사됩니다. 



 4-12. opencv  라이브러리를 찾을 수 있도록 다음 명령을 실행합니다.

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ sudo ldconfig



4-13. /etc/dphys-swapfile 파일을 열어서 

 

$ sudo nano /etc/dphys-swapfile



CONF_SWAPSIZE  변수값을 다시 100으로 수정합니다.

 

# set size to absolute value, leaving empty (default) then uses computed value

#   you most likely don't want this, unless you have an special disk situation

CONF_SWAPSIZE=100




스왑 서비스 재시작하여 변경된 설정을 반영시켜주면 스왑 크기가 원래대로 돌아옵니다. 

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ sudo /etc/init.d/dphys-swapfile restart

[ ok ] Restarting dphys-swapfile (via systemctl): dphys-swapfile.service.



pi@raspberrypi:~/opencv/opencv-4.5.1/build $ free

               total        used        free      shared  buff/cache   available

Mem:         3930860      181020     2235192       36256     1514648     3556824

Swap:         102396           0      102396



5. OpenCV 설치 결과 확인 

5.1. C/C++

5.1.1. OpenCV 4.x에서는 옵션으로 opencv대신에 opencv4를 사용하면 pkg-config를 사용하여 컴파일할 수 있습니다. 

 

이번에 설치시 OpenCV 4.5.1에서 GStreamer를 디폴트로 사용하게 되었는데 문제가 있어서 수정을 했습니다.  참고로 다음 경고가 나오면서 영상이 보이지 않았습니다.

 

[ WARN:0] global /home/pi/opencv/opencv-4.5.1/modules/videoio/src/cap_gstreamer.cpp (935) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1



현재 위치로 코드를 가져옵니다. 

$ cp  /usr/local/share/opencv4/samples/cpp/videocapture_basic.cpp .



파일을 열어서 다음 부분을 수정합니다. Ctrl + O를 눌러 저장하고  Ctrl + X를 눌러 빠져옵니다. 

$  nano videocapture_basic.cpp

 

int apiID = cv::CAP_V4L2;



빌드합니다. 

 

$ g++ -o videocapture_basic videocapture_basic.cpp $(pkg-config opencv4 --libs --cflags)




5.1.2. 테스트를 하기 위해  필요한 웹캠 또는 Raspberry Pi Camera(pi camera)를  Raspberry Pi에  연결합니다.

 

대부분의 웹캠은 연결후 dmesg | tail 명령어로 해당 웹캠을 확인시 다음처럼 문제 없이 인식이 됩니다. 

인식이 안되면 해당 웹캠을 위한 디바이스 드라이버를 설치해줘야 합니다.

 




다음처럼 /dev/video0 디바이스 파일이 생성되었는지 확인해봅니다.

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ ls /dev/video*

/dev/video0




파이 카메라의 경우에는 다음 명령으로 /dev/video0 장치를 만들어줘야 합니다.

 

sudo modprobe bcm2835-v4l2



자세한 내용은 아래 포스팅을 참고하세요.

 

Raspberry Pi Camera Module( pi camera )를 위해 /dev/video0 생성하는 방법

http://webnautes.tistory.com/1192 



파이 카메라의 경우 추가로 소스코드를 수정해야 합니다. open 함수의 아규먼트를 -1로 해야 정상적으로 동작합니다. 0으로 하면 카메라를 열지 못하고 무한 대기 상태에 빠지게 됩니다. 

 

//cap.open(deviceID + apiID);

cap.open(-1);




5.1.3. 터미널 프로그램으로 MobaXterm을 사용하면 SSH 접속 상태에서 실행해보면 바로 실행 결과를 확인 가능합니다.

(일종의 VNC처럼 동작해서 속도는 느립니다..)

https://mobaxterm.mobatek.net/ 

 



실행시켜보면 웹캠 영상이 보입니다. 

 

$ ./videocapture_basic



실행에 문제가 있는 경우 웹캠을 연결한채 재부팅하고나서 VNC를 사용하여 진행하세요.

 

Raspberry Pi 4를 VNC로 접속하여 원격 제어하는 방법

https://webnautes.tistory.com/549 



5.2. Python

 

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

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



pi@raspberrypi:~/opencv/opencv-4.5.1/build $ python3

Python 3.9.2 (default, Mar 12 2021, 04:06:34)

[GCC 10.2.1 20210110] on linux

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

>>> import cv2

>>> cv2.__version__

'4.5.1'

>>> quit()





5.2.2. 파이 카메라의 경우  도 0 대신에 다음처럼 -1을 사용해야 합니다. 

 

cap = cv.VideoCapture(-1)



 

5.2.3. 예제 코드를 실행해봅니다. 웹캠 영상을 볼 수 있습니다. 



$ python3 /usr/local/share/opencv4/samples/python/video.py



C++때와 똑같은 에러가 나지만 영상은 보이네요

 

[ WARN:0] global /home/pi/opencv/opencv-4.5.1/modules/videoio/src/cap_gstreamer.cpp (935) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1



하지만 C++ 처럼 수정을 해보았습니다. 직접 예제를 작성하면 코드가 더 간단해지지만 

OpenCV에서 있는 것으로 진행해보았습니다. 

 

$ cp /usr/local/share/opencv4/samples/python/video.py .

$ cp /usr/local/share/opencv4/samples/python/tst_scene_render.py .

$ cp /usr/local/share/opencv4/samples/python/common.py .

$ chmod +w video.py



video.py 파일을 열어서 

 

$ nano video.py



188번째 줄을 다음처럼 수정합니다. Ctrl + O로 저장후, Ctrl + X로 종료합니다. 

 

        cap = cv.VideoCapture(source, cv.CAP_V4L2)



실행해봅니다. 경고문 없이 영상이 바로 보입니다. 

 

$ python video.py

 

$ python3 video.py




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

 

pi@raspberrypi:~/opencv/opencv-4.5.1/build $ cd

pi@raspberrypi:~ $ rm -rf opencv



반응형

해보고 확인한 것을 문서화하여 기록합니다.
최소 일주일에 한번 이상 포스트를 하려고 노력중입니다.

부족함이 있지만 도움이 되었으면 합니다.
잘못된 부분이나 개선점을 알려주시면 감사하겠습니다.



포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
시간날때 마다 이전 포스트가 문제 있는지 확인을 해보려고 노력하고 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.


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

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">
  1. 이전 댓글 더보기
  2. thumbnail
    Favicon of https://spreadlinging.tistory.com BlogIcon 우죠

    4-5에서 디렉토리에 들어가는건 됐는데, cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=OFF -D
    을 입력하면
    D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=OFF -D
    CMake Warning:
    No source or binary directory provided. Both will be assumed to be the
    same as the current working directory, but note that this warning will
    become a fatal error in future CMake releases.


    CMake Error: -D must be followed with VAR=VALUE.
    CMake Error: Problem processing arguments. Aborting.
    이러한 에러가 뜨면서 진행이 안돼요.. 어떻게 해야할까요.. ㅠㅠㅠㅠㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.11.07 15:07 신고

      4-6에 있는 명령 전체를 입력해야 하는데 일부만 하셨네요. cmake로 시작하여 ..으로 끝나야 합니다

    • thumbnail
      Favicon of https://spreadlinging.tistory.com BlogIcon 우죠
      2021.11.07 17:02 신고

      아하!!!! 감사합니다!!
      그리고 스왑 변경할 때
      CONF_SWAPSIZE=2048
      을 중간에 입력하고 ^O로 저장했고
      free를 입력해도 변경이 안되서
      sudo /etc/init.d/dphys-swapfile restart
      명령어를 통해 재시작을 하려고하는데
      [....] Restarting dphys-swapfile (via systemctl): dphys-swapfile.serviceJob for dphys-swapfile.service failed because the control process exited with error code.
      See "systemctl status dphys-swapfile.service" and "journalctl -xe" for details.
      failed!
      이렇게 뜨면서 계속 실패해요..

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2021.11.07 17:08 신고

      아래 링크에 따르면 시스템 업데이트를 해보라고 하네요

      https://raspberrypi.stackexchange.com/a/119322

      다음 두 명령을 실행한 후 해보세요


      sudo apt-get update

      sudo apt-get upgrade

    • thumbnail
      Favicon of https://spreadlinging.tistory.com BlogIcon 우죠
      2021.11.07 20:17 신고

      헛 감사합니다! 설치하다가 SD카드 용량이 부족해 더 큰 용량의 카드를 산 후에 다시 해볼 예정입니다! 친절한 답변 감사드립니다! 유튜브도 잘 보고있습니다! 감사합닏!

  3. thumbnail
    Favicon of https://spreadlinging.tistory.com BlogIcon 우죠

    안녕하세요
    그 time make -j4를 입력해서 컴파일을 했는데

    [ 47%] Built target opencv_imgproc
    [ 47%] Linking CXX shared library ../../lib/libopencv_surface_matching.so
    [ 47%] Built target opencv_surface_matching
    make: *** [Makefile:182: all] Error 2

    real 0m49.253s
    user 1m23.825s
    sys 0m3.309s

    이렇게 뜨면서 컴파일이 멈춰요... ㅠㅠㅠ..

  4. thumbnail
    Favicon of https://memorie.tistory.com BlogIcon 기억보단 기록을

    안녕하세요. 한가지 여쭤볼게 있어서 글을 남깁니다.
    작업을 하던 도중 make파일이 없어서 멈춘다 그러는데 해결방법이 있을까요?

  5. thumbnail
    Favicon of https://memorie.tistory.com BlogIcon 기억보단 기록을

    안녕하세요 잘 보고 있습니다.
    4-6을 하다가 bash: -D: command not found라는 오류가 떴습니다.
    무슨 문제일까요 ㅠㅠ

  6. thumbnail
    Bluestream

    좋은 글과 영상 항상 감사드립니다.
    pi@raspberrypi:~/opencv/opencv-4.5.1/build $ time make -j4 여기에서,
    중간에 아래와 같은 에러가 빨강색으로 발생하구요,
    /home/pi/opencv/opencv_contrib-4.5.1/modules/xfeatures2d/src/boostdesc.cpp:654:20: fatal error: boostdesc_bgm.i: No such file or directory
    654 | #include "boostdesc_bgm.i"
    | ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[2]: *** [modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/build.make:113: modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc.cpp.o] Error 1
    make[1]: *** [CMakeFiles/Makefile2:5271: modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    마지막에는,
    ...
    [ 76%] Building CXX object modules/rgbd/CMakeFiles/opencv_rgbd.dir/opencl_kernels_rgbd.cpp.o
    [ 76%] Linking CXX shared library ../../lib/libopencv_video.so
    [ 76%] Built target opencv_video
    [ 76%] Linking CXX shared library ../../lib/libopencv_rgbd.so
    [ 76%] Built target opencv_rgbd
    make: *** [Makefile:182: all] Error 2

    real 88m59.696s
    user 284m49.687s
    sys 15m20.809s
    이렇게 2개의 에러가 발생한 것으로 나오면서 마무리가 됩니다.
    그냥 무시해도 되는 것인지요?
    조언을 부탁드립니다.
    감사합니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.02.09 21:51 신고

      boostdesc_bgm.i 파일이 없다고 에러가 났네요. 이 파일은 포스트 4-7을 보면 다운로드가 되는 파일 들입니다.

      혹시 인터넷을 연결안하고 진행하셨나요?

  7. thumbnail
    Favicon of https://dgtjn8.tistory.com BlogIcon dgtjn8

    안녕하세요. 좋은 글 정말 잘 봤습니다.
    제가 설치를 하고 설치 결과 확인단계에서 python3을 실행시키고 import cv2를 하는데 import가 안되더라구요..
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/home/pi/.local/lib/python3.9/site-packages/cv2/__init__.py", line 8, in <module>
    from .cv2 import *
    ImportError: libhdf5_serial.so.103: cannot open shared object file: No such file or directory
    이런 에러문이 뜹니다. 어떻게 해결해야 할까요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.02.25 13:54 신고

      아래 링크 참고하세요

      https://stackoverflow.com/questions/62433716/how-to-solve-importerror-libhdf5-serial-so-103-cannot-open-shared-object-file

    • thumbnail
      Favicon of https://dgtjn8.tistory.com BlogIcon dgtjn8
      2022.02.25 14:41 신고

      답글 감사합니다.
      스택옵에서 라이브러리를 제거하라는데 어떤 라이브러리를 제거하는건지 알 수 있을까요?
      아니면 제가 pip list로 확인을 해봤는데 opencv-contrib-python 버전이 4.5.5.62로 되어있는데 혹시 버전차이 때문일까요..?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.02.25 14:57 신고

      답변 아래쪽에 있는 댓글에 적힌대로 해보세요. opencv까지 삭제할 필요는 없나봅니다

    • thumbnail
      Favicon of https://dgtjn8.tistory.com BlogIcon dgtjn8
      2022.02.25 15:24 신고

      답글과 답글 아래쪽에 있는 댓글로도 해봤는데 numpy는 import가 되도 cv2는 import가 안되네요..ㅠㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.02.25 15:46 신고

      opencv를 다시 설치해보세요

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.02.25 15:47 신고

      pip로 설치하면 됩니다

  8. thumbnail
    Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑

    안녕하세요. 파이썬 하면서 많이 보고 배우고있습니다.
    제가 라즈베리파이에 파이썬 및 opencv를 설명해 주신대로 설치를 하였습니다.
    라즈베리파이 터미널 창에서
    nano test.py를 만들어서 python test.py로 실행을 하였는데 다음과 같은 오류가 발생하였습니다.
    Traceback (most recent call last):
    File "test.py", line 1, in <module>
    import cv2
    ModuleNotFoundError : No module named 'cv2'
    이런 에러문이 떳습니다.. 어떻게 해결해야할까요?

  9. thumbnail
    Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑

    pip install opencv-contrib-python 하면 되는건가요 ?

  10. thumbnail
    Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑

    말씀하신대로 pip install opencv-contrib-python 을 하였는데
    Defaulting to user installation because normal site-packages is not writeable
    Looking in indexes : https://pypi.org/simple, https://www.piwheels.org/simple
    Requirement already satisfied: opencv-contrib-python in /usr/local/lib/python3.9/dist-[ackages (4.5.3.56)
    Requirement already satisfied : numpy>=1.19.3 in /usr/lib/python3/dist-packages (from opencv-contrib-python) (1.19.5)
    라고 뜬 후 다시 python test.py하였는데도 같은 에러가 뜨네요..ㅠㅠ

  11. thumbnail
    Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑

    말씀하신대로 미니콘다 설치 후 다시 python test.py를 하여 실행시켰는데 동일한 오류가 생겼습니다.
    Traceback (most recent call last):
    File "test.py", line 1, in <module>
    import cv2
    ModuleNotFoundError : No module named 'cv2'
    어떻게 해결해야할까요..?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 16:05 신고

      실행할때 사용한 파이썬과 pip로 설치한 파이썬이 같지 않아 보이네요

      miniconda를 사용하면 제한된 파이썬 환경을 만들어줍니다.

      가상환경을 활성화한상태에서 pip를 사용하여 설치후 python로 다시 실행해보세요

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 16:42 신고

      미니콘다 설치 후
      conda create -n cam python=3.7 명령어를 통해 가상환경을 만들려고했는데 아래와 같은 오류가 떳습니다.
      Error: No packages found in current linux-armv7l channels matching: python3.7*
      Did you mean one of these?
      python
      You can search for this package on anaconda.org with
      anaconda search -t conda python 3.7*
      You may need to install the anaconda-client command line client with
      conda install anaconda-client
      이 에러를 확인후 저의 파이썬 버전을 확인해 본 결과 3.8로 떳습니다. 그래서 위 명령어중 python3.7을 3.8로 변경 후 실행하여도 오류메세지가 똑같이 뜹니다.
      미니콘다를 설치 후 미니콘다 버전을 확인해 보니 3.16.0이었습니다. 미니콘다가 제대로 설치가 되지않은건가요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 16:47 신고

      armv7을 지원하지 않는 다는 에러네요

      가상환경없이 pip3를 사용하여 설치후 python3에서 cv2모듈이 import 되는지 확인해보세요

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 16:56 신고

      pip3 install opencv-contrib-python을 사용하여 pip3를 설치한 후
      python test.py를 했는데
      Traceback (most recent call last):
      File "test.py", line 1, in <module>
      import cv2
      ModuleNotFoundError : No module named 'cv2'
      위와 동일한 에러가 자꾸 뜨네요ㅠㅠ 어떻게해야할까요..

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 16:57 신고

      명령어를 python이 아니라 python3를 사용해보세요

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 16:59 신고

      python3 test.py를 했는데 위와 동일한 에러가 발생했습니다ㅠㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 17:00 신고

      여러버전의 파이썬이 있을때 나타나는 현상입니다. .

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 17:02 신고

      다른 버전의 파이썬을 모두 지우면 되나요? 혹시 어떻게 지우는지 알려주실수있나요.. 라즈베리파이 및 파이썬 초보자입니다ㅠㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 17:05 신고

      파이썬 가상환경에서 진행해보는게 빠를듯합니다. miniconda 또는 anaconda를 사용하면 기존 파이썬과 분리된 가상환경에서 원하는 파이썬만 사용할수 있거든요.

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 17:22 신고

      가상환경에서 파이썬 오픈cv를 다시 설치해야하나요?
      가상환경에 들어와서 nano test.py를 열어 코딩을 한 후 python test.py를 하니 위와 동일한 오류메세지가 뜨네요...

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 17:23 신고

      python3를 이용해도 똑같습니다

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 17:30 신고

      가상환경을 활성화한후 opencv를 설치해야 합니다. 설치후 pip list명령으로 opencv가 목록에 있나보세요

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 17:32 신고

      pip list 명령을 수행한 결과
      Package version
      ------------------------
      pip 20.3.4
      pkg-resource 0.0.0
      setuptools 44.1.1
      wheel 0.34.2
      라고 뜹니다

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 17:43 신고

      가상환셩이라면 pip로 설치후 pip list에서 opencv 패키지가 보여야 합니다. 사용방법을 다시 확인해보세요

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 17:44 신고

      가상환경입니다

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 17:48 신고

      가상환경에서 pip install opencv-contrib-python을 다운받는 상황에서
      Building wheel for opencv-contrib-python (pyproject.toml)...
      이부분에서 넘어가지 않는데 혹시 뭐 때문에 그런지 알 수 있을까요?

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 17:49 신고

      pip install --upgrade pip setuptools wheel을 이용하여 wheel을 업그레이드 했습니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 17:49 신고

      로그가 출력되지 않는한 원인을 찾기 힘듭니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 17:50 신고

      번거롭더라도 pc에서 문제없이 진행되는거 확인후 라즈베리파이에서 다시 해보세요

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 17:59 신고

      pip install을 이용하여 오픈cv, 오픈cv-contrib을 설치하였습니다.
      pip list 한 결과
      Package Version
      -----------------------
      numpy 1.22.3
      opencv-contrib-python 4.5.3.56
      opencv-python 4.5.5.64
      pip 22.0.4
      pkg_resource 0.0.0
      setuptools 61.2.0
      wheel 0.37.1
      이 뜨고 python test.py를 한결과 위와 똑같은 에러 메세지가 뜹니다..

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 18:04 신고

      가상환경의 pip인가요? 그렇다면 제대로 인식이 된거라 보입니다. 가상환경 python에서 cv2모듈이 안불러지는건 알수 없네요. 뭔가 잘못된점이 있는듯 보이는데 알기 힘든 상황같습니다. 파이썬이 여러개 설치되었다고 밖에 생각되지 않네요

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.29 18:06 신고

      네 가상환경입니다. 가상환경에서는 독립적인 파이썬을 사용하는거 아닌가요? 어떻게 하면 cv2 모듈을 불러올수가있을까요ㅠㅠㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 18:07 신고

      conda list를 사용하면 설치된 파이썬 목록을 볼수 있을겁니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.29 18:09 신고

      현재 터미널 맨앞에 괄호가 보이고 안에 가상환경 이름이 보이나요? conda activate tf2로 했다면 (tf2)가 보여야 합니다

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.30 08:54 신고

      네 virtualenv를 사용하여 (env1) pi@raspberrypi: ~$입니다

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.30 08:55 신고

      conda list를 하여 확인해본결과 파이썬이 3.4.3 이 설치되어있습니다.

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.30 08:56 신고

      virtualenv를 사용하여 opencv를 설치하여 사용한 기록을 올린 글이 있나 구글에서 찾아보는게 도움이 될겁니다

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.30 09:09 신고

      python3를 이용해 다시 해보니 정상적으로 작동합니다! 많은 시간 뺏어서 죄송하고 너무 친절하게 설명해주셔서 감사합니다!
      앞으로도 잘 보고 배울게요!

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.30 09:13 신고

      다행이네요

  12. thumbnail
    Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑

    라즈베리파이를 이용하여 파이썬을하다가 아까전에는 가상환경에서 python3를 이용하여 컴파일을 하였을 때 문제없이 정상 작동을 했는데 라즈베리파이를 reboot 후 다시 가상환경에 들어가 python3를 이용하여 컴파일을 진행하였는데 다음과 같은 오류가 발생하였습니다.
    [ WARN:0] global /tmp/pip-wheel-ulre47vq/opencv-contrib-python_edf6b92c2aed48ceb1cae55c8d5542a6/opencv/modules/videoio/src/cap_v4l.cpp (1001) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout.

    [ERROR:0] global /tmp/pip-wheel-ulre47vq/opencv-contrib-python_edf6b92c2aed48ceb1cae55c8d5542a6/opencv/modules/highgui/src/window_gtk.cpp (1344) cvDestroyWindow OpenCV/GTK: Can't destroy non-registered window: 'CAM'
    혹시 이 오류가 뜻하는 바가 무슨 의미인지 알 수 있나요? 어떻게 해결해야 할까요..? 다시 질문드려 죄송합니다ㅠㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.30 18:40 신고

      첫번째 것은 경고니 무시해도 되지만 두번째 것은 에러메시지를 구글에서 검색해보세여

      윈도우를 생성하지 않은 상태에서 DestroyWindow를 호출했다는 의미 같네요

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.31 08:54 신고

      근데 제가 소스코드에서 imshow('CAM', frame) 을 이용하여 창을 생성하고 마지막에 cv2.DestroyWindow('CAM')을 하였는데 저런 에러가 발생했습니다.. CAM이라는 창이 만들어지지 않은 채 에러가 뜨네요..

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.31 09:00 신고

      DestroyWindow가 먼저 호출된걸로 보이네요

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.31 09:04 신고

      import cv2



      cap = cv2.VideoCapture(-1)



      if not cap.isOpened():

      print("Camera open failed")



      cap.set(3, 640)

      cap.set(4, 480)





      while True:

      ret, frame = cap.read()

      if ret == False:

      break



      cv2.imshow('CAM',frame)



      if cv2.waitKey(1) & 0xFF ==27:

      break



      cap.release()

      cv2.destroyWindow('CAM')
      제 소스코드입니다. cv2.destroyWindow('CAM')을 마지막에 작성했는데 이럽니다ㅠㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.31 09:05 신고

      영상이 화면에 보였나요? 안보여지고 종료되었다면 에러가 날만하넹ㅅ

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.31 09:07 신고

      영상이 안보이고 에러가 났습니다..CAM이라는 윈도우창이 만들어지지 않은 채 에러가 났습니다..

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.03.31 09:07 신고

      카메라에서 영상이 안들어오는 원인을 찾아보세요.

    • thumbnail
      Favicon of https://yellowyelllow.tistory.com BlogIcon 노랑이랑노랑
      2022.03.31 09:12 신고

      네 알겠습니다 매번 너무 감사합니다ㅠㅠ

  13. thumbnail
    Favicon of https://choimho10.tistory.com BlogIcon minho10

    라즈베리파이64bit os에서 opencv4.5.1버전 설치중 cmake부분에서 에러가 뜹니다 혹시 알려주실수 있을까요?
    -- Detected processor: aarch64
    -- Looking for ccache - not found
    CMake Error at cmake/OpenCVCompilerOptimizations.cmake:546 (message):
    Required baseline optimization is not supported: VFPV3
    (CPU_BASELINE_REQUIRE=;VFPV3;NEON)
    Call Stack (most recent call first):
    cmake/OpenCVCompilerOptions.cmake:293 (include)
    CMakeLists.txt:614 (include)


    -- Found ZLIB: /usr/lib/aarch64-linux-gnu/libz.so (found suitable version "1.2.11", minimum required is "1.2.3")
    Cleaning INTERNAL cached variable: JPEG_LIBRARY
    Cleaning INTERNAL cached variable: JPEG_INCLUDE_DIR
    -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)
    -- libjpeg-turbo: VERSION = 2.0.6, BUILD = opencv-4.5.1-libjpeg-turbo
    Cleaning INTERNAL cached variable: TIFF_LIBRARY
    Cleaning INTERNAL cached variable: TIFF_INCLUDE_DIR
    -- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
    Cleaning INTERNAL cached variable: WEBP_LIBRARY
    Cleaning INTERNAL cached variable: WEBP_INCLUDE_DIR
    -- Could NOT find OpenJPEG (minimal suitable version: 2.0, recommended version >= 2.3.1). OpenJPEG will be built from sources
    -- OpenJPEG: VERSION = 2.3.1, BUILD = opencv-4.5.1-openjp2-2.3.1
    -- OpenJPEG libraries will be built from sources: libopenjp2 (version "2.3.1")
    -- Found ZLIB: /usr/lib/aarch64-linux-gnu/libz.so (found version "1.2.11")
    -- Checking for module 'gtk+-3.0'
    -- No package 'gtk+-3.0' found
    -- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
    -- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
    -- Could NOT find Atlas (missing: Atlas_CLAPACK_INCLUDE_DIR)
    -- A library with LAPACK API found.
    -- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
    -- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
    -- OpenCV Python: during development append to PYTHONPATH: /home/pi/opencv/opencv-4.5.1/build/python_loader
    -- Checking for module 'libavresample'
    -- No package 'libavresample' found
    -- Caffe: NO
    -- Protobuf: NO
    -- Glog: NO
    -- freetype2: YES (ver 23.4.17)
    -- harfbuzz: YES (ver 2.7.4)
    -- Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS) (found version "")
    -- Julia not found. Not compiling Julia Bindings.
    -- Module opencv_ovis disabled because OGRE3D was not found
    -- No preference for use of exported gflags CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported gflags CMake configuration if available.
    -- Failed to find installed gflags CMake configuration, searching for gflags build directories exported with CMake.
    -- Failed to find gflags - Failed to find an installed/exported CMake configuration for gflags, will perform search for installed gflags components.
    -- Failed to find gflags - Could not find gflags include directory, set GFLAGS_INCLUDE_DIR to directory containing gflags/gflags.h
    -- Failed to find glog - Could not find glog include directory, set GLOG_INCLUDE_DIR to directory containing glog/logging.h
    -- Module opencv_sfm disabled because the following dependencies are not found: Glog/Gflags
    -- Checking for module 'tesseract'
    -- No package 'tesseract' found
    -- Tesseract: NO
    -- Allocator metrics storage type: 'int'
    -- Excluding from source files list: modules/imgproc/src/corner.avx.cpp
    -- Excluding from source files list: modules/imgproc/src/imgwarp.avx2.cpp
    -- Excluding from source files list: modules/imgproc/src/imgwarp.sse4_1.cpp
    -- Excluding from source files list: modules/imgproc/src/resize.avx2.cpp
    -- Excluding from source files list: modules/imgproc/src/resize.sse4_1.cpp
    -- Registering hook 'INIT_MODULE_SOURCES_opencv_dnn': /home/pi/opencv/opencv-4.5.1/modules/dnn/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake
    -- opencv_dnn: filter out cuda4dnn source code
    -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx.cpp
    -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx2.cpp
    -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx512_skx.cpp
    -- Excluding from source files list: modules/features2d/src/fast.avx2.cpp
    -- rgbd: CERES support is disabled. Ceres Solver is Required for Posegraph optimization
    --
    -- General configuration for OpenCV 4.5.1 =====================================
    -- Version control: unknown
    --
    -- Extra modules:
    -- Location (extra): /home/pi/opencv/opencv_contrib-4.5.1/modules
    -- Version control (extra): unknown
    --
    -- Platform:
    -- Timestamp: 2022-04-05T09:54:40Z
    -- Host: Linux 5.15.32-v8+ aarch64
    -- CMake: 3.18.4
    -- CMake generator: Unix Makefiles
    -- CMake build tool: /usr/bin/gmake
    -- Configuration: RELEASE
    --
    -- CPU/HW features:
    -- Baseline: NEON FP16
    -- required: VFPV3 NEON
    --
    -- C/C++:
    -- Built as dynamic libs?: YES
    -- C++ standard: 11
    -- C++ Compiler: /usr/bin/c++ (ver 10.2.1)
    -- 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 -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -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 -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -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 -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -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 -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -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 /usr/lib/aarch64-linux-gnu/libGL.so /usr/lib/aarch64-linux-gnu/libGLU.so
    -- 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 mcc 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 julia matlab ovis python2 sfm ts viz
    -- Applications: apps
    -- Documentation: NO
    -- Non-free algorithms: YES
    --
    -- GUI:
    -- GTK+: YES (ver 2.24.33)
    -- GThread : YES (ver 2.66.8)
    -- GtkGlExt: YES (ver 1.2.0)
    -- OpenGL support: YES (/usr/lib/aarch64-linux-gnu/libGL.so /usr/lib/aarch64-linux-gnu/libGLU.so)
    -- VTK support: NO
    --
    -- Media I/O:
    -- ZLib: /usr/lib/aarch64-linux-gnu/libz.so (ver 1.2.11)
    -- JPEG: libjpeg-turbo (ver 2.0.6-62)
    -- WEBP: build (ver encoder: 0x020f)
    -- PNG: /usr/lib/aarch64-linux-gnu/libpng.so (ver 1.6.37)
    -- TIFF: build (ver 42 - 4.0.10)
    -- JPEG 2000: build (ver 2.3.1)
    -- OpenEXR: build (ver 2.3.0)
    -- HDR: YES
    -- SUNRASTER: YES
    -- PXM: YES
    -- PFM: YES
    --
    -- Video I/O:
    -- FFMPEG: YES
    -- avcodec: YES (58.91.100)
    -- avformat: YES (58.45.100)
    -- avutil: YES (56.51.100)
    -- swscale: YES (5.7.100)
    -- avresample: NO
    -- GStreamer: YES (1.18.4)
    -- v4l/v4l2: YES (linux/videodev2.h)
    -- Xine: YES (ver 1.2.10)
    --
    -- Parallel framework: pthreads
    --
    -- Trace: YES (with Intel ITT)
    --
    -- Other third-party libraries:
    -- Lapack: NO
    -- Eigen: YES (ver 3.3.9)
    -- Custom HAL: YES (carotene (ver 0.0.1))
    -- Protobuf: build (3.5.1)
    --
    -- OpenCL: YES (no extra features)
    -- Include path: /home/pi/opencv/opencv-4.5.1/3rdparty/include/opencl/1.2
    -- Link libraries: Dynamic load
    --
    -- Python 3:
    -- Interpreter: /usr/bin/python3 (ver 3.9.2)
    -- Libraries: /usr/lib/aarch64-linux-gnu/libpython3.9.so (ver 3.9.2)
    -- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.19.5)
    -- install path: lib/python3.9/dist-packages/cv2/python-3.9
    --
    -- Python (for build): /usr/bin/python3
    --
    -- Java:
    -- ant: NO
    -- JNI: NO
    -- Java wrappers: NO
    -- Java tests: NO
    --
    -- Install to: /usr/local
    -- -----------------------------------------------------------------
    --
    -- Configuring incomplete, errors occurred!
    See also "/home/pi/opencv/opencv-4.5.1/build/CMakeFiles/CMakeOutput.log".
    See also "/home/pi/opencv/opencv-4.5.1/build/CMakeFiles/CMakeError.log".

  14. thumbnail
    Favicon of https://choimho10.tistory.com BlogIcon minho10

    라즈베리파이64bit os에서 opencv4.5.1버전 설치중 cmake부분에서 에러가 뜹니다 혹시 알려주실수 있을까요?
    -- Detected processor: aarch64
    -- Looking for ccache - not found
    CMake Error at cmake/OpenCVCompilerOptimizations.cmake:546 (message):
    Required baseline optimization is not supported: VFPV3
    (CPU_BASELINE_REQUIRE=;VFPV3;NEON)
    Call Stack (most recent call first):
    cmake/OpenCVCompilerOptions.cmake:293 (include)
    CMakeLists.txt:614 (include)


    -- Found ZLIB: /usr/lib/aarch64-linux-gnu/libz.so (found suitable version "1.2.11", minimum required is "1.2.3")
    Cleaning INTERNAL cached variable: JPEG_LIBRARY
    Cleaning INTERNAL cached variable: JPEG_INCLUDE_DIR
    -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)
    -- libjpeg-turbo: VERSION = 2.0.6, BUILD = opencv-4.5.1-libjpeg-turbo
    Cleaning INTERNAL cached variable: TIFF_LIBRARY
    Cleaning INTERNAL cached variable: TIFF_INCLUDE_DIR
    -- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
    Cleaning INTERNAL cached variable: WEBP_LIBRARY
    Cleaning INTERNAL cached variable: WEBP_INCLUDE_DIR
    -- Could NOT find OpenJPEG (minimal suitable version: 2.0, recommended version >= 2.3.1). OpenJPEG will be built from sources
    -- OpenJPEG: VERSION = 2.3.1, BUILD = opencv-4.5.1-openjp2-2.3.1
    -- OpenJPEG libraries will be built from sources: libopenjp2 (version "2.3.1")
    -- Found ZLIB: /usr/lib/aarch64-linux-gnu/libz.so (found version "1.2.11")
    -- Checking for module 'gtk+-3.0'
    -- No package 'gtk+-3.0' found
    -- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
    -- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
    -- Could NOT find Atlas (missing: Atlas_CLAPACK_INCLUDE_DIR)
    -- A library with LAPACK API found.
    -- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
    -- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
    -- OpenCV Python: during development append to PYTHONPATH: /home/pi/opencv/opencv-4.5.1/build/python_loader
    -- Checking for module 'libavresample'
    -- No package 'libavresample' found
    -- Caffe: NO
    -- Protobuf: NO
    -- Glog: NO
    -- freetype2: YES (ver 23.4.17)
    -- harfbuzz: YES (ver 2.7.4)
    -- Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS) (found version "")
    -- Julia not found. Not compiling Julia Bindings.
    -- Module opencv_ovis disabled because OGRE3D was not found
    -- No preference for use of exported gflags CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported gflags CMake configuration if available.
    -- Failed to find installed gflags CMake configuration, searching for gflags build directories exported with CMake.
    -- Failed to find gflags - Failed to find an installed/exported CMake configuration for gflags, will perform search for installed gflags components.
    -- Failed to find gflags - Could not find gflags include directory, set GFLAGS_INCLUDE_DIR to directory containing gflags/gflags.h
    -- Failed to find glog - Could not find glog include directory, set GLOG_INCLUDE_DIR to directory containing glog/logging.h
    -- Module opencv_sfm disabled because the following dependencies are not found: Glog/Gflags
    -- Checking for module 'tesseract'
    -- No package 'tesseract' found
    -- Tesseract: NO
    -- Allocator metrics storage type: 'int'
    -- Excluding from source files list: modules/imgproc/src/corner.avx.cpp
    -- Excluding from source files list: modules/imgproc/src/imgwarp.avx2.cpp
    -- Excluding from source files list: modules/imgproc/src/imgwarp.sse4_1.cpp
    -- Excluding from source files list: modules/imgproc/src/resize.avx2.cpp
    -- Excluding from source files list: modules/imgproc/src/resize.sse4_1.cpp
    -- Registering hook 'INIT_MODULE_SOURCES_opencv_dnn': /home/pi/opencv/opencv-4.5.1/modules/dnn/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake
    -- opencv_dnn: filter out cuda4dnn source code
    -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx.cpp
    -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx2.cpp
    -- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx512_skx.cpp
    -- Excluding from source files list: modules/features2d/src/fast.avx2.cpp
    -- rgbd: CERES support is disabled. Ceres Solver is Required for Posegraph optimization
    --
    -- General configuration for OpenCV 4.5.1 =====================================
    -- Version control: unknown
    --
    -- Extra modules:
    -- Location (extra): /home/pi/opencv/opencv_contrib-4.5.1/modules
    -- Version control (extra): unknown
    --
    -- Platform:
    -- Timestamp: 2022-04-05T09:54:40Z
    -- Host: Linux 5.15.32-v8+ aarch64
    -- CMake: 3.18.4
    -- CMake generator: Unix Makefiles
    -- CMake build tool: /usr/bin/gmake
    -- Configuration: RELEASE
    --
    -- CPU/HW features:
    -- Baseline: NEON FP16
    -- required: VFPV3 NEON
    --
    -- C/C++:
    -- Built as dynamic libs?: YES
    -- C++ standard: 11
    -- C++ Compiler: /usr/bin/c++ (ver 10.2.1)
    -- 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 -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -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 -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -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 -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -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 -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -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 /usr/lib/aarch64-linux-gnu/libGL.so /usr/lib/aarch64-linux-gnu/libGLU.so
    -- 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 mcc 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 julia matlab ovis python2 sfm ts viz
    -- Applications: apps
    -- Documentation: NO
    -- Non-free algorithms: YES
    --
    -- GUI:
    -- GTK+: YES (ver 2.24.33)
    -- GThread : YES (ver 2.66.8)
    -- GtkGlExt: YES (ver 1.2.0)
    -- OpenGL support: YES (/usr/lib/aarch64-linux-gnu/libGL.so /usr/lib/aarch64-linux-gnu/libGLU.so)
    -- VTK support: NO
    --
    -- Media I/O:
    -- ZLib: /usr/lib/aarch64-linux-gnu/libz.so (ver 1.2.11)
    -- JPEG: libjpeg-turbo (ver 2.0.6-62)
    -- WEBP: build (ver encoder: 0x020f)
    -- PNG: /usr/lib/aarch64-linux-gnu/libpng.so (ver 1.6.37)
    -- TIFF: build (ver 42 - 4.0.10)
    -- JPEG 2000: build (ver 2.3.1)
    -- OpenEXR: build (ver 2.3.0)
    -- HDR: YES
    -- SUNRASTER: YES
    -- PXM: YES
    -- PFM: YES
    --
    -- Video I/O:
    -- FFMPEG: YES
    -- avcodec: YES (58.91.100)
    -- avformat: YES (58.45.100)
    -- avutil: YES (56.51.100)
    -- swscale: YES (5.7.100)
    -- avresample: NO
    -- GStreamer: YES (1.18.4)
    -- v4l/v4l2: YES (linux/videodev2.h)
    -- Xine: YES (ver 1.2.10)
    --
    -- Parallel framework: pthreads
    --
    -- Trace: YES (with Intel ITT)
    --
    -- Other third-party libraries:
    -- Lapack: NO
    -- Eigen: YES (ver 3.3.9)
    -- Custom HAL: YES (carotene (ver 0.0.1))
    -- Protobuf: build (3.5.1)
    --
    -- OpenCL: YES (no extra features)
    -- Include path: /home/pi/opencv/opencv-4.5.1/3rdparty/include/opencl/1.2
    -- Link libraries: Dynamic load
    --
    -- Python 3:
    -- Interpreter: /usr/bin/python3 (ver 3.9.2)
    -- Libraries: /usr/lib/aarch64-linux-gnu/libpython3.9.so (ver 3.9.2)
    -- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.19.5)
    -- install path: lib/python3.9/dist-packages/cv2/python-3.9
    --
    -- Python (for build): /usr/bin/python3
    --
    -- Java:
    -- ant: NO
    -- JNI: NO
    -- Java wrappers: NO
    -- Java tests: NO
    --
    -- Install to: /usr/local
    -- -----------------------------------------------------------------
    --
    -- Configuring incomplete, errors occurred!
    See also "/home/pi/opencv/opencv-4.5.1/build/CMakeFiles/CMakeOutput.log".
    See also "/home/pi/opencv/opencv-4.5.1/build/CMakeFiles/CMakeError.log".

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.04.05 21:02 신고

      build 디렉토리를 삭제한 후,

      다음 옵션을 제거하고 다시 해보세요

      -D ENABLE_VFPV3=ON

  15. thumbnail
    Favicon of https://htts1049.tistory.com BlogIcon htts1049

    time make -j4 를 실행할 때 오류가 납니다.

    [ 42%] Building CXX object modules/surface_matching/CMakeFiles/opencv_surface_matching.dir/src/ppf_helpers.cpp.o
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split2(carotene_o4t::Size2D const&, long long const*, int, long long*, int, long long*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split3(carotene_o4t::Size2D const&, unsigned short const*, int, unsigned short*, int, unsigned short*, int, unsigned short*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split3(carotene_o4t::Size2D const&, int const*, int, int*, int, int*, int, int*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split4(carotene_o4t::Size2D const&, long long const*, int, long long*, int, long long*, int, long long*, int, long long*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split2(carotene_o4t::Size2D const&, unsigned short const*, int, unsigned short*, int, unsigned short*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split2(carotene_o4t::Size2D const&, unsigned char const*, int, unsigned char*, int, unsigned char*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split4(carotene_o4t::Size2D const&, unsigned char const*, int, unsigned char*, int, unsigned char*, int, unsigned char*, int, unsigned char*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split3(carotene_o4t::Size2D const&, unsigned char const*, int, unsigned char*, int, unsigned char*, int, unsigned char*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split3(carotene_o4t::Size2D const&, long long const*, int, long long*, int, long long*, int, long long*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split2(carotene_o4t::Size2D const&, int const*, int, int*, int, int*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split4(carotene_o4t::Size2D const&, int const*, int, int*, int, int*, int, int*, int, int*, int)'
    /usr/bin/ld: ../../lib/libopencv_core.so.4.5.1: undefined reference to `carotene_o4t::split4(carotene_o4t::Size2D const&, unsigned short const*, int, unsigned short*, int, unsigned short*, int, unsigned short*, int, unsigned short*, int)'
    collect2: error: ld returned 1 exit status
    make[2]: *** [apps/version/CMakeFiles/opencv_version.dir/build.make:106: bin/opencv_version] 오류 1
    make[1]: *** [CMakeFiles/Makefile2:6203: apps/version/CMakeFiles/opencv_version.dir/all] 오류 2
    make[1]: *** 끝나지 않은 작업을 기다리고 있습니다....
    [ 42%] Building CXX object modules/surface_matching/CMakeFiles/opencv_surface_matching.dir/src/ppf_match_3d.cpp.o
    [ 42%] Building CXX object modules/surface_matching/CMakeFiles/opencv_surface_matching.dir/src/t_hash_int.cpp.o
    [ 42%] Linking CXX shared library ../../lib/libopencv_surface_matching.so
    [ 42%] Built target opencv_surface_matching
    make: *** [Makefile:182: all] 오류 2

    real 4m58.765s
    user 1m54.247s
    sys 0m5.598s


    맨처음에 opencv 버전 확인할 때 Not found 라고 나오길래 원래 있던 버전 안지우고 그대로 실행했었습니다. 그래서 그런건가요? 하던 걸 포기하고 지웠다가 새로 깔아야 하나요?

  16. thumbnail
    Favicon of https://shjang0106.tistory.com BlogIcon 짱커밋

    안녕하세요 현재 작성해주신 내용으로 시도중인데 make -j4에서 오류가 발생해 글을 남기게 되었습니다.
    [36%] Linking cxx shared library ../../lib/libopencv_core.so에서
    collect2: error: ld returned 1 exit status
    make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:1382: lib/libopencv_core.so.4.5.1] Error 1
    make[1]: *** [CMakeFiles/Makefile2:4226: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
    make: *** [Makefile:182: all] Error2
    라고 뜹니다..어떤 부분이 문제인지 모르겠습니다..
    그리고 제가 수업을 가야해서 일단 설치를 종료했는데 이 경우 기존 파일들을 삭제하고 새로 설치하는게 맞을까요..??

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.04.27 13:53 신고

      올리신 로그 위쪽에 원인이 되는 메시지다 있을 겁니다. 다시 할땐 build 디렉토리를 지우고 cmake부터 다시해야 합니다.

  17. thumbnail
    Favicon of https://koosikong.tistory.com BlogIcon 구시콩

    안녕하세요 opencv 설치중인데 궁금한점이 있어서 문의드려요
    현재 5.opencv 설치 확인 부분을 하고 있는데 videocapture_basic.cpp 에 들어가서
    CAP_V4L2를 바꾸고 저장이 안됩니당..
    Error writing videocapture_basic.cpp: Permission denied 관리자 권한이 뜨는데 여기서 어떻게 해결해야될까요??

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.05.04 04:34 신고

      저장위치가 문제인듯 합니다. 홈 디렉토리로 복사하려 파일을 수정해보세요

  18. thumbnail
    Favicon of https://jab-da-han-blog.tistory.com BlogIcon 난드프

    엄청나게 친절하고 좋은 글 감사합니다!

    4-11 결과물을 설치하려고 하는데 오류가 2개 떠서 질문 드립니다.

    make[2]: *** [modules/hfs/CMakeFiles/opencv_hfs.dir/build.make:82: modules/hfs/CMakeFiles/opencv_hfs.dir/src/hfs.cpp.o] 오류 1
    make[1]: *** [CMakeFiles/Makefile:4689: modules/hfs/CMakeFiles/opencv_hfs.dir/all] 오류 2
    make: *** [Makefile:182:all] 오류 2

    원인이 무엇일까요.. 무시해도 되는 오류인가요??
    4-6 cmake를 사용하여 OpenCV 컴파일 설정해주는 부분 진행할 때 저는 cmake 실행결과 밑에 부분에 - Python (for build): /usr/bin/python3이 아니라 python2.7로 되어 있었는데 이것 때문에 이런 오류가 난 걸까요??

  19. thumbnail
    Favicon of https://jab-da-han-blog.tistory.com BlogIcon 난드프

    /home/pi/opencv/modules/python/src2/cv2.cpp: In destructor ‘std::__shared_ptr<_Tp, _Lp>::~__shared_ptr() [with _Tp = cv::utils::nested::OriginalClassName; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex]’:
    /home/pi/opencv/modules/python/src2/cv2.cpp:590:1: internal compiler error: 세그멘테이션 오류
    590 | }
    | ^
    0x76a1ad9f ???
    ../sysdeps/unix/sysv/linux/arm/sigrestorer.S:64
    0x76a02bdf __libc_start_main
    ./csu/libc-start.c:308
    Please submit a full bug report,
    with preprocessed source if appropriate.
    Please include the complete backtrace with any bug report.
    See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.
    make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:82: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] 오류 1
    make[1]: *** [CMakeFiles/Makefile2:7180: modules/python3/CMakeFiles/opencv_python3.dir/all] 오류 2
    make: *** [Makefile:182: all] 오류 2

    이런 식으로 오류 메세지가 뜨는데 어떻게 하면 되나요??

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2022.05.10 16:29 신고

      세그멘테이션 오류라 원인을 찾기 힘들어보이네요. j 옵션을 사용했다면 make만 사용해보세요

  20. thumbnail
    Favicon of https://perkybear.tistory.com BlogIcon 수영못하는 남극곰

    안녕하세요 블로그를 보고 우분투 22.04 버전에서 설치하려고 시도중인데 4-6부분을 입력하니 다음과 같은 오류가 발생했습니다
    CMake Error at cmake/OpenCVCompilerOptimizations.cmake:546 (message):
    Required baseline optimization is not supported: VFPV3
    (CPU_BASELINE_REQUIRE=;VFPV3;NEON)
    Call Stack (most recent call first):
    cmake/OpenCVCompilerOptions.cmake:293 (include)
    CMakeLists.txt:614 (include)
    이러한 오류는 어떠식으로 해결을 해야하는지 문의 드립니다

  21. thumbnail
    Favicon of https://jab-da-han-blog.tistory.com BlogIcon 난드프

    sudo apt upgrade를 하면 계속
    E: Sub-process /usr/bin/dpkg returned an error code (1)
    이런 오류가 뜨는데 무시하고 계속 진행해도 될까요...?

    sudo dpkg --configure -a를 하고 해도 계속 오류가 뜨고
    sudo apt install -f를 해도 계속 오류가 뜨네요.. ㅠㅠ