Visual Studio에서 RealSense 개발 환경을 정돈

15554 단어 C++RealSenseOpenCV

소개



이 기사에서는 Visual Studio (C++)에서 RealSense를 개발하는 데 필요한 librealsense2 및 OpenCV를 도입하는 방법을 소개합니다.

운영 환경


  • intel RealSense Depth Camera D435 (구매는 여기에서)
  • Windows 10 Home(1909)
  • Visual Studio 2019
  • Intel.RealSense.SDK-WIN10-2.39.0.2337
  • OpenCV 4.4.0

  • librealsense2 다운로드



    IntelRealSense 사이트에서 최신 IntelRealSnese.SDK.WIN10-*.exe 다운로드
    ② 다운로드 파일 실행, 설치
    ⇒ Intel RealSense Viewer, Examples for Intel RealSense SDK(샘플 프로그램) 등
    ③ C:\Progran Files(x86) 내에 Intel RealSense SDK 2.0 폴더가 있는지 확인

    OpenCV 다운로드



    (※OpenCV가 필요없는 경우는 날린다)
    github의 OpenCV 페이지 에서 최신 opencv-*.-vc_14_vc_15.exe 다운로드
    ② 다운로드 파일의 실행, 적당한 장소에 전개
    ③ 작성된 "opencv"라는 파일을 C 바로 아래로 이동

    Visual Studio 설정



    ① Visual Studio를 기동, 적당한 장소에 신규 프로젝트의 작성

    ② 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하여 속성 열기

    ③ 구성: 모든 구성, 플랫폼: 64x 선택

    ④ 구성 프로퍼티→VC++ 디렉토리에서
    Include 디렉터리 C:\Program Files (x86)\Intel RealSense SDK 2.0\include 및 C:\opencv\build\include
    라이브러리 디렉토리를 C:\Program Files (x86)\Intel RealSense SDK 2.0\lib\x64 및 C:\opencv\build\x64\vc15\lib
     로 설정


    ⑤ 링커 → 입력으로
    추가 종속 파일을 realsense2.lib 및 opencv_world430d.lib로 설정
    적용 → OK



    환경 변수 설정



    환경 변수에 C:\opencv\build\x64\vc15\bin 및 C:\Program Files (x86)\Intel RealSense SDK 2.0\bin\x64 추가
    그런 다음 환경 변수를 적용하기 위해 재부팅


    동작 확인



    RealSense SDK 샘플 프로그램을 기반으로 작성한 다음 프로그램을 실행할 수 있으면 성공

    main.cpp
    #include <librealsense2/rs.hpp>
    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    int main(int argc, char* argv[]) try
    {
        int WIDTH = 640;
        int HEIGHT = 480;
        int FPS = 30;
        rs2::config config;
        config.enable_stream(RS2_STREAM_COLOR, WIDTH, HEIGHT, RS2_FORMAT_BGR8, FPS);
        config.enable_stream(RS2_STREAM_DEPTH, WIDTH, HEIGHT, RS2_FORMAT_Z16, FPS);
        rs2::pipeline pipe;
        pipe.start(config);
    
        rs2::colorizer color_map;
        rs2::align align(RS2_STREAM_COLOR);
    
        for (int i = 0; i < 3; i++)
        {
            rs2::frameset frames = pipe.wait_for_frames();
            cv::waitKey(10);
        }
    
        while (true)
        {
            rs2::frameset frames = pipe.wait_for_frames();
            auto aligned_frames = align.process(frames);
            rs2::video_frame color_frame = aligned_frames.first(RS2_STREAM_COLOR);
            rs2::video_frame depth_frame = aligned_frames.get_depth_frame().apply_filter(color_map);
    
            cv::Mat color_image(cv::Size(WIDTH, HEIGHT), CV_8UC3, (void*)color_frame.get_data(), cv::Mat::AUTO_STEP);
            cv::Mat depth_image(cv::Size(WIDTH, HEIGHT), CV_8UC3, (void*)depth_frame.get_data(), cv::Mat::AUTO_STEP);
    
            cv::Mat images(cv::Size(2 * WIDTH, HEIGHT), CV_8UC3);
            cv::Mat color_positon(images, cv::Rect(0, 0, WIDTH, HEIGHT));
            color_image.copyTo(color_positon);
            cv::Mat depth_positon(images, cv::Rect(WIDTH, 0, WIDTH, HEIGHT));
            depth_image.copyTo(depth_positon);
            cv::imshow("images", images);
    
            if (cv::waitKey(10) == 27)  // ESCキーで終了
            {
                cv::destroyAllWindows;
                break;
            }
        }
        pipe.stop();
    
        return EXIT_SUCCESS;
    }
    catch (const rs2::error& e)
    {
        std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n    " << e.what() << std::endl;
        return EXIT_FAILURE;
    }
    catch (const std::exception& e)
    {
        std::cerr << e.what() << std::endl;
        return EXIT_FAILURE;
    }
    



    템플릿 만들기



    지금까지 Visual Studio 설정을 새 프로젝트를 만든 경우에도 다시 할 필요가 없도록 템플릿을 만들어 두면 개발이 진행되기 쉬워진다
    ① main.cpp의 내용이나 파일 자체를 삭제
    ② 프로젝트 → 템플릿 내보내기를 선택

    ③ 기본값 그대로 다음, 완료

    ④ 성공적으로 템플릿이 생성되면 새 프로젝트를 만들 때 "realsense"템플릿이 표시됩니다.

    좋은 웹페이지 즐겨찾기