基于嵌入式linux视频监控系统内容摘要:
,包括两个方面的移植:第一层面是针对 CPU 的移植,第二层面是针对 BOARD 的移植,同时需要移植相关的头文件。 按照开发板说明对相关文件进行修改、编译,然后烧写到开发板的 Flash中。 这样就完成了 UBoot 的移植。 五、系统 环境搭建 软件平台采用的嵌入式操作系统为 Linux , Linux 具有内核小、效率高、源码开放、内核直接提供网络支持等 优点,但嵌入式系统的硬件资源有限,因此需根据实际需求对内核进行裁剪,配置所需的功能模块,然后再移植到硬件平台上。 嵌入式系统的软件开发采用交叉编译调试的方式,在宿主机上安装 Linux 系统,建立交叉编译环境,在宿主机编写程序代码,再利用交叉编译工具生成目标机上可用的可执行文件,最后向目标机平台移植。 交叉编译环境的搭建 交叉编译就是在一个平台上生成另一个平台上的可执行代码。 在进行嵌入式开发时,由于 ARM 平台的系统资源有限,不可能在 ARM 平台上进行本机编译,因此我们可以在 PC 机上编译出针对 ARM 平台的可移 植程序,然后下载到开发板上执行。 要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具然后用这个交叉编译工具编译程序的源码,最终生成可以在开发板上执行的代码。 目标板的系统是 Linux,我们要进行 Linux 下的程序开发,首先要安装 Linux 系统。 我们选用 作为主机开发环境。 在虚拟机里安装好 Ubuntu,由于嵌入式交叉编译时经常需要用到 root 用户权限,为避免日后频繁要求输入密码,我们可以通过编辑 /etc/gdm/目录下的 Ubuntu设置为 root用户自动登 录。 在 中添加以下内容即可。 [daemon] TimedLoginEnable=true AutomaticLoginEnable=true TimedLogin=root AutomaticLogin=root TimedLoginDelay=30 设置 Ubuntu的 IP 地址为固定 IP,方便以后程序的调试。 交叉编译器我们选用飞凌公司提供的 ,首先将 文件拷贝到 Ubuntu中,输入以下命令安装: mkdir /usr/local/arm tar jxvf –C /usr/local/arm (将文件解压到 /usr/locsl/arm目录下) 安装好后可用 /usr/local/arm/–v 命令查看版本信息,若编译器安装成功则会显示出交叉编译器的版本信息,否则需要重新安装。 为了方便日后调试程序我们可以把安装目录加入环境变量中,编辑 /etc 下的profile 文件,加入: export PATH=”$PATH: /usr/local/arm/” 修改完后重启系统,然后在终端输入 armlinuxgcc 若提示 no input file 则交叉编译环境搭建成功。 NFS环境的搭建 在嵌入式开发过程中,交叉编译好的程序要在开发板上运行,就要烧写到目标板的 flash 上,对于应用程序,我们需要频繁调试,这样每次都要烧写一遍,严重影响开发效率。 为了方便程序调试,我们搭建了 NFS 系统。 NFS 是 Network File System 的简称,是分布式计算机系统的一个组成部分,用它可 实现在已购网络上共享和装配远程文件系统。 可以通过网络让不同操作系统的计算机可以共享数据。 可以通过它把远程主机的目录挂载到本机 ,使得访问远程主机的目录就像访问本地目录一样方便快捷。 Ubuntu 上默认没有安装 NFS 服务器,首先要安装 NFS 服务程序,在终端输入:sudo aptget install nfskernelserver 这样系统会自动帮我们安装好 NFS 服务器,这样宿主机就相当于 NFS Server。 NFS是一个 RPC服务程序 ,所以在使用它之前 , 先要映射好端口 —— 通过 portmap设定,在启动 NFS 之前 , 需要启动 portmap 服务。 修改 /etc/exports,添加一个共享目录: /var/nfs/ *(rw,sync),其中 /var/nfs/是要共享的文件夹, *是表示所有用户都可以挂载这个共享文件夹, (rw,sync)表示以读写方式挂载,并且使资料同步写入存储器中。 使用命令 sudo exportfs r 更新,使用命令 /etc/服务和 nfskernelserver 服务。 在开发板上输入命令: mount t nfs :/var/nfs /mnt o nolock将远程主机 /var/nfs 目录挂在到本地的 /mnt 目录下。 t 选项指定文件系统的类型为 NFS,o 选项禁用锁定。 六 、 流媒体服务器设计 视频采集模块 设计 视频采集模块通过嵌入式 Linux 操作系统调用 Video4Linux(V4L)和底层设备驱动程序来完成视频捕获。 V4L 是 Linux 中关于视频设备的内核驱动,它为Linux 下的各种视频设备提供了统一的编程接口,应用程序通过这些接口函数就可以操纵各种不同的设备。 视频采集流程如图 2 所示。 图 2 视频采集流程 (1)打开视频设备。 Linux 下的视频设备文件一般为“ /dev/video0”,通过调用函数 v4l_open( ),利用 vdfd=open(“/dev/video0”,O_RDWR)打开设备并获得设备文件描述符 vdfd。 (2) 获取设备和图像信息。 通过 v4l_get_capability( ) 函 数获取设备信息, 通过v4l_get_picture( )函数获取图像信息。 (3)内存映射。 获取图像的方式有两种: read( )直接读取和 mmap( )内存映射。 直接读取方式通过内核缓冲区来读取图像数据,而本文使用内存映射方式 mmap( ),内存映射方式可以直接把设备文件映射到内存中,进程可以像访问普通内存一样对文件进行访问,读取效率更高。 初始化内存映射时,需在内存中开辟一块空间,利用 ioctl(vdfd,VIDIOCGMBUF,amp。 (vdmbuf))操作取得需要映射的内存空间大小 vd,利用 mmap( )函数,即 vdmap=(unsigned char*) mmap(0, vd, PROT_READ | PROT_WRITE,MAP_SHARED, vdfd, 0)操作,把设备文件的内容映射到内存, vdmap 指针所。基于嵌入式linux视频监控系统
相关推荐
ors should nor be more than width of the black direction control. When the car is running, the black guide line is always kept right between the two primary sensors L1 and L2. When the car goes off
行处理的方法。 其中包括:梯度运算、拉普拉 斯算子运算、平滑算子运算和卷积运算。 ( 2)点处理法 点处理 法是指对图像像素逐一处理的方法。 其中包括:灰度处理,面积、周长 、重心运算等等。 数字图像处理的变换域处理方法首先是通过傅立叶变换、离散余弦变换、沃尔什变换或是比较新的小波变换等变换算法,将图像从空间域变换到相应的变换域,得到变换域系数阵列,然后在变换域中对图像进行处理
次,预测企业未来的绩效水平,并找出目标期望水平和未来预测水平之间的差距 ;最后,探讨弥补差距的战略方案,综合调整各项战略,并修改对企业未来绩效水平的预测。 (二 )确定关键绩效领域:明确了战略目标,下一步就需要对最有效驱动战略目标的关键绩效领域进行确定。 关键绩效领域是指对企业总体竞争地位和企业战略目标的实现有重大影响的变量、领域。 它是制定关键绩效指标的重要依据。
来,上海、北京等地区的部分高职院校实行自主招生,如 2020 年北京信息职业技术学院、北京培黎职业学院、北京汇佳职业学院在北京实行了自主招生。 考生参加这些院校自主招生测试合格后,可直接被录取。 政策变化 从 2020 年起,生源质量好的高校自主招生 比例将不再设定 5%的上限。 高校招生自主权也在进一步扩大。 对少数特别优秀的考生,高校可以突破原有的考生分数必须达到生源所在地同批次分数线的限制
相关背景理论知识 计算机视觉理论基本概念 计算机视觉就是用各种成像系统代替视觉器官作为视 觉信息输入手段,由 计算机来代替大脑完成处理和解释,并根据解释结果做出相应的决策。 计算机 视觉的最终研究目标就是使计算机能像人那样通过对视觉信息的处理来观察和 2 哈尔滨工业大学工学硕士学位论文 理解世界,具有自主适应环境的能力 [1][2]。 人类的视觉系统是功能最强大和完善的视觉系统
次邮递员送来的信件,我都要亲自 检查有无开封、损坏的函件,如果发现有损坏的函件,我马上联络接收人亲自来查收。 需要到邮局领取的函件,我都亲自到邮局领取,并把信函分别发放到每个收件人的手里。 对于收到的所有信函,我都分门别类的登记,标注好收发人的单位、姓名还有来函日期等等。 我对工作的认真负责,受到了村委会领导和同事们的一致好评,在他们的鼓励下,我的工作干劲更足了。 在工作之余,我还经常去村民家里