Linux下利用luvcview来进行图像识别-准备
来源:互联网 发布:mac可以玩哪些游戏 编辑:程序博客网 时间:2024/04/29 03:33
使用USB 摄像头在笔记本上进行图像识别的学习是一种方便的方法
(size_t) vd->framesizeIn);里面
pixImage.loadFromData(rgb_buffer, imageSize); ui->label->setPixmap(pixImage);
常用的一些视频服务器开源代码都不能很好的跟C910配合。大概原因是servfox,spcaview都是用V4L 1写的,而2.6.26后一般都用V4L 2来实现
luvcview的代码可以在http://www.ideasonboard.org/uvc/里找到,里面也可以看到它是支持罗技C910的
luvcview与servfox一样,也是用SDL来进行界面的显示
luvcview默认采用V4L2_PIX_FMT_MJPEG,可以在一开始初始化的地方改。
int format = V4L2_PIX_FMT_MJPEG;方式,
接着,它会去查询是否支持MJPG方式,如果不支持,则采用YUV方式。
显示图像,它用的是SDL_CreateYUVOverlay,当然,你也可以用SDL_Surface,或者用其它的工具来生成界面,这个无关紧要。奇怪的是,当我用SDL_Surface来显示RGB图像时,显示正常,但色彩缺失,但,如果我把它保存为图片,实现上是一切正常的,这个很奇怪,要研究一下。
creatButt用于自己产生按钮,它会去读一个数组,然后进行转换,应该是自己先做好图片,然后再读进来,显示。
创建了一个线程,用于捕获按钮
mythread = SDL_CreateThread(eventThread, (void *) &ptdata);
uvcGrab用于获取图像信息,如果是MJPEG方式,则首先要进行jpeg_decode的解码,如果是YUV,则直接拷贝到memcpy(vd->framebuffer, vd->mem[vd->buf.index],
最后都是在framebuffer里面。
最近显示,也是用framebuffer里面的东西
其中Pyuv422torgb24,可以用于把YUV格式 转为RGB
所以如果你要进行图像识别,我会在将framebuff里存的YUV信息转成RGB格式,就用到了Pyuv422torgb24函数,然后再根据RGB信息进行图像识别
其实可以考虑用QT的QImage来显示视频
QT的作法是这样
直接往
其中rgb_buffer是RGB数据
参考资料:
http://v4l2spec.bytesex.org/
附上7小时连续工作的成果
有了上次的经验,现在修改了spcaview的代码,服务器不动,新建了一个v4l的文件夹,里面放了spcaview的关键代码
然后使用QT做了一个界面,在界面 上显示,底层的SOCKET还是调用原来的
spcaview收到的数据就是jpeg格式的,直接用 pixImage.loadFromData((unsigned char *)jpeg_addr, imageSize);就可以成功
或者使用decode_jpeg,变成RGB格式,然后前面要放一个文件头,如pnm的文件头才可以在QT里面显示成功
如 pixImage.loadFromData(jpg_data, imageSize+15);
0 0
- Linux下利用luvcview来进行图像识别-准备
- android中利用opencv进行图像识别
- 利用CaffeNet来演示图像识别与分类
- cs231n 用卷积神经网络来进行图像识别
- 利用Python进行简单的图像识别(验证码)
- java利用tesseract-OCR对图像进行字符识别
- Windows下利用Android Studio进行JNI开发准备
- Tesseract 进行图像识别
- Linux centos 下的mysql 安装(利用yum来进行mysql数据库的安装的)
- Linux下使用caffe进行图像分类
- 数字识别--图像预处理之准备(归一化)
- 进行识别前图像预处理
- Linux 下利用dnw进行USB下载~~
- Linux 下利用dnw进行USB下载~~
- Linux 下利用dnw进行USB下载~~
- Linux 下利用dnw进行USB下载~~
- Linux 下利用dnw进行USB下载~~
- Linux下利用Niginx进行负载均衡
- 如何从SD卡中恢复你删除掉的照片
- 无题诗我自己写的
- 安装JBPM6运行环境(JBPM6学习之二)
- WMIC基础-----随手乱记,供小白参考
- daemon进程原理及实现(来源于网络,后整理)
- Linux下利用luvcview来进行图像识别-准备
- Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- 批量修改crontab
- GetDefaultCommConfig和SetDefaultCommConfig 传入CString 的GetString 和GetBuffer失败
- jquery 在指定位置弹出div框并实现从下向上展开效果
- oracle中的Round和Trunc:
- 数据结构 - 图的广度优先遍历(C++)
- 如何从Eclipse中导入第三方库(并且是带有JNI的)到Android Studio开发工具中?
- 快速记忆法-节点,A~Z人名