반응형

Ubuntu 18.04에서 Sublime Text 3를 사용하여 OpenCV 코드를 컴파일하는 방법을 다루고 있습니다.

OpenCV 설치방법은 다음 포스팅을 참고하세요.


Ubuntu 18.04에 opencv_contrib 포함하여 OpenCV 3.4.1 설치

http://webnautes.tistory.com/1186



 

1. Sublime Text 3 설치


2. CMakeBuilder 플러그인 설치


3. OpenCV 예제 프로젝트 컴파일하기


참고



최초 작성 - 2018. 6. 15




1. Sublime Text 3 설치


1-1. 서명키를 다운로드 받아서  등록합니다. Sublime Text 3 패키지를 다운로드 받아 설치시 패키지 검증에 사용됩니다.


$ wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -




1-2.  Sublime Text 3 패키지를 다운로드 받을 수 있는 apt 저장소를 추가합니다.


$ echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list




1-3. 패키지 리스트를 업데이트한 후, sublime-text 패키지를 설치합니다.


$ sudo apt-get update
$ sudo apt-get install sublime-text




2. CMakeBuilder 플러그인 설치


2-1. https://packagecontrol.io/installation 에서 SUBLIME TEXT 3 탭 아래에 있는 텍스트를 드래그 후 복사합니다.





