OpenCV:以数组形式获取图像数据
我开始学习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_估计值(常数*图
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];