Как инициализировать и получить доступ к записям в матрице скаляров Mat в openCV, используя интерфейс C ++?

Я пытаюсь сделать некоторые основные алгебраические операции над матрицами.
Я хотел бы использовать класс Mat из openCV.
Я использовал следующий простой код, который не будет работать:

void main()
{
float data[2][5] = {{1,2,3,4,5},{7,8,9,10,11}};
Mat H = Mat(2, 5, CV_8UC1, data);
cout << H.at<float>(0,0);
//OR:
cout << H;
}

Теперь я уже сталкивался с подобной проблемой при загрузке изображения функцией imread.
Я преодолел это, начав с C, а затем перейдя к C ++:

IplImage* Csrc = cvLoadImage("D:/picture.jpg");
Mat src(Csrc);

который работал
Может ли кто-нибудь помочь со скалярными матрицами? Как я могу напечатать записи, например?
Спасибо.

0

Решение

Основная проблема вашего кода в том, что data [2] [5] — это матрица с плавающей запятой, а H — это матрица с незакрашенным знаком.

Объявите матрицу H как —

Mat H=Mat(2,5,CV_32FC1,data);

Ваша вторая проблема очень проста

Чтобы прочитать изображение как объект cvMat и отобразить его, просто выполните —

Mat M = imread("/home/Pictures/image.png",1);
imshow("IMAGE",M);
waitKey(0);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]