如何在openCV中使用c++接口初始化和访问Mat标量矩阵中的条目

How to inialize and access the entries in Mat scalars matrix in openCV using C++ interface?

本文关键字:标量 Mat 访问 初始化 openCV 接口 c++      更新时间:2023-10-16

我正在尝试对矩阵做一些基本的代数运算。我想使用类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);

起作用了。有人能帮我解释一下标量矩阵吗?例如,我如何打印条目?谢谢你!

你的代码的主要问题是数据[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);