1. 程式人生 > >Linux+v4l2自動設定相機曝光時間

Linux+v4l2自動設定相機曝光時間

    在Ubuntu環境下使用工業相機,安裝了v4l2庫設定相機的引數,之前發現了曝光時間對於運動拍照的清晰度影響較大,所以需要使用v4l2-ctl -d /dev/video0 -c exposure_absolute=20(所用相機預設為127)。為了方便使用,可以把這條指令放到開機執行裡面,開機執行這條指令我找到了兩種方法。

    第一種:寫到gedit /etc/rc.local,把v4l2-ctl -d /dev/video0 -c exposure_absolute=20新增在exit0之前即可。之前的一臺電腦,這樣設定成功了,但是另外一臺電腦如此設定以後並沒有起作用。關於rc.local裡面的指令不執行,有幾個解決方法,http://www.linuxidc.com/Linux/2017-09/147166.htm這一篇都總結了而且文章可讀性很好,不幸的是使用這幾種方法都沒起作用,後來還是根據這篇文章裡的把錯誤日誌記錄下來,發現不起作用的原因是,沒找到裝置/dev/video0,這就說明執行/rc.local時,還沒有識別到相機,所以如果是這個問題,可以參考下一種方法。

    第二種:跟之前的《ubuntu開機自動執行自寫程式》http://blog.csdn.net/zilanpotou182/article/details/71173361

基本一樣:

    (1)新建一個指令碼檔案:gedit /home/exposure.sh,然後輸入如下內容)

    (2)輸入如下內容,儲存關閉:

             #!/bin/sh -e

             v4l2-ctl -d /dev/video0 -c exposure_absolute=20

             exit 0   

     (3)新增可執行許可權:chmod +x /home/exposure.sh 

 (4)在/usr/share/applications目錄下建立一個名為exposure的啟動配置檔案:

            cd /usr/share/applications

            gedit exposure.desktop 

     (5)在exposure.desktop檔案裡輸入下面:

            [Desktop Entry]

            Version=1.0

            Name=exposure

            Exec=/home/exposure.sh   (這個是那個可執行檔案的位置)

            StartupNotify=false

            NoDisplay=true

            Type=Application

            Categories=System;Utility;Archiving;

      (6)exposure.desktop檔案拷貝到/etc/xdg/autostart目錄下:

            cp exposure.desktop /etc/xdg/autostart

      (7)重啟完成設定