How to pass OpenCV Mat(CV_8UC3) to Matlab generated c++ code and vice-versa? Efficiently
'Matlab coder' generated a c++ function. (function name is 'matlab')
matlab(uv0, outImg);
//Before calling, arguments need to declared
emxArray_uint8_T *outImg;
static unsigned char uv0[758016];
emxInitArray_uint8_T(&outImg, 3);
I don't know how 'cv::Mat' can be converted into 'unsigned char uv0'
and
'emxArray_uint8_T *outImg' back into cv::Mat.
//some related function are
static void argInit_376x672x3_uint8_T(unsigned char result[758016])
{
int idx0;
int idx1;
unsigned char result_tmp;
for (idx0 = 0; idx0 < 376; idx0++) {
for (idx1 = 0; idx1 < 672; idx1++) {
result_tmp = argInit_uint8_T();
result[idx0 + 376 * idx1] = result_tmp;
result[(idx0 + 376 * idx1) + 252672] = result_tmp;
result[(idx0 + 376 * idx1) + 505344] = argInit_uint8_T();
}
}
}
static unsigned char argInit_uint8_T()
{
return 0U;
}