通常,如果我的数据是非常量的,我可以在它上面初始化一个cv :: Mat标头以进行代数操作。为const数据创建cv :: Mat标头
float awesome_data[24] = {0};
cv::Mat awesome_mat = cv::Mat(6, 4, CV_32F, awesome_data);
但是,如果我的数据是常量
const float awesome_data[24] = {0};
cv::Mat awesome_mat = cv::Mat(6, 4, CV_32F, awesome_data);
将有一个错误:unable to convert from const void * to void *
。我知道我不会改变awesome_mat,那么做这件事的最好方法是什么?
目前,我要做一个const投
const float awesome_data[24] = {0};
cv::Mat awesome_mat = cv::Mat(6, 4, CV_32F, const_cast<float *>(awesome_data));
,什么是你想达到与? – fazo 2011-04-13 19:43:13
如果一个对象是cv :: Mat,我可以执行任何线性代数,图像处理,...操作。我不能用它做什么? :-) – 2011-04-13 19:46:14
我不是那个意思。 const_cast的作品 - 有你想要或预期的其他东西吗? – fazo 2011-04-13 19:53:37