このようなことができます。
m_pZed = new sl::Camera();
sl::InitParameters zedInit;
zedInit.camera_buffer_count_linux = 4;
zedInit.camera_disable_self_calib = false;
zedInit.camera_fps = m_zedFPS;
zedInit.camera_image_flip = m_bZedFlip;
zedInit.camera_linux_id = 0;
zedInit.camera_resolution = (sl::RESOLUTION) m_zedResolution;
zedInit.coordinate_system = sl::COORDINATE_SYSTEM::COORDINATE_SYSTEM_IMAGE;
zedInit.coordinate_units = sl::UNIT::UNIT_METER;
zedInit.depth_minimum_distance = m_zedMinDist;
zedInit.depth_mode = (sl::DEPTH_MODE) m_zedDepthMode;
zedInit.sdk_gpu_id = -1;
zedInit.sdk_verbose = true;
sl::ERROR_CODE err = m_pZed->open(zedInit);
if (err != sl::SUCCESS)
{
LOG(ERROR)<< "ZED Error code: " << sl::errorCode2str(err) << std::endl;
return false;
}
m_pZed->setConfidenceThreshold(m_zedConfidence);
m_pZed->setDepthMaxRangeValue((float) m_zedMaxDist);
// Set runtime parameters after opening the camera
m_zedRuntime.sensing_mode = (sl::SENSING_MODE) m_zedSenseMode;
m_zedRuntime.enable_depth = true;
m_zedRuntime.enable_point_cloud = false;
m_zedRuntime.move_point_cloud_to_world_frame = false;
// Create sl and cv Mat to get ZED left image and depth image
sl::Resolution zedImgSize = m_pZed->getResolution();
// Initialize color image and depth
m_width = zedImgSize.width;
m_height = zedImgSize.height;
m_centerH = m_width/2;
m_centerV = m_height/2;
// Best way of sharing sl::Mat and cv::Mat :
// Create a sl::Mat and then construct a cv::Mat using the ptr to sl::Mat data.
m_pzDepth = new sl::Mat(zedImgSize, sl::MAT_TYPE_32F_C1, sl::MEM_GPU);
m_gDepth = slMat2cvGpuMat(*m_pzDepth);
m_gDepth2 = GpuMat(m_gDepth.size(), m_gDepth.type());
詳細はこちら(https://github.com/yankailab/OpenKAI/blob/master/src/Vision/_ZED.cpp)
おかげで、 しかし、今、私は一種LNK2019のエラーの多くを得る見つけることができます。例:エラーLNK2019:関数 "public:__thiscall cv :: Mat ::〜Mat(void)"で参照される未解決の外部シンボル "void __cdecl cv :: fastFree(void *)"(?fastFree @ cv @@ YAXPAX @ Z) (?? 1Mat @ cv @@ QAE @ XZ) あなたはその理由を知っていますか? ありがとう:-) – user2586778