Я пытаюсь сделать некоторые основные алгебраические операции над матрицами.
Я хотел бы использовать класс 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);
который работал
Может ли кто-нибудь помочь со скалярными матрицами? Как я могу напечатать записи, например?
Спасибо.
Основная проблема вашего кода в том, что 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);
Других решений пока нет …