Вы должны использовать какой-то вариант объекта cv :: Mat.
Для небольших матриц, где размер известен и фиксирован , вы можете использовать объект cv :: Matx:
cv::Matx33d rotation( 0.0, 1.0, 0.0,
-1.0, 0.0, 0.0,
0.0, 0.0, 1.0 );
Для массивов динамического размера вы используете объект cv :: Mat
cv::Mat aBigMatrix( 53, 71, cv::CV_64FC1, cv::Scalar::all( 0.0 ) );
Это создаст 2d-матрицу с шириной 53, высотой 71, каждый элемент является одноканальным значением 64-битной плавающей запятой (в основном, двойным), и все элементы будут установлены в 0.
В качестве альтернативы вы можете использовать шаблонный класс cv :: Mat_, и выгода заключается в более чистой инициализации (среди прочего):
cv::Mat_<double> anotherBigMatrix( 53, 71, 0.0 );
Это создаст матрицу, эквивалентную описанной выше.
Наконец, вы можете использовать класс матрицы шаблонов со списком инициализации, аналогичным тому, как вы делали бы это в обычном C:
Существует множество компромиссов при использовании различных классов, поэтому вам следует обязательно прочитать документацию OpenCV , чтобы выбрать правильный