2016-10-16 19 views
1

Zed-Cameraで深さを取得するために使用しました(https://www.stereolabs.com/)。 OpenCVライブラリを使用して、C++でデータを取得します。 1行はコンパイルされませんので、 https://www.stereolabs.com/blog/index.php/2015/06/28/zed-with-opencv/Zedカメラ - openCVを使用してC++でデータを取得

ウェブサイト上のコードが動作しない:

    sl::zed::ERRCODE err = zed->init(sl::zed::MODE::PERFORMANCE, 0, true); 
    

    は、私が2つのエラーが出

    は、私はここからのコードを取りました
  1. 非constへの参照の初期値は左辺値でなければなりません

  2. 関数呼び出しで引数が多すぎます。

が、私は関数の中で見て、関数が取得する:あなたはパラメータがInitParamsに変更された見ることができるよう

ERRCODE init(InitParams &parameters); 

は、私はあなたの助け

答えて

0

はいを​​いただければ幸いです。

sl::zed::InitParams params; 
params.verbose = true; 
sl::zed::ERRCODE err = camera->init(params); 
+0

おかげで、 しかし、今、私は一種LNK2019のエラーの多くを得る見つけることができます。例:エラーLNK2019:関数 "public:__thiscall cv :: Mat ::〜Mat(void)"で参照される未解決の外部シンボル "void __cdecl cv :: fastFree(void *)"(?fastFree @ cv @@ YAXPAX @ Z) (?? 1Mat @ cv @@ QAE @ XZ) あなたはその理由を知っていますか? ありがとう:-) – user2586778

0

このようなことができます。

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

関連する問題