2014-10-03 3 views
0

Так что я пытаюсь выяснить, что было бы эквивалентом этого:OpenCV - OpenCV Mat эквивалент повышающего матрицы array_type

boost::numeric::ublas::matrix<T>::array_type& matrix_data = prev_matrix.data(); 

но используя класс OpenCV Mat?

Я пытаюсь использовать cv :: Mat для замены уже существующей базы кода, которая изначально использовала матрицу boost, и эта часть меня несколько озадачила.

У меня есть следующие:

cv::Mat& matrix_data(prev_matrix); <--prev_matrix is also a cv::Mat now 

for (unsigned int i = 0; i < matrix_data.size(); ++i) <--- line that has an error 
{ 
    matrix_data[i] = value; 
} 

, но я получаю следующее сообщение об ошибке:

error: no match for ‘operator<’ in ‘i < cv::Mat::MSize::operator()() const()’ 

Я пытаюсь обернуть мою голову вокруг двух разных объектов, но по какой-то причине, даже чтение документация не дает понимания того, как правильно исправить это.

ответ

1

Вместо matrix_data.size()matrix_data.total(). Функция size() возвращает тип Size, тогда как она отображается, вы просто ищете общее количество элементов, возвращаемое total().

+0

спасибо. Это то, что я искал. –

Смежные вопросы