반응형


VisualGDB와 Visual Studio를 사용하여 Raspberry Pi를 위해 OpenCV 코드를 크로스 컴파일하는 과정을 다룹니다.




1. 우선 다음 포스트를 먼저 진행하세요.


Raspberry Pi를 위해 크로스 컴파일러(cross compiler) 사용하기 (  VisualGDB와 Visual Studio를 사용 )

https://webnautes.tistory.com/1420



Raspberry Pi에 OpenCV를 설치하지 않았다면 다음 포스트를 진행하세요.


Raspberry Pi 3에  Extra Module(contrib) 포함하여 OpenCV 4.1.2 설치하는 방법

http://webnautes.tistory.com/916 




2. Visual Studio 메뉴에서 File > New > VisualGDB Project를 선택합니다. 




3. Linux Project Wizard를 선택하고 Name 항목에 프로젝트 이름을 적고 Add 버튼을 클릭합니다. 프로젝트 이름에 공백이 포함되지 않도록 주의해야 합니다. 





4. Application, CMake, GNU Make를 선택하고 Next를 클릭합니다. 





5. 1번에서 언급한 포스팅을 진행했다면 SSH를 설정이 이미 되어있습니다.  Finish 버튼을 클릭합니다. 





6. CMake가 설치안되어 있는 경우 다음 메시지 박스가 보입니다. Yes를 선택하면 cmake가 설치됩니다. 





7. CMake를 빌드 시스템으로 사용하는 프로젝트가 생성됩니다. 





8. 라즈베리파이에서 추가한 라이브러리를 가져와 사용할 수 있습니다. 


Visual Studio 메뉴에서 Project > VisualGDB Project Properties를 선택합니다. 

왼쪽 메뉴에서 CMake project settings를 선택하고 오른쪽에 보이는 Synchronize sysroot를 선택합니다.  





Synchronise 버튼을 클릭합니다.

라즈베리파이의 아래 보이는 위치들에서 헤더파일과 라이브러리를 윈도우로 가져옵니다.

가져와 저장되는 경로는 local sysroot directory 항목에 있는 경로입니다. 




C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\usr\local\lib로 이동해보면 Raspberry PI에 설치해둔 OpenCV 관련 라이브러리 파일까지 가져오는 것을 볼 수 있습니다. 





9. 프로젝트의 cpp 파일에 다음 코드를 복사합니다.



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


using namespace cv;
using namespace std;


int main()
{
Mat image;
image = imread("/home/pi/house.jpg", IMREAD_COLOR);
if (image.empty())
{
cout << "Could not open or find the image" << endl;
return -1;
}

namedWindow("Original", WINDOW_AUTOSIZE);
imshow("Original", image);

waitKey(0);

}




10. CMakeLists.txt 파일에 노란색 내용을 추가합니다. 



#Generated by VisualGDB project wizard.
#Note: VisualGDB will automatically update this file when you add new sources to the project.

cmake_minimum_required(VERSION 2.7)
project(OpenCVExample)
set(LIBRARIES_FROM_REFERENCES "")
add_executable(OpenCVExample OpenCVExample.cpp)

find_package(OpenCV REQUIRED)
ocv_include_directories("${OpenCV_SOURCE_DIR}/include")
ocv_include_modules_recurse(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS})

target_link_libraries(OpenCVExample ${OpenCV_LIBS} "${LIBRARIES_FROM_REFERENCES}")




11. house.jpg 이미지를 Raspberry PI의 /home/pi/ 위치에 복사해줍니다. 

저는 MobaXterm을 사용하여 Raspberry Pi에 SSH 접속한 후, 왼쪽에 보이는 탐색기에 house.jpg를 드래그앤드롭하여 

이미지를 Raspberry Pi에 복사해주었습니다. 





12. Visual Studio에서 F5를 눌러서 실행합니다. 



잠시 기다리면 다음처럼 실행결과를 볼 수 있습니다. 




최초작성 2020. 5. 24



참고 

https://visualgdb.com/tutorials/raspberry/opencv/build/







반응형

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

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

유튜브 구독하기


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

  1. 2020.09.01 18:18

    비밀댓글입니다

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.09.01 20:20 신고

      VisualGDB에서 만든 프로젝트를 그대로 리눅스에서 사용하기는 힘들듯합니다.

      소스코드파일 옮기고 리눅스에 맞게 CMakeLists.txt를 수정해야 합니다.

+ Recent posts