您的位置:首页 > 编程语言 > Qt开发

v4l2采集视频,opencv处理帧数据第一难关:qt的QImage转换为opencv的IplImage 函数代码实现

2012-05-08 15:51 931 查看
很多时候要用v4l2采集视频帧数据,当点击按钮触发时,保存其中的一帧数据,然后用opencv进行处理。那么就需要将QImage转为IplImage了,我封装了一个简易函数,可以实现此功能,

第一个参数是你的QImage数据帧,是指针类型的;第二个数据是你的IplImage帧数据,要注意调用此函数前要cvCreateImage(cvSize(qimage->width,qimage->height), .........),创建IplImage,然后调用下面的函数就可以了。

void cvxCopyQImage(const QImage *qImage, IplImage *pIplImage) //QImage 转为 Iplimage

{

int x, y;

for(x = 0; x < pIplImage->width; ++x)

{

for(y = 0; y < pIplImage->height; ++y)

{

QRgb rgb = qImage->pixel(x, y);

cvSet2D(pIplImage, y, x, CV_RGB(qRed(rgb), qGreen(rgb), qBlue(rgb)));

}

}

}

参考文章:
http://sealevel2009.is-programmer.com/posts/14551.html(这个比较好) http://blog.chinaunix.net/uid-22682903-id-1771421.html(这个讲的也不赖!介绍创建IplImage的方法,尽管没用到,但也贴在这!) http://blog.sina.com.cn/s/blog_8208f4ef0100wemj.html(这个比较复杂,我没采用这个)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: