ar头显和眼镜图像特效处理

使用一个线程从摄像头或者其他设备循环读取图像数据写入链表,另一个线程从链表循环读取数据并做相应的特效处理,由于写入的速度比读取的快,最终必然会因为写入过快导致线程读写一帧而引发冲突和数据帧正常数据帧被覆盖。最好使用共享内存,以节省拷贝的时间。

1.一个懒惰的处理方式是,使用线程锁当读写冲突时,让读取线程向前快速移动若干帧,移动帧数和写入的速度有一定关系,这能处理正确冲突,但会丢帧,而且跳帧过于频繁体验会变差。

2.如果写线程遇到读线程冲突,也可以阻塞,等若干时间一样也会导致掉帧。

3.一个好的方法是一方面降低写入,比如写入时加一个过滤器,如果图像变化比较小,可以不跳过,一方面提高读取处理速度,使两者速度接近,以减少冲突,这样在遇到冲突需要跳帧时能减少丢帧。如果能使用信号量每隔一段时间读写对齐一次就很好。

4.一个不丢帧的方式,从摄像头获取的数据分一大一小两个buffer,大的用于直接显示,不处理不减帧,小的用于特效处理,处理一帧,发送一帧,生成标定数据狗,猫,人然后把这些标注按大小比例合并到原始图上。

相关推荐
木易 士心18 分钟前
WebSocket 与 MQTT 在即时通讯中的深度对比与架构选型指南
websocket·网络协议·架构
赖small强33 分钟前
【Linux 网络基础】网络通信中的组播与广播:基础概念、原理、抓包与应用
linux·网络·broadcast·组播·广播·multicast
陌路2037 分钟前
Linux是如何收发网络包的?
linux·网络
报错小能手38 分钟前
计算机网络自顶向下方法50——链路层 虚拟局域网 链路虚拟化:网络作为链路层(多协议标签交换)
网络·计算机网络·智能路由器
༺ཉི།星陈大海།ཉྀ༻CISSP38 分钟前
隐蔽端口穿透攻击的技术分析与防御实践 —基于一次HW行动的实战案例
网络·智能路由器
0wioiw01 小时前
跨网络互联技术(Nginx反向代理)
服务器·网络·nginx
报错小能手2 小时前
计算机网络自顶向下方法55——无线网移动网 移动性管理
网络·计算机网络
jun_bai11 小时前
python写的文件备份网盘程序
运维·服务器·网络
爱吃牛肉的大老虎11 小时前
网络传输架构之gRPC讲解
网络·架构
Warren9811 小时前
Python自动化测试全栈面试
服务器·网络·数据库·mysql·ubuntu·面试·职场和发展