我正在尝试通过FireWire将摄像机( Sony HVR-Z1E )的视频流式传输到我的计算机上。传入的图片/流应由期望CVMat格式(来自openCV )的某些函数进一步处理。嗯,我的问题是现在我不知道如何获取流。好吧,openCV 2.1提供了一些方法( cvCapturefromCam ),但无论我给他哪个参数,它总是从笔记本电脑的摄像头而不是火线上获取流。我听说我需要在DirectShow API中切换主摄像头(使用Windows SDK )。但实际上我也不知道该怎么做。那么有什么建议可以做到这一点吗?
发布于 2011-10-23 00:46:55
请参阅我的相关答案here。OpenCV无法在本地捕获来自火线摄像头的视频。您需要使用CMU1394驱动程序或Sony驱动程序(如果有可用的软件开发工具包)来从该摄像头捕获视频,然后将其传递给OpenCV。
发布于 2011-10-23 19:05:56
几年前,我就用DirectShow做过类似的东西。主要的限制是,通过DShow获取的图像是标准PAL分辨率。高清图像抓取是不可能的(它是索尼最早的支持消费者的高清摄像机之一,现在不记得确切的型号了)。值得庆幸的是,这种方法不需要任何东西,只需要纯DirectShow,不需要额外的驱动程序等等。而且速度非常快。
一般来说,方法是这样的:
它是如何工作的:
我知道,这有点模糊的描述,但我希望你能找到你的信息(谷歌搜索"ISampleGrabberCB“应该是一个很好的起点,应该有很多示例代码)。
https://stackoverflow.com/questions/7859442
复制相似问题