当前位置: 首页 > news >正文

百度官网网站wordpress 域名分离

百度官网网站,wordpress 域名分离,wordpress 多域名 图片不显示,长兴县住房和城乡建设局网站一、摄像头的工作原理与应用 基本概念 V4L2的全称是Video For Linux Two#xff0c;其实指的是V4L的升级版#xff0c;是linux系统关于视频设备的内核驱动#xff0c;同时V4L2也包含Linux系统下关于视频以及音频采集的接口#xff0c;只需要配合对应的视频采集设备就可以实…一、摄像头的工作原理与应用 基本概念 V4L2的全称是Video For Linux Two其实指的是V4L的升级版是linux系统关于视频设备的内核驱动同时V4L2也包含Linux系统下关于视频以及音频采集的接口只需要配合对应的视频采集设备就可以实现对视频以及音频进行采集。  Linux下包含V4L2的接口资源宏定义、枚举、请求码等这些资源被包含在一个头文件中头文件名字叫做videodev2.h头文件路径/usr/include/linux/videodev2.h用户需要在程序中使用该头文件 #include linux/videodev2.h 在这个头文件的末尾部分有很多关于视频采集的请求码这些请求码通过一个系统调用中的ioctl()函数通过发送不同请求码给内核驱动内核驱动会返回对应的信息。 ioctl函数使用说明 头文件#include sys/ioctl.h 函数原型int ioctl(int fd, unsigned long request, ...);   变参函数 函数参数 参数一fd  需要操作的文件的描述符   open函数的返回值 参数二request    传递给设备驱动的对应请求 ..... 返回值   成功  返回0   失败  返回-1 注意ioctl是专门作为设备输入输出操作的系统调用需要传入对应设备的命令码不同的设备会定义不同的命令码 开发流程 Video for Linux Two是一套针对不同类型视频设备及相关数据的关联驱动规范。设备的类型决定了通过read()和write()传递的数据类型以及驱动支持的ioctl命令集。已经定义或计划定义几种设备类型如下图 由于需要使用摄像头捕捉画面所以需要调用open函数打开摄像头插入摄像头之后Linux系统提供的摄像头的设备节点是 /dev/video7。每个人插入摄像头之后提供的设备节点可能不一样需要注意 以下代码都是对V4L2原码的解读以及注释 (1) 使用视频采集设备之前需要提前打开设备利用Linux系统的open函数打开设备文件 2根据用户需求设置摄像头采集画面的格式利用v4l2提供的struct v4l2_format结构体 现在市面的摄像头的采集画面的格式有多种如果购买的摄像头价格比较便宜则一般采集的画面的格式都是YUV4:2:2格式YUYVYUV4:2:2格式指的是每4个字节代表两个像素点所以YUYV格式的图像一个像素点大小为2个字节并且Y和UV交替存储。 YUV是一种常用的颜色编码格式主要用在电视系统和模拟视频领域也是使用3个分量表示颜色Y指的是亮度U和V指的是色度用来描述影像色彩和饱和度。YUV格式大体上分为两大类平面格式YUV分量分开存和打包格式YUV分量合在一起按照一定的编码格式存。 主流的采样方式有三种YUV4:2:2 、YUV4:2:0、YUV4:4:4  YUV4:2:0 对于每4个像素2*2的块,共享一组U和Y值每个像素都有独立的Y值 YUV4:4:4  对于每个像素Y、U、V都有独立的采样值 YUV4:2:2  对于每2个水平相邻的像素共享一组U和V值而每个独立的像素都有一个Y值 如果想要把YUV格式的图像显示到LCD屏幕上就要做相应的转换如下图。 在摄像头采集画面之前需要设置摄像头采集画面的参数比如帧宽度、帧高度、图像格式等要通过一个结构体struct v4l2_format进行设置注意当前使用的摄像头只支持YUYV格式的采集(这里我的摄像头只支持YUYV格式的采集)。 V4L2设备以流的形式处理多媒体数据流由包含格式化数据的缓冲区组成。一个设备可以有多个同时的流。大多数流是视频图像但也可能存在其他类型。v4l2_format结构包含一个联合体用于处理不同的格式结构以便以后可以添加更多。应用程序必须始终设置类型字段用于指示正在使用的格式类型以及它适用于哪个流。 (3)向v4l2驱动申请帧缓存区利用帧缓存循环存储摄像头捕获到的图像一般申请4个 需要定义struct v4l2_requestbuffers结构体变量在这个结构体中可以设置需要申请的帧缓存的数量一般申请4个帧缓存这样每个帧缓存都会存储一帧图像循环调用就可以提高视频采集的效率。 内存映射方式有以下三种 直接读取利用read、write直接对内存数据不断拷贝占用大量内存空间不推荐 内存映射利用mmap函数把驱动的帧缓存映射到应用程序的内存中效率高推荐 用户指针内存片段由应用程序自己分配需要设置V4L2_MEMORY_USERPTR不推荐 (4)获取申请成功的每个帧缓存的参数信息并且为每个帧缓存申请捕获图像大小的堆内存 想要从帧缓存中得到采集到的数据需要知道从驱动中申请的每个缓存块的信息缓存块地址、缓存块的大小所以需要定义struct v4l2_buffer结构体变量存储并把缓存进行内存映射。 (5)为了让摄像头可以把采集的图像存储在申请的帧缓存中所以需要把申请的帧缓存入队 (6)缓存区入队之后用户可以启动图像捕捉然后摄像头就可以循环的把图像存入缓存区 (7)依次把缓存区出队然后用户对缓存区存储的图像数据进行处理但是要实现超时处理 把缓存块按照索引依次出队然后保存缓存块中的数据后再把缓存块重新入队,但是需要使用select()函数实现多路复用检测是否采集到数据实现超时处理。 select函数一般用于网络编程该函数可以帮用户监听多个文件描述符的状态如果监听的多个文件中的某个文件的描述符发生的改变(读写或异常)select函数可以及时通知进程。 (8)把出队的缓存区中的YUYV格式的颜色分量转换为RGB格式的颜色分量并显示在LCD上 本次使用的摄像头只支持采集YUYV格式的图像而在LCD屏上显示的是RGB数据所以需要把采集到的图像转换成RGB。RGB对于大家来说并不陌生看到的光就是由RGB三种颜色按一定比例混合得到是使用红、绿、蓝三原色的亮度来表示颜色三种颜色互相叠加实现混色所以适用于显示屏等器件。在LCD屏中每个像素点的颜色都是由RGB组成的LCD屏中一个像素点4个字节RGB分别占用一个字节每个字节的取值范围都是0~255不过又加入了透明度所以LCD屏中一个像素点就是由ARGB构成的。 下面的代码不是V4L2的原码是我写的将一个YUV格式的像素点转换为RGB格式的函数 如果可以实现一个像素点的格式转换则只需要根据摄像头采集画面的宽和高把所有的像素点依次进行转换。 如果一帧YUV格式的图像已经转换为一帧RGB格式的图像则只需要把RGB格式图像的像素点拷贝到LCD屏的像素点中即可。 提示如果需要项目原码可以在我的项目专栏中找到
http://www.hkea.cn/news/14350473/

