Last active
October 19, 2020 15:54
-
-
Save adujardin/1de520bae536c9991b75b542b09fac16 to your computer and use it in GitHub Desktop.
OpenCV Mat <-> ZED SDK Mat
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
inline cv::Mat slMat2cvMat(const sl::Mat& input) { | |
int cv_type = -1; | |
switch (input.getDataType()) { | |
case sl::MAT_TYPE::F32_C1: cv_type = CV_32FC1; | |
break; | |
case sl::MAT_TYPE::F32_C2: cv_type = CV_32FC2; | |
break; | |
case sl::MAT_TYPE::F32_C3: cv_type = CV_32FC3; | |
break; | |
case sl::MAT_TYPE::F32_C4: cv_type = CV_32FC4; | |
break; | |
case sl::MAT_TYPE::U8_C1: cv_type = CV_8UC1; | |
break; | |
case sl::MAT_TYPE::U8_C2: cv_type = CV_8UC2; | |
break; | |
case sl::MAT_TYPE::U8_C3: cv_type = CV_8UC3; | |
break; | |
case sl::MAT_TYPE::U8_C4: cv_type = CV_8UC4; | |
break; | |
default: break; | |
} | |
return cv::Mat(input.getHeight(), input.getWidth(), cv_type, input.getPtr<sl::uchar1>(sl::MEM::CPU), input.getStepBytes(sl::MEM::CPU)); | |
} | |
// Be careful about the memory owner, might want to use it like : | |
// cvMat2slMat(cv_mat).copyTo(sl_mat, sl::COPY_TYPE::CPU_CPU); | |
inline sl::Mat cvMat2slMat(const cv::Mat& input) { | |
sl::MAT_TYPE sl_type; | |
switch (input.type()) { | |
case CV_32FC1: sl_type = sl::MAT_TYPE::F32_C1; | |
break; | |
case CV_32FC2: sl_type = sl::MAT_TYPE::F32_C2; | |
break; | |
case CV_32FC3: sl_type = sl::MAT_TYPE::F32_C3; | |
break; | |
case CV_32FC4: sl_type = sl::MAT_TYPE::F32_C4; | |
break; | |
case CV_8UC1: sl_type = sl::MAT_TYPE::U8_C1; | |
break; | |
case CV_8UC2: sl_type = sl::MAT_TYPE::U8_C2; | |
break; | |
case CV_8UC3: sl_type = sl::MAT_TYPE::U8_C3; | |
break; | |
case CV_8UC4: sl_type = sl::MAT_TYPE::U8_C4; | |
break; | |
default: break; | |
} | |
return sl::Mat(input.cols, input.rows, sl_type, input.data, input.step, sl::MEM::CPU); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment