【问题标题】:Embedded image capture - need help getting started嵌入式图像捕获 - 需要帮助入门
【发布时间】:2011-01-29 02:14:05
【问题描述】:

我正在开发一个嵌入式家庭监控系统。我想连接几个支持串行的 JPEG 捕捉摄像头,也许是几个门传感器等。问题是,我一生都无法弄清楚如何将摄像头连接到微控制器。剧照,流媒体视频,没关系 - 我找不到任何关于此的操作文档。

我了解串行通信,并且我在那里找到的大多数相机文档都描述了指示相机将数据流发送到 uC 进行捕获所需的协议。它们没有显示的是您在获得数据后应该如何处理这些数据。

Here's an example.

他们展示了一个很棒的小视频,数据表描述了必须将哪些字节发送到相机来检索图像。我需要的是某种示例或教程,它将解释如何处理构成图像本身的字节流。如何将这些字节排列到图像中并将其保存为文件?

我到处寻找某种教程,但都没有找到。我还不确定我将在这个项目中使用哪个处理器,但这个问题并不是真的依赖于处理器。我需要的只是算法,如果存在的话,也许可以看看图书馆。我将采用该过程并将其适应我的硬件,但我似乎找不到开始的地方。

你们中有人做过吗?

【问题讨论】:

  • 这是一个写得很糟糕的数据表! “包装大小不能是 16 的奇数或倍数”,然后说明 64 和 512 的限制是 16 的倍数,所以他们的意思可能是应该的。包可能是包的错误翻译......无论如何,如果你重新组装“包”并将它们写成一个文件,你会偶然得到一个有效的jpeg吗?你至少可以在那里寻找一个 jpeg 标题。解码他们的原始图像可能更难,但你可能会得到一个结构化场景(垂直或水平白色/黑色分割)和十六进制转储......
  • 如果您确定收到的字节流中包含图像,为什么不将其保存为二进制文件并与我们共享呢?对于那些没有相机的人来说,帮助你会更容易。
  • @Chris - 我很高兴听到你认为这是一个糟糕的数据表,我当然没有从中得到太多。 @ misha - 问题就在这里:我还没有相机。我正在寻找设计系统,但我什至不知道我需要什么。我所希望的是某种教程,它将向我展示对不同类型的相机的期望,以及如何处理它们发送给我的数据。我不一定指望你们写这样的教程,我希望已经写过一篇,但我一直没能找到它。你知道这样的文件吗?
  • 我对串行型相机一无所知。有很多 USB 型网络摄像头的驱动程序,但我认为您不想使用这些驱动程序,除非您在设备上使用嵌入式桌面操作系统(例如嵌入式 linux),因为尝试将 USB 驱动程序移植到新操作系统或裸 USB 功能可能比使用此串行设备更痛苦。

标签: image-processing embedded arm arduino image-capture


【解决方案1】:

我认为本文档第 10 页中的详细信息非常清楚:

http://www.4dsystems.com.au/downloads/micro-CAM/Docs/uCAM-DS-rev4.pdf

首先,一个包在 64 到 512 字节之间 - 由程序员灵活定义。图像大小是实际的 JPEG 图像本身....没有更多或更少....只是纯 JPEG 图像。所以第10页给出了根据image_size / package_size计算包数的公式。

接下来,(package_size - 6) 是否要在任何地方一致使用,因为 6 个字节用于非数据目的,所以 (package_size - 6) 将只是数据 - 但你必须自己重新组装.

要从包中组装数据,您必须剥离 4 字节标头 + 2 字节尾端,并将所有这些从所有包中依次连接起来。

其他事实:

一个。 “Set Package Size”命令必须从主机发送到 CAM - 在“SNAPSHOT”命令之前,该命令将图像从相机捕获到 CAM 内存缓冲区。

b.接下来是发送“SNAPSHOT”命令将图像捕获到内存缓冲区中。

c。最后是发送“GET PICTURE”命令(仅一次,但数据会多次返回 - 参见第15页中的图表)以提取所有图像......它将以“包”的形式返回正如我们之前在“设置包大小”中定义​​的大小。由于您已经计算出公式,您将知道何时停止要求下一个包裹。还有一个验证字节——你必须用它来确保数据是正确的。

【讨论】:

  • 这与我通过尝试将数据表中的错误陈述转换回其可能的意图而得出的结论相匹配 - 但也要注意在特定大小的数据包后需要重置事物的警告。这是您在不购买设备并尝试使用的情况下所能达到的程度。在这一点上,如果它是一个非爱好项目,开发人员考虑它的时间已经超过了硬件成本。
  • 这可能不需要提及,但使用 PC 而不是嵌入式平台进行初始测试可能会容易得多;为 PC OS 的串行接口和嵌入式系统的串行接口编写包装函数所花费的少量时间可以使功能逻辑在两者之间基本上可移植。
  • 谢谢大家。这是一个非常业余的项目,所以这只是我正在修补的东西。我只是无法使用正确的算法起步。这是一个很好的起点。另外,克里斯:关于使用 PC 进行原型设计和初始测试的好建议。
【解决方案2】:

我没有使用过这台相机,但看起来和我用过的相机 (C328) 完全一样。发送图像分辨率/颜色命令。当您想要获取图像时,请发送图像捕获命令。相机通过串行链接发送二进制文件作为响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多