Ubuntu V4l2中摄像头输出Mjpeg数据在Qt中显示
2017-01-12 21:32
2216 查看
被这个问题纠结了一天,我的山寨zc301摄像头只能输出mjpeg压缩的数据帧,然而网上绝大多数人都是yuv,教程大多是yuv转rgb24,mjpeg转rgb24的几乎没有,反正我是没找到,被逼的走投无路,尝试了下面的方法。
解决方法
如果你已经了解了v4l2处理usb摄像头的步骤,就会知道有一个VIDIOC_DQBUF指令可以获取当前数据帧的缓冲区编号,通过这个编号,我们就可以找到这一帧的起始地址以及长度,观察QPixmap这个类,我们会发现它的其中一个构造函数就是使用内存的起始地址以及长度,事实证明,这是可以正确转换的,目前还不知道原理,难道mjpeg有特殊优待?下面附上与之相关的代码。QPixmap m_pixmap; m_pixmap.loadFromData(frame_data, frame_len); ui->label->setPixmap(m_pixmap);
相关文章推荐
- Ubuntu10.04中利用V4L2读取摄像头数据并保存成文件【转】
- Qt:实时显示大华摄像头数据到QLabel上
- ubuntu下QT+OpenCV控制摄像头通过label 显示
- 普通摄像头的数据输出格式YUV与mjpeg之间联系、DCT离散余弦变换去噪跟压缩
- Qt v4l2显示摄像头图片
- Ubuntu10.04中利用V4L2读取摄像头数据并保存成文件
- 普通摄像头的数据输出格式YUV与mjpeg之间联系、DCT离散余弦变换去噪跟压缩
- 基于QT实现对网络摄像头数据的显示
- V4L2 + opencv3 Linux获取摄像头数据显示 程序源码
- 读摄像头数据并显示
- OPENCV2.2无法显示摄像头采集到的数据的解决办法
- 【物联网智能网关-02】获取摄像头数据+显示 推荐
- V4L2摄像头采集数据
- 通过xsl显示和输出XML数据
- ubuntu下基于qt+opencv控制摄像头
- USART_SendData 和 Printf 输出的数据,电脑接收显示的是乱码
- Linux 下用 QT 打开摄像头并显示
- V4L2采集摄像头数据
- v4l2采集视频,opencv处理帧数据第一难关:qt的QImage转换为opencv的IplImage 函数代码实现
- 在xna中输出摄像头数据(通过EmguCV)