mini2440基于motion的移动图像监控系统和基于SDL的远程监控

2024-05-09 21:32

本文主要是介绍mini2440基于motion的移动图像监控系统和基于SDL的远程监控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这段时间在考虑做基于mini2440移动图像监控系统设计和远程监控设计;这个项目刚开始被我分割成几部分:

1.实现采集开发板上摄像头数据在开发板的LCD显示

2.实现网络远程监控把开发板上摄像头数据发送到PC并在PC机上显示

3.实现网络远程监控及移动图像监控

虽说方向有了,刚开始是跟着国嵌高级项目走,不过摄像头被指定为网眼2000、上位机和资料介绍不多,让我开始卡住了;所以只能在网上找其他资料进行实现,由于刚开始什么都不懂,都不知道从何下手就实现了第一步;几天都一直卡死没啥进展;昨天网上突然发现了问题所在,有点进展了,因此开始我这次项目的记录及总结;

1.实现采集开发板上摄像头数据在开发板的LCD显示

内核编译什么的就没得说了,至少得编译一个LCD能正常正作、支持V4L2和摄像头万能驱动的内核,配置资料网上大把,开发板上搭建好linux环境;市面上的摄像头输出格式有MPEG和YUV两种,好的摄像头能同时支持MPEG和YUV,中芯微ZC301摄像头只支持MPEG;虽说两种格式的摄像头都有,这里我是使用YUV格式的摄像头;需注意的是摄像头采集到的数据时yuv422数据而mini2440LCD显示格式为RGB16,数据转化流程为yuv422>>RGB24>>RGB16;

V4L2程序架构程序我是参考了“草根老师博客(程姚根)”的程序,程序里边注释不多,看的同时也得在网上查阅有关资料才能弄明白;

V4L2编程参考程序: http://blog.chinaunix.net/uid-26833883-id-3249346.html

本人修改后的程序:http://download.csdn.net/detail/u010245383/8105397

错误分析:开发板连接摄像头时出现,可能USB时钟频率原因

修正参考:http://cgsz1992.blog.163.com/blog/static/1797050602012421048701/



第一步就到此实现了,接下来卡壳了;很多东西不知道该怎么做,而网上资料最多的是“ 基于v4l2 ffmpeg x264的视频远程监控”,这种方案是用的V4L2的视频驱动,然后配合ffmpeg、x264的软件编编码成H.264,再头通过网络传输到PC机上显示;自己在编译ffmpeg-1.0.tar.bz2时就出现找不到X264.H的问题,而卡死在这;最后参考了网友mashang123456789  :http://blog.csdn.net/mashang123456789/article/details/8673426  成功编译了ffmpeg;第二步目前到此,不知道怎么把数据编码成H264;


motion的移植和使用

由于第二部卡死的缘故,使得我想先直接在开发板上实现移动图像监控,知道有motion这个东西,开始寻找这个算法,由于能力有限最终不知道怎么使用并移植这个算法(本人那时候不知道motion怎么使用的,使用在开发板还是PC机),通过了解和摸索,才知道motion是一个软件,它可以直接打开摄像头,获取摄像头数据并分析处理,数据有变化时可以相应的把数据保存为jpg格式的照片并输出到指定目录,这时候直接才恍然大悟;

motion的移植和使用时参考网友mashang12345678实现的

网址:http://blog.csdn.net/kangear/article/details/8763790

期间也出现了些问题:在运行motion时出现  motion-/bin/sh: ./motion : Input/output error  在移植ffmpeg时也是如此;网上找资料,折腾了很久也没能解决,偶然一次发现了问题所在,自己编译一个小程序,执行后也是出现Input/output error这种错误,最后才发现是少加了-static,很明显就是动态链接库的原因,以前实验的程序基本都是采用静态链接的方式所以没发觉;建立动态链接库直接从交叉编译器的库文件目录中拷贝过来: 

#cp -f /usr/local/arm/4.4.3/arm-none-linux-gneabi/libc/armv4t/lib/*so* lib/ -a

对于"lib"目录:这个里面放的都是库文件;

再次运行motion又出现缺少 libjpeg.so.62 直接拷贝国嵌高级项目SDK中的文件,又出现libjpeg.so.62 太短错误;最终重新编译libjpeg.so.62解决错误; 

参考网友monahans编译出libjpeg.so.62  网址:http://blog.csdn.net/monahans/article/details/3042604

其中重新下载新版本的libtool以默认方式安装这部分有点小瑕疵,我更正下:

解压完libtool-1.5.26.tar.gz 后进入工作目录

先执行:export  CC=gcc //指定编译器

再执行:export prefix=/XX  //工作目录为jpeg库的工作目录 , 把libtool安装到jpeg工作目录,jpeg库才能成功编译通过

然后:make

再:make install

继续编译JPEG库的编译工作,编译完成后把lib下的

拷贝到开发板文件系统 /lib目录下  运行motion  能正常工作了  到此motion移植完成

motion配置文件参考:http://download.csdn.net/detail/u010245383/8105463


