2013-04-08 3 views
0

В чем большая разница между многомерным массивом Boost и многомерным массивом OpenCV?Boost multiarray vs OpenCV Mat

Я реализую алгоритм кластеризации в C++ и нуждаюсь в структурах данных для хранения точек данных. Он должен иметь возможность обрабатывать различные данные измерений, такие как 1D-данные (изображение с серой шкалой), 3D-данные (цветные изображения) и данные N-d (после выбора функции).

Какой из них выбрать? Кажется, что для OpenCV Mat нам нужно знать размерность данных перед началом работы.

+1

Если вы собираетесь использовать opencv-функции, Mat должен быть лучше, если вы будете использовать дополнительную функциональность boost, вы должны пойти с повышением. Я бы пошел с библиотекой, в которой я более опытен. –

+0

Но для Mat openCV вы должны предопределить количество каналов. Невозможно иметь одну функцию, которая может принимать данные с 1-D, 3-D или N-D? –

ответ

1

Как сказал perfanoff, я бы выбрал библиотеку, в которой вы наиболее уверены, и которую вы собираетесь использовать больше в своем коде. В стороне, и учитывая, что вы обрабатываете данные изображения, OpenCV кажется лучшим выбором.

Контейнеры OpenCV Mat могут возвращать свои type, поэтому ваши функции могут проверять, имеют ли матрицы 1-канальный, 3-канальный или N-й данные. Вы также можете использовать функции element size для поиска количества каналов.

Как отказ от ответственности, у меня нет большого опыта работы с многомерными массивами Boost.