如何在D435相机中分割两个cfg.enable_streams?

时间:2018-04-17 05:13:44

标签: realsense

我希望通过IntelRealsence D435相机看到视频的两个部分。

RGB中的一个640x480IR中的另一个是1280x720(深度相机)。

以下代码出错,也许cfg.enable_stream不能按大小划分。

我怎么能分开它们? 这是我的代码:

#include <opencv2/opencv.hpp>
#include "example.hpp"

#include <stdio.h>

using namespace std;
using namespace cv;


int main()
{
    rs2::pipeline pipe;
rs2::config cfg;

//Add desired streams to configuration
cfg.enable_stream(RS2_STREAM_COLOR, RS2_FORMAT_BGR8, 30);
//for infrared
//cfg.enable_stream(RS2_STREAM_INFRARED, 1280, 720, RS2_FORMAT_Y8, 30);
cfg.enable_stream(RS2_STREAM_DEPTH, RS2_FORMAT_Z16, 30);

pipe.start(cfg);

texture depth_image;

rs2::align align_to(RS2_STREAM_DEPTH);

rs2::decimation_filter dec;

dec.set_option(RS2_OPTION_FILTER_MAGNITUDE, 2);

rs2::disparity_transform depth2disparity;

// Define spatial filter (edge-preserving)
rs2::spatial_filter spat;

spat.set_option(RS2_OPTION_HOLES_FILL, 5);
rs2::temporal_filter temp;

rs2::disparity_transform disparity2depth(false);

rs2::frame_queue postprocessed_frames;

CvSize size = cvSize(1280, 720);

for (;;)
{
    rs2::frameset frames = pipe.wait_for_frames();
    rs2::frame color_frame = frames.get_color_frame();

    rs2::colorizer color_map;
    rs2::frame depth_frame = color_map(frames.get_depth_frame());

我将运行此代码来获取图片     垫颜色(尺寸(640,480),CV_8UC3,(void *)color_frame.get_data(),Mat :: AUTO_STEP);     const IplImage image_frame_show = new IplImage(color);     namedWindow(&#34;显示颜色&#34;,WINDOW_AUTOSIZE);     cvShowImage(&#34;显示颜色&#34;,image_frame_show);     Mat depth_show(Size(1280,720),CV_8UC3,(void )depth_frame.get_data(),Mat :: AUTO_STEP);     const IplImage * depth_frame_show = new IplImage(depth_show);     namedWindow(&#34;显示深度&#34;,WINDOW_AUTOSIZE);     cvShowImage(&#34;显示深度&#34;,depth_frame_show);

    waitKey(10);

}

return 0;

}

1 个答案:

答案 0 :(得分:0)

可以单独配置流,请尝试在下面编写代码以便在管道中进行配置。

rs2::pipeline pipe;
rs2::config cfg;
cfg.enable_stream(RS2_STREAM_COLOR, 640, 480, RS2_FORMAT_RGB8, 30);
cfg.enable_stream(RS2_STREAM_DEPTH, 1280, 720, RS2_FORMAT_Z16, 30);
pipe.start(cfg);