5.基于STM32F103+OV7670的网络摄像头
前面移植了ucGUI,按说接下来应该说一下如何移植摄像头,不过如果根据奋斗开发板附带的源码摸索,也基本能看明白,无非就是初始化,设置中断和读取数据,添加任务等。
如果移植好了摄像头,那接下来就该移植uip了,这个确实头大,我搞了三天没搞成功,后来直接用书上附带的源码学习了,不过没有使用UCOS系统。
我把uip和摄像头的两个项目合并了,做了一个网络摄像头,下位机用MDK511实现,上位机用QT 5.3.2实现。
最主要的部分是修改了UDP_demo.c文件内的内容,当请求媒体流时,读取摄像头中的信息并发送,但uip不支持自动分片,而且一个视频画面有320*720*2的长度,无法一次发送,我设置了一个721长度的short类型的数组,手动将视频信息分片,第一个元素存放视频的编码,因为是通过UDP发送,防止乱序,后面存放该视频的内容,所以数组长度是1+720
pic[i]=CMOS_Data;
//USART_OUT(USART1,"will send pic%d,sizeof(pic)=%d\r\n",j,sizeof(pic));
if(i>719){if(j==number){//USART_OUT(USART1,"will send pic%d,sizeof(pic)=%d\r\n",j,sizeof(pic));myudp_send((char *)pic,sizeof(pic));break;}j++;pic[0]=j;i=0;
}
上位机用QT编写,新建一个QImage,设置格式为Format_RGB16,然后把从下位机通过网络发送的包写到数组pic中相应的位置即可
image=QImage(pic,320,240,QImage::Format_RGB16);
当然,我QT也是现学现用,只求把功能实现了,有许多要改进的地方,勿怪
5.基于STM32F103+OV7670的网络摄像头相关推荐
- 基于TCP协议的网络摄像头的设计与实现
一.摘要 基于TCP协议的网络摄像头的设计大部分和博文"基于UDP协议的网络摄像头的设计与实现"相同,本篇博文采用的TCP协议栈为NicheStack协议栈(同理,可使用LWIP协 ...
- 基于QT的华为网络摄像头二次开发
资源下载链接 第一次使用华为的网络摄像头并进行二次开发,网上关于QT对华为网络摄像头的二次开发的文章很少,基于项目的需求做了一些工作,特此记录. 目标: 1.实时预览 2.手动控制录制视频 3.监听告 ...
- 基于Qt的海康威视网络摄像头SDK的二次开发
最近用Qt做了一个基于海康威视网络摄像头SDK的二次开发,效果还不错.文章最后将开发的资料和demo软件通过链接方式分享,有兴趣的可以看下效果. 开发情况介绍: qt版本:Qt5.14.2 海康SDK ...
- 基于QT的海康威视网络摄像头二次开发
资源下载链接 第一次使用海康威视的网络摄像头并进行二次开发,海康威视网络摄像头的二次开发的资料已经比较详细,网上关于这方面的介绍也不少.此处基于我的需求做了一些工作,特此记录. 目标: 1.实时预览 ...
- 基于Qt的海康威视网络摄像头SDK的二次开发——摄像头登录和预览
海康威视网络摄像头SDK的二次开发,需要摄像头IP地址,与主机的IP地址在同一网段,能够ping通摄像头IP,才能登录成功.摄像头是有账户名和密码,这需要记住,在开发的时候需要用到. 在开发前可以先用 ...
- 基于QT实现对网络摄像头数据的显示
其实一直有一个想法,就是设计一个远程视频监控软件,目前自己手中有的硬件包括:mini2440开发板,韦东山老师的摄像头模块ov7740,当然这款摄像头提供了基于mini2440下的读取及显示功能,但是 ...
- 史上最全的基于ffmpeg+sdl网络摄像头编解码播放资料(包含交叉编译过程,附带完整源码)
原创博文,严禁私自转载,转载请注明出处!!! 近期,由于工作需要,要在开发板上跑一个摄像头,摄像头款式比较老,不支持rtsp格式,所以选择编译ffmpeg+sdl实现软解码播放摄像头,特此记录整个编译 ...
- [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控
[Rtsp]海康网络摄像头基于RTSP协议的windows平台监控 基于RTSP协议的windows平台监控. 1. 基于RTSP协议的windows平台监控. 1.1 选取海康网络摄像头(支持RT ...
- 基于大华SDK的二次开发,用于网络摄像头图像的实时显示和捕获(附源码)
目录 1. 文章背景 2. 主要模块 2.1 初始化SDK 2.2 登录账号 2.3 捕获图片 2.4 实时显示 2.5 断开时释放 2.6 回调函数 3. 源代码 3.1 头文件 3.2 源文件 1 ...
最新文章
- 盘点深度学习中的各种数据增强技巧
- 【转】【C#】判断两个文件是否相同
- android 添加日程失败,Andriod向系统日历添加日程
- [收藏]Linux下update错误 E: Dynamic MMap ran out of room. 解决方法
- WDK tips (9.1) 同步机制与锁
- Mysql存储函数实现增删改查_使用存储过程操作数据库(实现增删改查)
- mysql怎样修改my ini_mysql修改my.ini报错怎么办
- 开源开放 | 移动应用知识图谱MAKG(CCKS2021)
- 数字图像识别笔记(第一章绪论)
- Linux下OneinStack一键安装JAVA+PHP+Tomcat+Nginx+MySQL网站环境
- 在页面加载后执行任务
- flex学习笔记 数据验证
- Adobe Creative Cloud没有管理应用程序的权限
- mysql查询当前时间的前后几天时间
- vsCode 源代码管理插件GitLens使用指南
- 写好 JavaScript 异步代码的几个技巧
- Sicily 1048. Inverso
- 2018------书籍电影和音乐
- PAT乙级(Basic Level)练习题 星际密码
- 体育IP价值大爆发 本土赛事IP蕴含着巨大发展潜力
热门文章
- struct.error: ushort format requires 0 <= number <= 0xffff
- Android 使用adb 抓取日志信息
- 使用Java监控工具出现 Can't attach to the process
- 51nod 1617 奇偶数组
- jq--ajax中止请求
- 2022-2028年中国免疫诊断行业市场前瞻与投资战略规划分析报告
- 2022-2028年中国医疗+养老产业深度调研及投资前景预测报告
- Java Websocket实例【服务端与客户端实现全双工通讯】
- PyTorch 笔记(10)— Tensor 与 NumPy 相互转换、两种共享内存以及两者的广播法则
- PyTorch 笔记(04)— Tensor 属性方法(获取元素个数numel/neleme、查看形状size()/shape、增减维度squeeze()/unsqueeze()、resize形状)