我怎样才能转换" rs2 :: video frame"到" CvCapture *"?

时间:2018-04-10 10:28:43

标签: realsense

我是Intel Realsense SDK的新手,并在Visual Studio 2017(C或C ++)中为Intel Realsense相机D435编码。

在我的例子中,我有以下内容,

static rs2::frameset current_frameset;
auto color = current_frameset.get_color_frame();
frame = cvQueryFrame(color);

我在第3行遇到错误,因为 "无法转换&#rs; rs2 :: video_frame'到' CvCapture'

我无法找到解决此问题的方法,而且证明难以解决并导致更多错误。

有谁知道如何克服这个问题?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

cvQueryFrame接受cvCapture实例,它用于从相机中检索帧。在LibRS中,您检索到的框架已经可以使用,您不必再次取回它。在LibRS中附加了CV示例的片段,您可以参考完整的代码here

rs2::pipeline pipe;
// Start streaming with default recommended configuration
pipe.start();

using namespace cv;
const auto window_name = "Display Image";
namedWindow(window_name, WINDOW_AUTOSIZE);

while (waitKey(1) < 0 && cvGetWindowHandle(window_name))
{
    rs2::frameset data = pipe.wait_for_frames(); // Wait for next set of frames from the camera
    rs2::frame depth = color_map(data.get_depth_frame());

    // Query frame size (width and height)
    const int w = depth.as<rs2::video_frame>().get_width();
    const int h = depth.as<rs2::video_frame>().get_height();

    // Create OpenCV matrix of size (w,h) from the colorized depth data
    Mat image(Size(w, h), CV_8UC3, (void*)depth.get_data(), Mat::AUTO_STEP);

    // Update the window with new data
    imshow(window_name, image);
}