Visual Studio에서 RealSense 개발 환경을 정돈
소개
이 기사에서는 Visual Studio (C++)에서 RealSense를 개발하는 데 필요한 librealsense2 및 OpenCV를 도입하는 방법을 소개합니다.
운영 환경
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"템플릿이 표시됩니다.
끝
Reference
이 문제에 관하여(Visual Studio에서 RealSense 개발 환경을 정돈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/_m_a_s_a_/items/ed75a33b834957870aa9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
(※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"템플릿이 표시됩니다.
끝
Reference
이 문제에 관하여(Visual Studio에서 RealSense 개발 환경을 정돈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/_m_a_s_a_/items/ed75a33b834957870aa9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
환경 변수에 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"템플릿이 표시됩니다.
끝
Reference
이 문제에 관하여(Visual Studio에서 RealSense 개발 환경을 정돈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/_m_a_s_a_/items/ed75a33b834957870aa9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#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"템플릿이 표시됩니다.
끝
Reference
이 문제에 관하여(Visual Studio에서 RealSense 개발 환경을 정돈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/_m_a_s_a_/items/ed75a33b834957870aa9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)