我想制作一个程序,为数码视频/静态相机(数码单反相机以外的消费类相机)提供联机操作,这样您就可以将相机插入计算机(USB 或其他)并使用它的功能(拍照,录制视频、缩放、对焦等)。目前的预期平台是 Linux。
据我所知,除了少数厂商(佳能、奥林巴斯、尼康)之外,没有制造商为他们的产品提供 SDK,但只针对他们的数码单反相机。
我对 c++ 并不陌生,但我没有用它参与过很多项目。但是,我对 OpenCV 完全陌生,我还不知道这个库的功能。为了测试 opencv 构建和我的配置,我制作了一个简单的应用程序,它只从网络摄像头获取流并将其显示在表单上。(使用 cvCreateCameraCapture)
这适用于数码相机或摄像机吗?我猜他们必须有一个可用的“网络摄像头模式”,但这并不常见(至少在摄像机中没有)。火线怎么样,或者有其他支持高清的连接器吗?它们会被 OpenCV 识别吗?如果可能的话,我想远离 HDMI 和捕获设备(额外费用)。
所以我想我的问题是,如果有人对这样的项目有任何经验:这种用途的首选相机规格是什么(哪些功能)?是否有任何图书馆可以缓解我的麻烦:)
我也在研究 libgphoto2 。如果需要,我会尝试为相机编写驱动程序,如果可能的话使用 libusb,但老实说,我不知道从哪里开始。嗅探 USB 端口(使用他们的本地驱动程序),之后如何处理这些信息?
如果有人也能对这个主题有所了解,我将非常感激 - 如何开始,有什么好书可以推荐关于编写驱动程序软件?
另外,我知道 Linux Kino 提供了类似的功能,所以我可以查看源代码,但它仅适用于 IEEE 1394 吗?
最后一个问题,考虑到它是通过 USB 连接的,我如何实现相机在计算机启动时自动启动?
抱歉发了这么长的帖子,
谢谢你和最良好的祝愿!
马泰克