반응형

OpenCV에서 Line Matching을 진행해주는 API가 존재하는 것 같다.

 

https://docs.opencv.org/3.4/df/dfa/tutorial_line_descriptor_main.html

 

코드를 확인해보면 도입부에 아래와 같은 내용을 작성한다.

여기서 opencv2/line_descriptor.hpp 파일이 linematching을 위한 중요한 헤더파일로 보이는데

OpenCV를 설치 후에 opencv2 경로에는 해당 파일이 존재하지 않는다.

 

그래서 찾아보니 OpenCV에서는 새로운 API가 추가되는 경우 안정성이나 성능 검증이 완벽하게 검증되지 않은 경우 배포를 하지 않고 Extra Module(opencv_contrib)에 포함시키게 된다고 한다. 즉 베타버전들의 모음으로 볼 수 있을 것 같고

OpenCV의 line matching도 이에 포함되는 것이다.

 

그럼 어떻게 opencv_contrib을 다운받고 안에 들어있는 내용을 사용해볼 수 있는지 알아보자.

 

 

 

 

1. opencv_contrib 다운로드

 

https://github.com/opencv/opencv_contrib

 

GitHub - opencv/opencv_contrib: Repository for OpenCV's extra modules

Repository for OpenCV's extra modules. Contribute to opencv/opencv_contrib development by creating an account on GitHub.

github.com

 

위의 주소로 들어가면 다음과 같은 화면을 볼 수 있다.

 

 

해당 저장소를 다운로드한다.

이때 자신의 OpenCV 버전과 일치하는 opencv_contrib을 다운받도록 한다.

 

다운받으면 .zip형식의 파일을 다운받게 되는데 이의 압축을 풀어주자.

 

 

2. 프로젝트 빌드

 

우선 CMake-GUI를 실행시킨다.

프로그램 창에서 위의 source code: 경로는 opencv를 설치한 경로와 source까지의 경로,

그 아래 build the binaries: 경로는 빌드된 파일이 어디다 저장할것인지를 지정하는 부분이다.

(이때 사진에서는 Desktop 경로로 설정하였는데 생성되는 파일이 많으므로 새로운 폴더를 하나 생성하여

그 폴더에다가 실행하도록 하자)

 

 

 

그리고 아래의 "Configure" 버튼을 클릭하면 다음과 같은 창이 뜬다.

 

프로젝트를 설정하기 위해 어떠한 Visual Studio버전을 사용하는지 지정을 하게 되고

아래의 라디오버튼은 "Use defualt native compilers"를 선택한다.

그리고 Finish 버튼을 누른다.

 

그럼 아래와 같은 화면을 확인할 수 있을 것이다.

(log 창 부분에 "Configuring done"이 출력됨을 확인할 수 있다.)

 

 

그럼 이제 opencv_contrib을 불러와 넣어주자.

CMake 의 창에서 찾아보면 "OPENCV_EXTRA_MODULES_PATH" 라는 부분을 찾을 수 있다.

여기의 Value값에 아까 다운받은 opencv_contrib 경로를 넣어주자.

이때, opencv_contrib 경로 안에 modules라는 경로가 있는데 이 부분까지 입력해주도록 하자.

 

 

 

그리고 다시 Configure 버튼을 눌러준다.

 

 

 

이번에도 "Configuring done"이라는 문장이 이상없이 출력됨을 확인할 수 있다.

그럼 옆의 "Generate" 버튼을 누르고

위와 동일하게 "Generating done" 이라는 문장을 확인하였으면

"Open Project" 버튼을 눌러 프로젝트를 열어준다.

 

 

 

 

솔루션 내 프로젝트들 중 'CMakeTargets' 경로에 있는 INSTALL 프로젝트에 대하여 우클릭 후

빌드를 진행하자.

 

 

Debug 모드에서 빌드를 진행할 경우 위와 같이 python38_d.lib 을 열 수 없다는 에러문장이 출력된다.

 

하지만 Release모드에서 빌드를 진행하게 되면 아래와 같이 이상없이 빌드가 진행되었다.

 

조금은 찜찜하지만 우선 되는 방향을 통해 작업을 진행해보자.

 

 

 

 

 

프로젝트를 새로 만들어준다.

 

빈 프로젝트로 생성하며 src.cpp 파일을 추가해주고 프로젝트 설정으로 들어간다.

 

 

구성속성 - 디버깅 - 환경  에서 앞에서 생성한 프로젝트의 install 경로 안에 존재하는 bin 경로를 지정한다.

 

나머지 include될 경로와 라이브러리 경로도 install 경로 안에 있는 include, lib 경로로 지정해준다.

 

추가 종속성에는 일단 lib파일들을 모두 추가해주었다.

 

더보기

opencv_aruco400.lib

opencv_bgsegm400.lib

opencv_bioinspired400.lib

opencv_calib3d400.lib

opencv_ccalib400.lib

opencv_core400.lib

opencv_datasets400.lib

opencv_dnn_objdetect400.lib

opencv_dnn400.lib

opencv_dpm400.lib

opencv_face400.lib

opencv_features2d400.lib

opencv_flann400.lib

opencv_fuzzy400.lib

opencv_gapi400.lib

opencv_hdf400.lib

opencv_hfs400.lib

opencv_highgui400.lib

opencv_img_hash400.lib

opencv_imgcodecs400.lib

opencv_imgproc400.lib

opencv_line_descriptor400.lib

opencv_ml400.lib

opencv_objdetect400.lib

opencv_optflow400.lib

opencv_phase_unwrapping400.lib

opencv_photo400.lib

opencv_plot400.lib

opencv_reg400.lib

opencv_rgbd400.lib

opencv_saliency400.lib

opencv_shape400.lib

opencv_stereo400.lib

opencv_stitching400.lib

opencv_structured_light400.lib

opencv_superres400.lib

opencv_surface_matching400.lib

opencv_text400.lib

opencv_tracking400.lib

opencv_video400.lib

opencv_videoio400.lib

opencv_videostab400.lib

opencv_xfeatures2d400.lib

opencv_ximgproc400.lib

opencv_xobjdetect400.lib

opencv_xphoto400.lib

 

 

 

소스코드는 아래에서 가져왔다.

https://github.com/opencv/opencv_contrib/blob/3.1.0/modules/line_descriptor/samples/matching.cpp

 

GitHub - opencv/opencv_contrib: Repository for OpenCV's extra modules

Repository for OpenCV's extra modules. Contribute to opencv/opencv_contrib development by creating an account on GitHub.

github.com

 

그럼  이제 프로젝트를 실행해보자.

 

main문의 도입부를 지우고

내가 지정한 임의의 이미지 파일들을 불러오도록 해봤다.

 

 

 

 

 

-끝

반응형

+ Recent posts