我想製作一個程序,爲數字視頻/照相機(除DSLR以外的其他消費類照相機)提供連線操作,以便將相機插入電腦(USB或其他)並使用它的功能(拍照,錄製視頻,縮放,聚焦等)。 現在的預期平臺是Linux。在LINUX上用C++連接攝像頭的應用程序
據我所知,沒有任何製造商爲他們的產品提供SDK,除少數人(佳能,奧林巴斯,尼康),但僅限於他們的數碼單反相機。
我不是新來的C++,但我沒有在它的許多項目上工作。但是,我對OpenCV完全陌生,而且我還不知道這個庫的功能。 爲了測試opencv構建和我的配置,我製作了一個簡單的應用程序,它只需從網絡攝像頭獲取流並將其顯示在窗體上。 (使用cvCreateCameraCapture)
這是否適用於數碼相機或攝像機?我猜他們必須有一個「網絡攝像頭模式」,但這並不常見(至少不是攝像機)。 Firewire或者是否有其他支持HD的連接器?他們會被OpenCV識別嗎? 如果可能的話,我想遠離HDMI和捕捉設備(額外費用)。所以我想我的問題是,如果任何人有任何像這樣的項目的經驗:什麼是這種用法(什麼功能)的首選相機規格?是否有任何庫可用於緩解我的煩惱:)
我正在調查libgphoto2以及。如果需要的話,我會嘗試像寫相機的驅動程序,如果可能的話使用libusb,但我真的不知道從哪裏開始。 嗅探USB端口(使用它們的本地驅動程序),之後該怎麼處理這些信息?
如果有人能夠闡明該主題,我將非常感激 - 如何開始,如何開始,推薦編寫驅動程序軟件的好書?另外,我知道Linux Kino提供了類似的功能,所以我可以查看源代碼,但它僅適用於IEEE 1394嗎?
最後一個問題,我怎麼能達到相機在電腦啓動時自動啓動,因爲它通過USB連接?
很抱歉的長期職位,
謝謝和良好的祝願!
Matekk
嘿,tnx的回覆,這裏很棒的建議。我不知道udev,肯定會看到更多,在這裏看起來很有用!基於android的相機是一個好主意,但是我發現只有一個三星和一個尼康模型可用,並且它們都超過了佳能EOS 1100D的成本,而現在看來這是我的最佳選擇。雖然它比我所希望的要昂貴,但它具有共享和SDK(儘管適用於Windows和Mac OS),但我應該能夠嗅探到我感受到的一些東西;)。另外,它已經被gphoto lib支持! – Matekk
另外,是否可以通過電腦開啓或關閉相機?這可以通過軟件解決任何機會,如啓動程序,或者我應該看看電子黑客? :) – Matekk
如果您計劃捕捉實時高清視頻流,無論如何,您都需要使用數碼單反相機或攝像機的捕捉設備。劇照只需要USB。實時預覽(非全高清質量)也可以通過USB進行流式傳輸。我不知道要對這些東西進行逆向工程是多麼困難。至於開機/關機,數碼單反相機往往有機械開/關開關,所以你可能不得不做電子和/或機械黑客攻擊。 –