OpenCV:以数组形式获取图像数据

OpenCV:以数组形式获取图像数据,opencv,Opencv,我开始学习OpenCV,在一些基本操作方面遇到了一些问题。因此,我可以按如下方式读取视频文件: cv::VideoCapture cap("media.avi"); cv::Mat imgNew; while (cap.read(imgNew)) { } 现在,我有另一个具有以下签名的函数: template<class T> bool get_estimate(const T * image_data, int num_pixels) 模板 bool get_估计值(常数*图

我开始学习OpenCV,在一些基本操作方面遇到了一些问题。因此,我可以按如下方式读取视频文件:

cv::VideoCapture cap("media.avi");
cv::Mat imgNew;
while (cap.read(imgNew)) {
}
现在,我有另一个具有以下签名的函数:

template<class T> 
bool get_estimate(const T * image_data, int num_pixels)
模板
bool get_估计值(常数*图像数据,整数像素)
现在,这将图像数据作为类型为
const T
的线性数组,其中
T
在这种情况下可以是
无符号字符
,并且
num_pixels
是图像中的像素数


有人能告诉我如何使用这个
cv::Mat
类型的方法吗。我希望有一些简单的方法来获取底层数组及其类型,而无需将数据复制到临时数组中,但我不确定。我总是可以假设正在读取的视频图像总是转换为灰度。

OpenCV中的
Mat
类有一个
uchar*data
成员,可用于访问底层数据

matmyimg//假设为单通道2D矩阵。
无符号字符*p;
p=myImg.数据;
for(无符号整数i=0;i这是相似的吗?问题在于矩阵到数组的转换是通过复制实现的。我想知道有没有不抄袭的方法……谢谢!这正是我所需要的。
Mat myImg;                       //assume single channel 2D matrix.
unsigned char *p;
p = myImg.data;
for( unsigned int i=0; i< myImg.cols*myImg.rows; i++ )
    std::cout<< p[i];