V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bugmaker1024
V2EX  ›  程序员

异步触发的相机如何确保相机在硬件触发时候全部触发成功

  •  
  •   bugmaker1024 · 104 天前 · 890 次点击
    这是一个创建于 104 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前情提要:有 3 个相机,3 个相机异步打开,通过硬件触发方式触发拍照。3 个相机全部拍照完成则进行图片处理

     硬件方面:可忽略硬件的影响,在软件层面进行处理
     软件层面:假设 N 秒( N 位于 0.5~1 之间)通过硬件触发一次拍照,硬件触发成功后则对应的 capture_num+1 ,在此时需要使用 capture_num 来对图片命名和处理

    问题:若第 1 次相机 1 未触发成功,其余相机触发成功。则相机 1 的 capture_num=0,其余相机 capture_num=1 ,第 2 次硬件触发,若所有相机均正常,相机 1-3 实际应该为 2 ,但是由于第一次触发失败,相机 1 的 capture_num=1.此时就出现了问题。

      在第一次相机 1 触发失败,其余相机触发成功的时候,下游并不知道相机 1 是触发失败还是延迟触发。所以会一直等,如果此时第二次硬件触发相机 1 正常了,下游会认为这是相机 1 第一次拍照(实际第 1 次拍照,但是应该算成第 2 次)。则此时下游在处理时候就会存在异常。

    虚心请教大家有什么好的方案处理这个问题吗?

    4 条回复    2024-01-16 10:43:21 +08:00
    Adelell
        1
    Adelell  
       103 天前
    把相机换成摄像头,三路视频流,网络传输到服务器,服务器想怎么处理怎么处理。
    kilasuelika
        2
    kilasuelika  
       103 天前 via Android
    单用那个 num 是不够的,可以改下拍照函数,给照片打时间戳,利用这个来对齐。
    anytk
        3
    anytk  
       103 天前
    业务要求帧率不高的情况下,肯定是记录触发时间戳并在接受时设置超时机制再标记序号。
    ltq918
        4
    ltq918  
       103 天前 via Android
    尝试记录触发的次数,例如可以这样,第一次 相机记录依次为 capture_num="0,0" capture_num="0,1" capture_num="0,1" 第二次 capture_num="1,1" capture_num="1,2" capture_num="1,2"
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1078 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:45 · PVG 02:45 · LAX 11:45 · JFK 14:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.