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

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

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

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

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

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

相关推荐
Ronin305几秒前
【Linux网络】网络命令
linux·网络·网络命令
XUE-521131444 分钟前
BGP实验-路由反射器
linux·运维·网络
安当加密1 小时前
CAS密钥管理系统在汽车行业的核心密钥管理实践——构建智能网联汽车的可信安全底座
网络·安全·汽车
沐浴露z2 小时前
【深入理解计算机网络03】计算机网络的分层结构,OSI模型与TCP/IP模型
网络协议·tcp/ip·计算机网络
努力学习的小廉3 小时前
深入了解linux网络—— TCP网络通信(上)
linux·网络·tcp/ip
爱尚你19934 小时前
Nginx proxy_pass 末尾斜杠(/)
服务器·网络·nginx
字节高级特工5 小时前
网络协议分层与Socket编程详解
linux·服务器·开发语言·网络·c++·人工智能·php
light_in_hand7 小时前
NAT 机制的工作流程
网络
Pan Zonghui7 小时前
腾讯云COS通过CDN加速配置指南
网络·云计算·腾讯云
FPGA_Linuxer7 小时前
vivado自定义IP显示只读解决办法
网络·网络协议·tcp/ip