2011-01-29 70 views
1

我正在研究嵌入式家庭监控系统。我想要连接几个支持串行的JPEG捕捉摄像头,也许是几个门传感器等等。问题是,我不知道如何将摄像头连接到微控制器。剧照,流媒体视频,没关系 - 我找不到任何有关此方面的指导性文档。嵌入式图像捕获 - 需要帮助入门

我了解串行通信,以及我在那里发现的大部分相机文档都描述了指示相机将数据流发送到uC进行捕获所必需的协议。他们没有展示的是你一旦得到数据就应该做什么。

Here's an example

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

我看遍了各地的某种教程,但已经干了。我不确定哪个处理器可以用于这个项目,但这个问题并不是真正依赖于处理器的。我所需要的只是算法,如果存在的话,也许只是在图书馆偷看。我会采取这一过程,并将其适应我的硬件,我似乎无法找到一个开始的地方。

你们有没有做过?

+0

这是一个写得不好的数据表! “包的大小不能是奇数或16的倍数”,然后指出64和512的倍数为16的限制,所以它们可能意味着应该。而包可能是一个错误的数据包翻译......无论如何,如果你重新组装“包”并将它们作为一个文件写出来,你偶然会得到一个有效的JPEG文件?你至少可以在那里寻找一个jpeg标题。解码他们的原始图像可能会更困难,但你可能会得到一个结构化的场景(垂直或水平白/黑分割)和十六进制转储的地方... – 2011-01-29 02:59:26

+0

如果你确定你接收到的字节流包含图像,为什么不你将它保存为二进制文件并与我们分享?那些没有相机帮助你的人会更容易。 – misha 2011-01-29 03:03:26

回答

3

我认为细节在第10页相当清楚本文档内:

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

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

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

为了从软件包中组装数据,你必须去掉4个字节的头+ 2个字节的尾部,并将所有这些包依次串接在一起。

其他信息:

a。 “Set Package Size”命令必须从主机发送到CAM - 在“SNAPSHOT”命令之前,该命令将图像从摄像机捕获到CAM存储器缓冲区中。

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

c。最后是发送“GET PICTURE”命令(只有一次,但数据会多次返回 - 参见第15页图),以提取出所有图像....并以“包”形式返回,因为我们在“设置包装大小”中早先定义了尺寸。既然你已经计算出公式,你就会知道什么时候停止询问下一个包裹。还有一个验证字节 - 你必须使用它来确保数据是正确的。

0

我没有使用过这台相机,但看起来像它的作品完全一样,是我用过的相机(C328)。发送图像分辨率/颜色命令。当你想让图像发送一个图像捕捉命令。摄像机通过串行链路发送二进制文件进行响应。