相关文章:

  • 网站编辑做多久可以升职仿皮皮淘网站开发全程培训
  • 域名解析查询站长工具本科毕业 做网站编辑
  • 做网站第一步要干啥vi设计作品图
  • 域网站名分类国外常用的seo站长工具
  • 企业手机网站建设流程图企业展厅设计公司哪家好怎么样
  • 淘宝网做宝贝详情用哪个网站怎样做建网站做淘客
  • 建网站费用明细c s网站开发模式
  • 塘厦建设网站做盗版电影网站教程
  • 哪些园林网站可以做外链小型企业网络配置实例
  • 广州注册公司代理网站优化 价格
  • 汉力建设网站wordpress 优化seo插件
  • 湖南网站建设哪里好广西建设工程质量检测协会网站
  • 手机在线销售网站 - 百度本地wordpress 慢
  • 房产中介网站开发费用苏州建设交通职业技术学院
  • 云梦县城乡建设局网站凡科快图在线制作免费官网下载
  • 巴中微小网站建设案例彩票网站html模板
  • 百度做网站和推广效果怎么样vue.js做网站
  • 网站建设实训报告目的网站突然被降权
  • 哈尔滨建筑专业网站移动网站建设推广
  • 概述网站建设的流程永久无限免费看的app
  • 列出寻找网站关键词的几种途径wordpress 增加数据表
  • 站长工具无吗经典高端旅游定制网站
  • 东莞企业网站seo手机端网站开发教程
  • 找人做网站需要注意什么权大师的网站是哪个公司做的
  • 网站seo 优帮云律师论坛网站模板
  • 长沙优化网站方法网站建设各模块功能简述
  • 企业电子网站的建设案例济南哪里有网站建设公司
  • cms类型网站开发住房城乡建设厅官方网站
  • 展示型网站制作公司规模以上工业企业的标准是什么
  • 包头焦点网站建设基于asp的医疗网站开发