2-2. 메뉴에서 View > Show Console 을 선택하거나 단축키 Ctrl + `를 누르면 아래 캡쳐 화면처럼 콘솔창이 보이게 됩니다.





2-3. 아래 캡쳐 화면에서 보이는 빨간 사각형으로 표시한 입력창에 앞에서 복사한 내용을 붙여 넣기 하고 엔터를 누릅니다.





2-4. 잠시 기다리면 콘솔창에 아래 화면처럼 메시지들이 보입니다.  이제 여러 가지 플러그인 들을 추가 할 수 있습니다.





2-5. Sublime Text로 돌아와서 Ctrl + Shift + P를 입력합니다. 잠시 후  아래와 같은 창이 뜹니다.





2-6. 상단에 있는 입력창에 Install을 입력하면  Package Control:Install Package가 보입니다. 이 항목을 클릭합니다.





2-7. 설치가능한 플러그인 패키지 항목들이 보입니다. cmake를 입력하면 보이는 CMakeBuilder를 클릭합니다.




SubLime Text에서도 패키지 검색이 가능하지만 아래 사이트에서 찾는 게 더 쉽게 원하는 플러그인을 찾을 수 있을듯합니다.


https://packagecontrol.io/






2-8. 설치가 완료되면 다음과 같은 화면이 보여집니다.





3. OpenCV 예제 프로젝트 컴파일하기


3-1. Sublime Text 3의 메뉴에서  Tools > CMakeBuilder > New Project… 을 선택합니다.




3-2. 아래쪽에 보이는 Type the name of the new Project 항목을 원하는 프로젝트 이름으로 수정한 후, 엔터를 누릅니다. 이름 중간에 공백이 포함되면 안됩니다.





3-3. 프로젝트 폴더가 저장될 위치를 지정하고 엔터를 누릅니다.




프로젝트 폴더가 생성되는 위치를 보여줍니다.  확인을 클릭합니다.





3-4. C++ 항목을 클릭합니다.





3-5. 프로젝트 파일의 위치를 지정해줘야 합니다.  확인을 클릭합니다.




앞에서 프로젝트 폴더로 지정했던 위치에서 프로젝트이름.sublime-project 파일을 선택하고 열기 버튼을 클릭합니다.





3-6. 왼쪽 사이드바에  프로젝트 폴더에 생성된 파일들을 보여줍니다.




OpenCV_Project / CMakeLists.txt


cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(OpenCV Example VERSION 0.1.0 LANGUAGES CXX)
add_subdirectory(src)



OpenCV_Project / OpenCV Example.sublime-project


{
   "build_systems":
   [
   ],
   "folders":
   [
       {
           "path": "."
       }
   ],
   "settings":
   {
       "cmake":
       {
           "build_folder": "${project_path}/build"
       }
   }
}



OpenCV_Project / src / CMakeLists.txt


add_executable(hello main.cpp)



OpenCV_Project / src /


#include <iostream>

int main(int argc, const char** argv)
{
   std::cout << "Hello, world!\n";
   return 0;
}




3-7. 사이드 바에서 OpenCV_Project / src / main.cpp를 선택하고 다음 코드로 내용을 대체합니다.


#include "module.h"
 
int main(int, char**)  
{  
   //웹캡으로 부터 데이터 읽어오기 위해 준비  
   VideoCapture cap(0);  


   if (!cap.isOpened())  
   {
       printf("첫번째 카메라를 열수 없습니다. \n");  
   }
 
 
   Mat frame;  
   namedWindow("camera", 1);  
   
 
   for (;;)  
   {
 
       //웹캡으로부터 한 프레임을 읽어옴  
       cap >> frame;  
        
       Mat img_result;
       process( frame, img_result );
 
       imshow("camera", img_result);  
 
       if (waitKey(20) >= 0) break;  
   }
 
 
   return 0;  
}




3-8. 사이드 바에서 src 폴더를 선택하고 마우스 우클릭하여 보이는 메뉴에서 New File을 선택합니다.




다음 내용을 새로 열린 파일에 입력하고 Ctrl + S를 누릅니다.


#include "opencv2/opencv.hpp"  
#include <iostream>  
 
using namespace cv;   
using namespace std;  

int process(Mat img_input, Mat& img_result);




이름을 module.h로 수정하고 저장 버튼을 클릭합니다.





3-8. 같은 방식으로 module.cpp 파일에 다음 내용을 저장합니다.


#include "module.h"

int process(Mat img_input, Mat& img_result)
{
  cvtColor(img_input, img_result, CV_RGBA2GRAY);
  
       return (0);
}




3-9. 이제 src 폴더에 3개의 소스파일이 추가 되어 있습니다.





3-10. OpenCV_Project / src / CMakeLists.txt 파일을 다음처럼 수정하고 Ctrl + S를 눌러 저장합니다.


file(GLOB SOURCES  *.cpp)
add_executable(${PROJECT_NAME} ${SOURCES}  )

find_package( OpenCV REQUIRED )
target_link_libraries( OpenCV_Project ${OpenCV_LIBS} )



다음처럼 cmake 실행이 완료됩니다.


-- The CXX compiler identification is GNU 7.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenCV: /usr/local (found version "3.4.1")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/webnautes/OpenCV_Project/build
[Finished in 0.9s]




3-11. 메뉴에서 Tools > Build를 선택합니다. 아래와 같은 메뉴가 보이면 프로젝트 이름이 포함되있는 네번째 항목을 선택합니다.




다음처럼 컴파일이 진행됩니다.


Scanning dependencies of target OpenCV_Project
[ 33%] Building CXX object src/CMakeFiles/OpenCV_Project.dir/main.cpp.o
[ 66%] Building CXX object src/CMakeFiles/OpenCV_Project.dir/module.cpp.o
[100%] Linking CXX executable OpenCV_Project
[100%] Built target OpenCV_Project
[Finished in 2.1s]




3-12. 터미널에서 /home/webnautes/OpenCV_Project/build/src 로 이동하여 실행시켜 봅니다.






3-13. module.h, module.cpp 파일을 삭제하고 main.cpp 파일 하나일 경우로 수정해봅니다.



#include "opencv2/opencv.hpp"  
#include <iostream>  
 
using namespace cv;   
using namespace std;

int process(Mat img_input, Mat& img_result)
{
  cvtColor(img_input, img_result, CV_RGBA2GRAY);
  
  return (0);
}

int main(int, char**)  
{  
   //웹캡으로 부터 데이터 읽어오기 위해 준비  
   VideoCapture cap(0);  

   if (!cap.isOpened())  
   {
       printf("첫번째 카메라를 열수 없습니다. \n");  
   }
 
 
   Mat frame;  
   namedWindow("camera", 1);  
   
 
   for (;;)  
   {
 
       //웹캡으로부터 한 프레임을 읽어옴  
       cap >> frame;  
        
       Mat img_result;
       process( frame, img_result );
 
       imshow("camera", img_result);  
 
       if (waitKey(20) >= 0) break;  
   }
 
 
   return 0;  
}




3-14. 메뉴에서 Tools > CMakerBuilder > Configure를 선택합니다.


-- Configuring done
-- Generating done
-- Build files have been written to: /home/webnautes/OpenCV_Project/build
[Finished in 0.1s]



메뉴에서 Tools > Build를 선택합니다.


Scanning dependencies of target OpenCV_Project
[ 50%] Linking CXX executable OpenCV_Project
[100%] Built target OpenCV_Project
[Finished in 0.3s]



다시 실행해보면 문제 없이 실행이 됩니다.




참고


http://tipsonubuntu.com/2017/05/30/install-sublime-text-3-ubuntu-16-04-official-way/


http://devanix.tistory.com/222






반응형

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

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

유튜브 구독하기


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

+ Recent posts