본문 바로가기

창업성장기술개발(디딤돌) 연구 기록

[디딤돌] 연구 기록 1~2주차 - 개발 환경 구축

반응형

 

 

☞ 운영 체제 : Windows 10 Education 64비트 (10.0, 빌드 19043)
☞ CPU : AMD Ryzen 7 5800H with Radeon Graphics (16 CPUs), ~3.2GHz
☞ 그래픽카드 : NVIDIA GeForce RTX3070 Laptop GPU

 

 

☞ 설치 목록

  1. MinGW-64 8.1.0
  2. Python 3.8
  3. Tensorflow 2.9.1
  4. CUDA Toolkit v11.4
  5. cuDNN v8.2.4
  6. Visual Studio 2019
  7. OpenCV 4.4.0

 

 

 


 

 

♣ 유의 사항 ♣

 

 

중간중간에 에러 발생 시 해결 방법을 적어두었는데 해당 방법과 똑같이 진행했는데도 에러가 나면 일단 끝까지 진행해보자. 그래도 에러가 발생하면 댓글로 남겨주기 바란다.

 

 

 


 

 

 

 

 

 

MinGW

 

MinGW 설치

https://sourceforge.net/projects/mingw-w64/files/

 

 

 

☞ 참고 사항

MinGW-W64 GCC-8.1.0

x86-64-posix-seh

 

윈도우에서 OPENCV를 사용하려면 Thread model을 선택할 때  win32 말고 , posix로 깔아야 한다. 따로 옵션을 선택하는 것은 아니고 위 주소에서 다운로드할 때 posix를 선택해주면 된다.

 

 

 

※  시스템 환경 변수 편집

 

 

 

설치 후 - CMD(WINDOW 버튼 + R) - 시스템 환경 변수 편집 - 사용자 변수 - PATH - 편집 - C:\mingw64\bin 추가

 

 

 

 

  설치 확인

 

CMD - gcc -v 혹은 g++ -v

 

 

 

 

※ CUDA가 MinGW를 지원하지 않는다.

 

 

 

 

 

 


② Python & Tensorflow-gpu 설치

 

  Python 3.8.7

 

다운로드 주소

https://www.python.org/downloads/windows/

 

 

 

 

 

 

  시스템 환경 변수 편집

 

 

설치할 때 PATH 추가해주면 위 작업이 필요 없다.

 

 

 

 

 

※ Tensorflow-gpu

 

 

// 현재 기준 가장 최신 버전인 2.9.1 버전이 설치됩니다.
pip install tensorflow-gpu

// 만약 protobuf에 대한 에러가 생기면 지워놓고 나중에 OpenCV 빌드 후에 설치합니다.
pip uninstall tensorflow-gpu

 

 

 

☞ 에러 'cudart64_101.dll not found'

 

 

 

이 에러는 Tensorflow-gpu 버전이 지원하는 CUDA는 10.1 버전인데 내가 다른 버전을 설치했을 때 나오는 에러이다. 위에 표를 보고 Tensorflow-gpu가 지원하는 CUDA 버전을 설치하여 사용하자. 구글링에는 해당 파일을 따로 다운로드해서 CUDA Toolkit 디렉터리에 넣어주면 되는다는데 권장하는 방법은 아니라고 생각한다.

 

 

 

 

 

 

☞ 설치 확인

 

 

 

 


CUDA & cuDNN 설치

 

※ CUDA Toolkit v11.4

 

CUDA v11.4 다운로드

https://developer.nvidia.com/cuda-11-4-2-download-archive

 

 

 

 

☞ 10.2 버전으로 설치하면 안 된다.

 

비주얼 스튜디오에서 OpenCV.sln을 빌드하려고 하면 CUDA 쪽에서 아래의 에러 발생.

 

 

"nvcc fatal unsupported gpu architecture 'compute_86'" 

 

 

이로 인해 opencv_world420.dll 이 없다는 에러가 나오는데 환경 변수 설정을 하려고 해도 x64 디렉터리에 동적 라이브러리 자체가 생성되지 않아 소용이 없었다. 위 에러는 엔비디아에서 CUDA Toolkit를 11.4 버전 이상으로 다운로드하면 해결이 된다고 한다.

 

 

 

 

