Navigation

    VEYE IMAGING Forum

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Recent
    • Popular
    • Users
    • WIKI
    • veye.cc

    SOLVED MV-MIPI-IMX296硬触发模式下opencv无法读取图像

    General Discussion
    2
    5
    971
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Danny last edited by

      在Raspberry Pi 4B板子上,测试提供的demo(在视频流模式下),opencv能够读取相机采集的图像。但我的目标是在硬触发模式下,采用opencv读取并处理图像,结果显示无法读取。我的代码如下IMG_2985.JPG
      运行程序显示,程序一直处于等待触发信号阶段,未继续执行opencv命令打开摄像头。
      我将程序顶部v4l2-cmd部分代码注释掉,在命令行运行v4l2-cmd命令,使其开始在硬触发模式下等待触发信号。然后,在新的命令行窗口运行程序,结果显示无法读取图像,如下图所示:
      IMG_2986.JPG
      请问如何解决该问题?谢谢!

      veye_xumm 1 Reply Last reply Reply Quote 0
      • veye_xumm
        veye_xumm @Danny last edited by

        @danny 你的第一个图中的代码。逻辑上,需要先执行打开摄像头,等待图像数据。然后,用另一个进程去触发摄像头出图。
        你现在先触发摄像头出图,然后再顺序执行程序,打开摄像头,等待来图,早已晚了。

        D 1 Reply Last reply Reply Quote 0
        • D
          Danny @veye_xumm last edited by

          @veye_xumm 非常感谢!您是对的,我修改了代码,用另一个进程触发相机,opencv能够读取图像。但我发现opencv是从第5个trigger触发后读取图像。我想应该是相机内部设置了4个buffer,前4帧图像被存入buffers。然后,第5帧被采集,进入buffer,挤出第1个buffer的图像(即第1帧图像)。不知我的理解对不对,望告知。另外,怎么将buffer数量设置为1个呢?我想立即读取,因为我的应用需要和其他设备时间同步。

          veye_xumm 1 Reply Last reply Reply Quote 0
          • veye_xumm
            veye_xumm @Danny last edited by

            @danny 相机内部没有内存,不可能缓存几帧buffer。
            V4L2底层驱动会有v4l2buffer,数量也是可设的,但是据我理解其机制并不是你说的后入挤出前入的机制。应该是可以正常触发一次,收到一次。
            你可以先试试我们的例程,两个例程——一个是用v4l2-ctl获取图像,一个用opencv获取图像。

            D 1 Reply Last reply Reply Quote 0
            • D
              Danny @veye_xumm last edited by

              @veye_xumm 好的,感谢解答。

              1 Reply Last reply Reply Quote 0
              • First post
                Last post