求用opencv把摄像头读取的图像转换成矩阵形式的代码

最好是从图像的读取到最后转换成矩阵形式的,谢谢

代码大概是这样的:
pCapture = cvCaptureFromCAM(-1);//从摄像头创建一个CvCapture对象
pFrame = cvQueryFrame( pCapture );//从PCapture中取得一帧
CvMat* pFrameMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC3);//定义一个指向CvMat对象的指针
cvConvert(pFrame, pFrameMat);//将PFrame转成CvMat。
如果你要取得pFrame的数据,可以直接用:pFrame->imageData,然后根据矩阵的形式来读写数据。追问

你好,我想输出矩阵的数据,要怎样写呢?谢谢

追答

uchar* data=(uchar*)pframe->imageData;
for(int i=0;iheight;i++)
for(int j=0;jwidth;j++)
for(int k=0;knchannels;k++)
printf("%d", data[i*img->widthStep+j*img->nchannels+k]);
通过上面的代码就可以讲矩阵里的数据打印出来。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-19
opencv里面有个函数cvConvert,假设你读取的图片是Image,矩阵为Mat,则用cvConvert(Image, Mat);可以实现将图片转换为矩阵形式,希望可以帮到您
相似回答