【问题标题】:How to get raw camera data with C/C++?如何使用 C/C++ 获取原始相机数据?
【发布时间】:2015-01-08 21:12:46
【问题描述】:

我想了解如何使用 C/C++不使用任何框架(如 OpenCV、Qt Multimedia 或 AV Foundation)获取原始相机数据(RGB 像素值)。我找不到关于这个主题的任何好的资源。

我知道大多数摄像头/网络摄像头都有差异,所以为了简单起见,我想做的是从我的 Macbook Pro 中的 iSight 摄像头访问原始输入。 (但任何类型的相机输入都很好,USB 也是)

我假设有一个端口可以连接,但我真的不知道从哪里开始。

【问题讨论】:

  • 它是特定于操作系统的。使用框架,OpenCV 很棒。
  • @iharob 我明白了,但正如我在描述中提到的那样,我想了解它是如何工作的,所以我不想使用框架。
  • 没有便携的方法可以做到这一点,因此您必须使用您选择的操作系统的设施。例如在 linux 上,您可以尝试从 /dev/videoX 读取。或者如果你有 V4L,/dev/v4l/by-id/your-usb-camera
  • 这里有一些适用于 Linux 的 V4L 文档:linuxtv.org/downloads/v4l-dvb-apis
  • 您列出的框架中至少有两个是开源的。去看看源代码。

标签: c++ c camera computer-vision webcam


【解决方案1】:

试试像 TI 的 EVMDM6437 这样的嵌入式视频板。

如果不将 YUV422 蒸汽直接 DMA 到 CPU 的 L1 中,您将无法“RAW”!

【讨论】:

  • 您好,感谢您的回答! “TI 的 EVMDM6437”是指这个吗? spectrumdigital.com/product_info.php?products_id=196我不知道你所说的“DMAing YUV422 steam”是什么意思。
  • 是的,就是这样。该板是具有复合输入和 S-video 输入的视频处理系统。 TVP5416 视频采集芯片将 PAL/NTSC 模拟信号转换为 32 位封装 YUV 4:2:2 格式的原始数字流。板卡提供的名为 BSL(板卡支持库)的 API 可让您将此类流引导到内存中的任何位置,包括可配置为 RAM 内存的板载 CPU 的 L1/L2 缓存。您可以进行所需的所有处理,然后将结果流式传输到显示设备,例如电视或显示器。这是我大学时用的,挺好玩的。
猜你喜欢
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 2012-06-17
  • 1970-01-01
  • 2014-03-29
相关资源
最近更新 更多