我正在尝试通过FireWire将视频从相机(Sony HVR-Z1E)传输到我的电脑。传入的图片/流将由一些期望CVMat格式的函数(来自openCV)进一步处理。 我的问题是现在我不知道如何抓住流。好的openCV 2.1为我提供了一些方法(cvCapturefromCam),但无论我给他什么参数,它总是从笔记本电脑的网络摄像头获取流而不是火线。我听说我需要在DirectShow API(使用Windows SDK)中切换主凸轮。但我实际上也不知道该怎么做。 那么有什么建议怎么做?
答案 0 :(得分:0)
请参阅我的相关答案here。 OpenCV无法本机捕获Firewire相机的视频。您将需要使用CMU1394驱动程序或Sony驱动程序(如果有SDK可用)从该摄像头捕获视频,然后将其传递给OpenCV。
答案 1 :(得分:0)
多年前,我使用DirectShow制作了类似的东西。主要限制是事实,通过DShow获得的图像是标准的PAL分辨率。高清图像抓取是不可能的(它是索尼的第一个专业消费者高清摄像机之一,现在不记得确切的型号)。好事是 - 这个方法除了裸露的DirectShow之外不需要任何东西 - 没有额外的驱动程序等等。它非常快。
一般来说,方法是这样的:
工作原理:
我知道,这是一个有点模糊的描述,但我希望你能找到你的信息(谷歌搜索“ISampleGrabberCB”应该是一个很好的起点,应该有很多示例代码)。