2013-04-15 3 views
0

У меня есть SparseMat A с размерами 50x50. У меня есть другая матрица B с размерами 10x10. Я хочу добавить подматрицу A (0 ~ 10 x 0 ~ 10) с B. Как извлечь подматрицу SparseMat. Мне понравилось в Mat as A (Range (0,10), Range (0,10)), ошибка - это «вызов объекта типа класса без соответствующего оператора() или функций преобразования для указателя на функцию тип". Как решить эту проблему? СпасибоКак извлечь подматрицу SparseMat

ответ

0

Эти функции не реализованы в OpenCV (очень мало операций фактически реализовано на разреженных матрицах).

Что вам нужно сделать, это перебрать разреженную матрицу с помощью предоставленного итератора SparseMatConstIterator_<T>, проверить, находится ли позиция ненулевой точки в интересующей вас области, а затем написать ее. Вам нужно перебрать ненулевые элементы вашей разреженной матрицы, но вы можете добавить тест для раннего выхода, когда целевая матрица заполнена.

Кстати, 50x50 не такой большой. Вы можете переключиться на плотные матрицы для упрощения обработки матриц. Я регулярно работаю с матрицами 1024x1024 в OpenCV.

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