我是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'
我无法找到解决此问题的方法,而且证明难以解决并导致更多错误。
有谁知道如何克服这个问题?
感谢您的帮助!
答案 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);
}