※ cuDNN v8.2.4 다운로드

cuDNN 파일 다운로드

https://developer.nvidia.com/rdp/cudnn-download

 

로그인해야 다운로드할 수 있다.  덮어쓰기 한다.

 

 

 

 

 

cuDNN의 다운로드한 파일 bin, include, lib을 CUDA 디렉터리에 모두 덮어쓰기 하면 된다.

CUDA Toolkit 위치 : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4

 

 

 

 

 

  시스템 환경 변수 편집

 

 

 

 

 

설치 후 - CMD(WINDOW 버튼 + R) - 시스템 환경 변수 편집 - 사용자 변수 - PATH - 편집 - C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin 추가

 

 

 

 


OpenCV 설치

 

 

※ Visual Studio 2019

 

 

Visual Studio 설치

https://visualstudio.microsoft.com/ko/vs/older-downloads/

 

 

 

 

 

※ OpenCV 4.4.0

OpenCV 공식 홈페이지

https://opencv.org/releases/page/2/

 

 

 

 

☞ OpenCV 4.4.0 버전인 이유는?

 

원래는 자주 사용한 4.2.0 버전을 사용하려 했으나, cuDNN 8 이상의 버전을 사용하기 위해서는 OpenCV 4.4.0 버전이 필요했다.

 

 

 

 

※ OpenCV_contrib 4.4.0

OpenCV contrib 깃허브 주소

https://github.com/opencv/opencv_contrib

 

 

 

 

 

 

 

 

※ 필요한 패키지

 

☞ GStreamer-1.0

 

GStreamer 다운로드

https://gstreamer.freedesktop.org/download/

 

 

 

 

◎ 환경 변수 설정

 

 

 

<사용자 변수 편집 - 새로 만들기>

 

GSTREAMER_DIR

D:\library\gstreamer\1.0\msvc_x86_64

 

 

 

<사용자 변수 - Path 편집>

 

%GSTREAMER_DIR%\bin

%GSTREAMER_DIR%\lib

%GSTREAMER_DIR%\lib\gstreamer-1.0

 

 

 

☞ Eigen

 

Eigen 다운로드 주소

https://gitlab.com/libeigen/eigen/-/releases/3.3.7

 

 

 

 

◎ 환경 변수 설정

 

 

<사용자 변수 - Path 편집>

 

D:\library\eigen-3.3.7

 

 

 

 

 

☞ Protobuf

 

Protobuf 깃허브 주소

https://github.com/protocolbuffers/protobuf/tags?after=v3.20.1

 

 

tensorflow 2.7.0 버전 이상에는 protobuf의 3.19.0 버전 이상이 필요하다.

 

 

 

 

 

 

◎ 환경 변수 설정

 

 

 

 

 

 

<사용자 변수 - Path 편집>

 

 

D:\library\protobuf-3.19.4

 

 

 

 

 


 OpenCV 빌드

 

※ CMake-gui

CMake-gui 다운로드 주소

https://cmake.org/download/

 

 

 

※ CMake-gui - OpenCV 빌드

 

 

 

 

 

☞ 참고 사항

처음에 디렉터리를 생성하고 나서 경로 설정을 해야 한다. CMake 상에서 경로가 수정되지 않거나 문제가 생기는 경우에는 build 디렉터리 내부의 파일을 모두 삭제하고 상단 File Tab에서 Delete Cache를 하고 다시 Configure 하면 된다.

 

 

 

 

 

Configure -> compiler로는 Visual Studio 버전 선택

 

 

 

 

☞ 무시해도 되는 경고문(CMake Warning)

 

 

 

 

 

 

 

☞ Configure 후 항목 수정(Configure 2번)

 

CPU_BASELINE=AVX

CPU_DISPATCH='공백'

WITH_LAPACK=OFF

WITH_OPENCLAMDBLAS=OFF

WITH_OPENCLAMDFFT=OFF

EIGEN_INCLUDE_PATH=D:/library/eigen-3.3.7 (본인 eigen 디렉터리)

