我有这款花园式USB视频摄像头,它带有两个迷你应用程序,一个可以让你看到相机看到的内容,还有一个可以记录到.avi文件的应用程序。
但是如果我想在自己的C程序中从相机中获取图像,那么API是什么?我假设它是(1)可能的,并且(2)需要进行一些调用并且填充了2D像素信息数组。
我真正希望做的是修补图像处理算法,为此,我真的想让我的代码围绕一些实时数据。
编辑 -
有了健康的Linux风险,我可以掌握(理想情况下/理论上)你可以打开()设备,使用ioctl()配置它,以及读取()数据。我几乎可以肯定,这不是Windows将如何呈现API。不知道Windows可能用于视频设备API的功能名称,或者即使它有一个功能名称,也很难查找,至少使用我所拥有的win32 api搜索功能。
答案 0 :(得分:1)
您可能需要DirectShow API,前提是相机的操作方式。如果制造商创建了自己的代码路径,那么您将需要他们的API。
答案 1 :(得分:1)
正如ChrisBD所指出的,您的第一步是检查Windows是否支持您的设备。
如果是这种情况,您有三种可能的Windows API用于捕获:
另一种可能性是使用OpenCV。 OpenCV是一个图像处理库,您也可以使用它来处理图像。 OpenCV有一个图像捕获API,它提供了更简单的抽象,比Windows API更容易使用。
答案 2 :(得分:0)
API是最佳选择。
相机是否需要定制的良好指示是在未安装制造商应用程序的情况下查看是否可以通过PC识别。如果windows中内置了驱动程序,则应该能够使用Windows API捕获图像。
或者,如果您知道AVI文件使用了哪种压缩编解码器,则可以将其解压缩。
理想情况下,如果您能够以原生(YUV,RGB15或类似)格式捕获视频,那么您可以进行压缩和操作。