革命尚未成功还需继续努力,继续战斗

由于前边是一直想用H264实现传输的,不过摄像头格式是YUV的,数据量比较大,有个严重的缺陷,就是S3C2440芯片USB接口是1.0的虽说兼容2.0,但最高速度也就10M Bit/S(1.25MB/S),实际上也就只有800几KB/S,速度远远不够1秒钟也就能传输1-2帧数据,因此会特别的卡;于是我就放弃了使用YUV格式的摄像头,转而使用JPEG格式的摄像头,数据被压缩成JPEG大大减少数据量;在网上了解到SDL可以显示BMP格式的图片,再移植SDL_image库就可以支持JPEG、PNG,GIF等格式,JPEG格式的摄像头可以把数据存储为.jpg格式的照片,就可以把数据发到PC机上,在PC机上实现播放;一步一步的实现我的想法;最后终于实现远程监控,效果还不错采集640X480分辨率有点延时,但不卡很流畅,都能看到室友浏览网页切换的画面,320X240分辨率延时性问题降得很小,也是很流畅;



jpg图片显示程序是参考了网友 九天雁翎 的程序   http://blog.csdn.net/vagrxie/article/details/5735979


参考网友:绝_影  linux下安装SDL  http://blog.csdn.net/lzx_322/article/details/8307558  

                   chinabinlang   SDL库的安装及游戏测试  http://blog.csdn.net/chinabinlang/article/details/8060139

                   SDL入门学习教程  http://www.linuxidc.com/Linux/2012-12/75255.htm

                   侄狂侄殇侄颠   http://blog.sina.com.cn/s/blog_9c8c371101016ibh.html


本人源代码 :http://download.csdn.net/detail/u010245383/8116589

值得注意的是如果使用了SDL_image库  编译命令要加上 -lSDC_image  (  l的大写是L,不是i的大写哦)


在编译完成,运行时出现./test2: error while loading shared libraries: libSDL_image-1.2.so.0: cannot open shared object file: No such file or directory 

提示没有找到libSDL_image-1.2.so.0  我就在window搜索下,找不到这个库文件于是想重新再编译,在make uninstall之后的信息里居然出现了libSDL_image-1.2.so.0字样,我就重新make install  再把文件拷贝到/usr/lib目录下;再运行程序,可以运行了;


make uninstall之后的信息   :

[root@chenjinpeng SDL_image-1.2.10]# make uninstall
 /bin/sh ./libtool   --mode=uninstall rm -f '/usr/local/lib/libSDL_image.la'
libtool: uninstall: rm -f /usr/local/lib/libSDL_image.la /usr/local/lib/libSDL_image-1.2.so.0.8.2 /usr/local/lib/libSDL_image-1.2.so.0 /usr/local/lib/libSDL_image.so /usr/local/lib/libSDL_image.a
 ( cd '/usr/local/include/SDL' && rm -f SDL_image.h )
 ( cd '/usr/local/lib/pkgconfig' && rm -f SDL_image.pc )
[root@chenjinpeng SDL_image-1.2.10]# make install
make[1]: Entering directory `/opt/SDL_image-1.2.10'
test -z "/usr/local/lib" || /bin/mkdir -p "/usr/local/lib"
 /bin/sh ./libtool   --mode=install /usr/bin/install -c   libSDL_image.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libSDL_image-1.2.so.0.8.2 /usr/local/lib/libSDL_image-1.2.so.0.8.2
libtool: install: (cd /usr/local/lib && { ln -s -f libSDL_image-1.2.so.0.8.2 libSDL_image-1.2.so.0 || { rm -f libSDL_image-1.2.so.0 && ln -s libSDL_image-1.2.so.0.8.2 libSDL_image-1.2.so.0; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libSDL_image-1.2.so.0.8.2 libSDL_image.so || { rm -f libSDL_image.so && ln -s libSDL_image-1.2.so.0.8.2 libSDL_image.so; }; })
libtool: install: /usr/bin/install -c .libs/libSDL_image.lai /usr/local/lib/libSDL_image.la
libtool: install: /usr/bin/install -c .libs/libSDL_image.a /usr/local/lib/libSDL_image.a
libtool: install: chmod 644 /usr/local/lib/libSDL_image.a
libtool: install: ranlib /usr/local/lib/libSDL_image.a
libtool: finish: PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/arm/4.3.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/arm/4.3.2/bin:/root/bin:/usr/local/arm/4.3.2/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib


If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'


See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
test -z "/usr/local/include/SDL" || /bin/mkdir -p "/usr/local/include/SDL"
 /usr/bin/install -c -m 644 SDL_image.h '/usr/local/include/SDL'
test -z "/usr/local/lib/pkgconfig" || /bin/mkdir -p "/usr/local/lib/pkgconfig"
 /usr/bin/install -c -m 644 SDL_image.pc '/usr/local/lib/pkgconfig'
make[1]: Leaving directory `/opt/SDL_image-1.2.10'























这篇关于mini2440基于motion的移动图像监控系统和基于SDL的远程监控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974549

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识