OPENCV_PYTHON3_VERSION=ON

OPENCV_EXTRA_MODULES_PATH=D:/library/opencv/opencv_contrib-4.4.0/modules (본인 opencv_contrib/modules 디렉터리)

BUILD_opencv_world=ON

OPENCV_ENABLE_NONFREE=ON

OPENCV_DNN_CUDA=ON

WITH_CUDA=ON

CUDA_FAST_MATH=ON

ENABLE_FAST_MATH=ON

CUDA_ARCH_BIN=8.6 (그래픽카드에 따라 다름 참고 - https://en.wikipedia.org/wiki/CUDA)

TEST 관련=OFF

 

 

GSTREAMER

 

 

 

 

 

 

 

 

☞ CUDA & cuDNN

 

 

 

 

☞ CMake 결과

 

더보기

Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19043.

Detected processor: AMD64

Performing Test HAVE_CXX_FP:FAST

Performing Test HAVE_CXX_FP:FAST - Success

Performing Test HAVE_C_FP:FAST

Performing Test HAVE_C_FP:FAST - Success

Performing Test HAVE_CPU_BASELINE_FLAGS

Performing Test HAVE_CPU_BASELINE_FLAGS - Success

libjpeg-turbo: VERSION = 2.0.5, BUILD = opencv-4.4.0-libjpeg-turbo

Could NOT find OpenJPEG (minimal suitable version: 2.0, recommended version >= 2.3.1)

found Intel IPP (ICV version): 2020.0.0 [2020.0.0 Gold]

at: D:/library/opencv/build/3rdparty/ippicv/ippicv_win/icv

found Intel IPP Integration Wrappers sources: 2020.0.0

at: D:/library/opencv/build/3rdparty/ippicv/ippicv_win/iw

CUDA detected: 11.4

CUDA: Using CUDA_ARCH_BIN=8.6

CUDA NVCC target flags: -gencode;arch=compute_86,code=sm_86;-D_FORCE_INLINES

CUDA: MSVS generator is detected. Disabling CMake re-run checks (CMAKE_SUPPRESS_REGENERATION=ON). You need to run CMake manually if updates are required.

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: D:/library/opencv/build/python_loader

Caffe: NO

Protobuf: NO

Glog: NO

freetype2: NO

harfbuzz: NO

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

Tesseract: NO

Processing WORLD modules...

module opencv_cudev...

module opencv_core...

Allocator metrics storage type: 'long long'

module opencv_cudaarithm...

module opencv_flann...

module opencv_imgproc...

module opencv_intensity_transform...

module opencv_ml...

module opencv_phase_unwrapping...

module opencv_plot...

module opencv_quality...

module opencv_reg...

module opencv_surface_matching...

module opencv_alphamat...

module opencv_cudafilters...

module opencv_cudaimgproc...

module opencv_cudawarping...

module opencv_dnn...

Registering hook 'INIT_MODULE_SOURCES_opencv_dnn': D:/library/opencv/sources/modules/dnn/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake

module opencv_dnn_superres...

module opencv_features2d...

module opencv_fuzzy...

module opencv_hfs...

module opencv_imgcodecs...

module opencv_line_descriptor...

module opencv_photo...

module opencv_saliency...

module opencv_text...

module opencv_videoio...

module opencv_xphoto...

module opencv_calib3d...

module opencv_cudacodec...

module opencv_cudafeatures2d...

module opencv_cudastereo...

module opencv_datasets...

module opencv_highgui...

module opencv_objdetect...

module opencv_rapid...

module opencv_rgbd...

module opencv_shape...

module opencv_structured_light...

module opencv_video...

module opencv_xfeatures2d...

module opencv_ximgproc...

module opencv_xobjdetect...

module opencv_aruco...

module opencv_bgsegm...

module opencv_bioinspired...

module opencv_ccalib...

module opencv_cudabgsegm...

module opencv_cudalegacy...

module opencv_cudaobjdetect...

module opencv_dnn_objdetect...

module opencv_dpm...

module opencv_face...

module opencv_gapi...

module opencv_optflow...

module opencv_stitching...

module opencv_tracking...

module opencv_cudaoptflow...

module opencv_stereo...

module opencv_superres...

module opencv_videostab...

Processing WORLD modules... DONE

Excluding from source files list: modules/imgproc/src/imgwarp.avx2.cpp

Excluding from source files list: modules/imgproc/src/resize.avx2.cpp

Excluding from source files list: <BUILD>/modules/world/layers/layers_common.avx2.cpp

Excluding from source files list: <BUILD>/modules/world/layers/layers_common.avx512_skx.cpp

Excluding from source files list: modules/features2d/src/fast.avx2.cpp

CMake Warning at cmake/OpenCVGenSetupVars.cmake:54 (message):
CONFIGURATION IS NOT SUPPORTED: validate setupvars script in install
directory
Call Stack (most recent call first):
CMakeLists.txt:968 (include)

 

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

Version control: unknown

 

Extra modules:

Location (extra): D:/library/opencv_contrib-4.4.0/modules

Version control (extra): unknown

 

Platform:

Timestamp: 2022-07-17T09:24:24Z

Host: Windows 10.0.19043 AMD64

CMake: 3.24.0-rc3

CMake generator: Visual Studio 16 2019

CMake build tool: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe

MSVC: 1925

 

CPU/HW features:

Baseline: SSE SSE2 SSE3 SSSE3 SSE4_1 POPCNT SSE4_2 AVX

requested: AVX

 

C/C++:

Built as dynamic libs?: YES

C++ standard: 11

C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe (ver 19.25.28614.0)

C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:fast /arch:AVX /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP /MD /O2 /Ob2 /DNDEBUG

C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:fast /arch:AVX /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP /MDd /Zi /Ob0 /Od /RTC1

C Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe

C flags (Release): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:fast /arch:AVX /MP /MD /O2 /Ob2 /DNDEBUG

C flags (Debug): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:fast /arch:AVX /MP /MDd /Zi /Ob0 /Od /RTC1

Linker flags (Release): /machine:x64 /INCREMENTAL:NO

Linker flags (Debug): /machine:x64 /debug /INCREMENTAL

ccache: NO

Precompiled headers: NO

Extra dependencies: cudart_static.lib nppc.lib nppial.lib nppicc.lib nppidei.lib nppif.lib nppig.lib nppim.lib nppist.lib nppisu.lib nppitc.lib npps.lib cublas.lib cudnn.lib cufft.lib -LIBPATH:C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.4/lib/x64

3rdparty dependencies:

 

OpenCV modules:

To be built: alphamat aruco bgsegm bioinspired calib3d ccalib core cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev datasets dnn dnn_objdetect dnn_superres dpm face features2d flann fuzzy gapi hfs highgui img_hash imgcodecs imgproc intensity_transform line_descriptor ml objdetect optflow phase_unwrapping photo plot python3 quality rapid reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab world xfeatures2d ximgproc xobjdetect xphoto

Disabled: python_tests

Disabled by dependency: -

Unavailable: cnn_3dobj cvv freetype hdf java js julia matlab ovis python2 python2 sfm viz

Applications: apps

Documentation: NO

Non-free algorithms: YES

 

Windows RT support: NO

 

GUI:

Win32 UI: YES

VTK support: NO

 

Media I/O:

ZLib: build (ver 1.2.11)

JPEG: build-libjpeg-turbo (ver 2.0.5-62)

WEBP: build (ver encoder: 0x020f)

PNG: build (ver 1.6.37)

TIFF: build (ver 42 - 4.0.10)

JPEG 2000: build Jasper (ver 1.900.1)

OpenEXR: build (ver 2.3.0)

HDR: YES

SUNRASTER: YES

PXM: YES

PFM: YES

 

Video I/O:

DC1394: NO

FFMPEG: YES (prebuilt binaries)

avcodec: YES (58.54.100)

avformat: YES (58.29.100)

avutil: YES (56.31.100)

swscale: YES (5.5.100)

avresample: YES (4.0.0)

GStreamer: YES (1.20.3)

DirectShow: YES

Media Foundation: YES

DXVA: YES

 

Parallel framework: Concurrency

 

Trace: YES (with Intel ITT)

 

Other third-party libraries:

Intel IPP: 2020.0.0 Gold [2020.0.0]

at: D:/library/opencv/build/3rdparty/ippicv/ippicv_win/icv

Intel IPP IW: sources (2020.0.0)

at: D:/library/opencv/build/3rdparty/ippicv/ippicv_win/iw

Eigen: YES (ver 3.3.7)

Custom HAL: NO

Protobuf: build (3.5.1)

 

NVIDIA CUDA: YES (ver 11.4, CUFFT CUBLAS FAST_MATH)

NVIDIA GPU arch: 86

NVIDIA PTX archs:

 

cuDNN: YES (ver 8.2.4)

 

OpenCL: YES (NVD3D11)

Include path: D:/library/opencv/sources/3rdparty/include/opencl/1.2

Link libraries: Dynamic load

 

Python 3:

Interpreter: C:/Users/sjyoo/AppData/Local/Programs/Python/Python38/python.exe (ver 3.8.7)

Libraries: C:/Users/sjyoo/AppData/Local/Programs/Python/Python38/libs/python38.lib (ver 3.8.7)

numpy: C:/Users/sjyoo/AppData/Local/Programs/Python/Python38/lib/site-packages/numpy/core/include (ver 1.23.1)

install path: C:/Users/sjyoo/AppData/Local/Programs/Python/Python38/Lib/site-packages/cv2/python-3.8

 

Python (for build): C:/Users/sjyoo/AppData/Local/Programs/Python/Python38/python.exe

 

Java:

ant: NO

JNI: C:/Program Files/Eclipse Adoptium/jdk-17.0.3.7-hotspot/include C:/Program Files/Eclipse Adoptium/jdk-17.0.3.7-hotspot/include/win32 C:/Program Files/Eclipse Adoptium/jdk-17.0.3.7-hotspot/include

Java wrappers: NO

Java tests: NO

 

Install to: D:/library/opencv/build/install

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

 

Configuring done

Generating done

 

 

 

 

 

 

 

※ OpenCV - Visual Studio 2019

 

 

 

 

설치를 완료하고, 빌드 경로인 D:\library\opencv\build 디렉터리에 OpenCV.sln 솔루션 파일이 있다.

이 파일을 실행하면 Visual Studio 2019 버전으로 내용을 불러오게 되는데,

 

 

 

 

솔루션 'OpenCV'를 빌드하는데 디버그, 릴리즈 모드 각각 해준다. 그리고 왼쪽 탐색기에 있는 CMakeTargets 디렉터리에 INSTALL 이라는 것이 있으니 이도 디버그, 릴리즈 모드 각각 INSTALL 한다. INSTALL 하면 x64 디렉터리에 디버그, 릴리즈 모드 각각 빌드-INSTALL 로그가 남을 것이다. 

 

 

 

 

디버그, 릴리즈 각각 빌드로 오랜 시간이 지나서 마무리되면, 실패하는 것이 한 개 생긴다. 

 

 

 

 

 

이는 python38_d.lib를 찾지 못해서 열 수 없다는 것인데, 이는 디버그에서는 발생하고 릴리즈에서는 발생하지 않을 것이다. python38_d.lib 의 d가 디버그 모드 라이브러리를 의미하고, 릴리즈 모드에서는 이 라이브러리가 필요하지 않기 때문이다.

 

 

에러 해결 방법 : https://kjk92.tistory.com/28

 

python27_d.lib 오류

안녕하세요 오랜만에 포스팅을 하러 돌아왔네요! 몇 일전 시험이 끝나서 다시 포스팅을 시작하겠습니다. 오늘은 python embedding 에러와 관련 된 포스트입니다. 제가 직접 임베딩을 알려드리기보다

kjk92.tistory.com

 

 

위 블로그에서 나와있는 것처럼 디버그 모드에서도 python38.lib를 사용할 수 있도록 Python 경로의 pyconfig.h, object.h의 구문을 수정해준다.

 

 

 

☞ 에러 ' fatal error python38_d.lib 파일을 찾을 수 없습니다.'

 

 

 

 

 

AppData 디렉터리는 숨김 항목으로 지정되어 상단 탭의 보기를 눌러서 숨긴 항목도 볼 수 있도록 한다.

 

 

 

☞ Python38\include\object.h 수정

 

 

#define Py_REF_DEBUG -> 주석 처리

 

위에 제공한 블로그와는 변수 이름이 다르지만 이렇게 수정하면 작동한다.

 

 

 

 

 

 Python38\include\pyconfig.h 수정

 

 

 

#define Py_DEBUG -> 주석 처리

 

 

 

 

pragma comment(lib, "python38_d.lib") -> pragma comment(lib, "python38.lib") 으로 수정

 

 

 

 

 

☞ 디버그, 릴리즈 모드 빌드 완료

 

 

 

 

 

☞ 에러 해결

 

 

 

 

◎ ImportError : DLL load failed while importing cv2: 지정된 프로시저를 찾을 수 없다.

 

◎ ImportError : DLL load failed while importing cv2: 지정된 모듈을 찾을 수 없다.

 

 

 

 

 

 

빌드를 완료했던 D:\library\opencv\build 디렉터리에 보면 setup_vars_opencv4.cmd 파일이 있는데, 이 파일을 CMD에서 실행하면 PYTHONPATH가 나온다. 위 경로를 시스템 환경 변수 편집의 시스템 경로에 등록하자.(CMD에서 D드라이브로 넘어가는 방법은 cd를 빼고 D: 만 입력하면 된다.)

 

 

 

 

<시스템 변수 - 새로 만들기>

 

PYTHONPATH

D:\library\opencv\build\python

 

 

 

 

 

 

 


⑥ OpenCV 예제 실행

 

※ 시스템 환경 변수 편집

 

 

 

 

위에서 따로 INSTALL을 마무리하고 나면,  vc16의 bin, lib 디렉터리가 생기는데 위치를 확인하고 나서 이 경로를 환경 변수로 등록한다.

 

 

 

 

☞ 사용자 변수 추가

 

◎ OPENCV_DIR : D:\library\opencv\build\install

 

◎ OPENCV_INC : %OPENCV_DIR%\include

 

◎ OPENCV_LIB : %OPENCV_DIR%\x64\vc16\lib

 

 

 

☞ 사용자 변수 PATH 편집

 

◎ %OPENCV_DIR%\x64\vc16\bin

 

◎ %OPENCV_DIR%\x64\vc16\lib

 

 

 

☞ 시스템 변수 PATH 편집

 

D:\library\opencv\build\install\x64\vc16\bin

 

 

 

※ 프로젝트 파일 속성 편집

 

먼저 빈 프로젝트를 하나 만들고 소스 파일에 cpp 파일을 하나 만든다.

 

그러고 나서 만든 프로젝트 파일을 오른쪽으로 클릭하여 속성으로 들어간다. 위에 설정한 환경 변수를 사용해서 아래와 같이 수정하자.

 

 

 

 

☞ 새 프로젝트 구성

 

 

 

 

☞ 속성 편집

 

 

 

 

☞ 소스 코드

 

#include <opencv2/opencv.hpp>
#include <iostream>

int main() {

	cv::VideoCapture cap(0);
	cv::Mat frame;
	cv::namedWindow("yaho", cv::WINDOW_AUTOSIZE);

	if (cap.isOpened()) {
		while (1) {
			cap >> frame;
			cv::imshow("yaho", frame);
			if (cv::waitKey(1) == 27) break;
		}
	}

	else {
		std::cout << "No Frame" << std::endl;
	}

	cv::destroyAllWindows();
	return 0;
}

 

 

 

 

☞ 실행 결과

 

 

 

 

 

GStreamer 동적 라이브러리의 일부를 찾지 못했다고 나온다. 해당 디렉터리에는 파일이 존재하고, 환경 변수 설정도 제대로 해준거 같은데 경고가 계속 발생한다. 동작은 되나, 영 찝찝하긴 하다.

 

 

반응형