我正在研究嵌入式家庭监控系统。我想连接几个支持串口的JPEG捕捉摄像头,可能是几个门传感器等。问题是,我不能为我的生活弄清楚如何将摄像头连接到微控制器。剧照,流媒体视频,没关系 - 我找不到任何关于此的文档。
我理解串行通信,我在那里发现的大多数相机文档都描述了指示相机将数据流发送到uC进行捕获所需的协议。他们没有展示的是你得到它后你应该对数据做些什么。
它们显示了一个很棒的小视频,数据表描述了必须将哪些字节发送到相机以检索图像。我需要的是某种示例或教程,它将解释如何处理构成图像本身的字节流。如何将这些字节排列到图像中并将其另存为文件?
我到处寻找某种教程,但已经干了。我不确定我将在这个项目中使用哪个处理器,但这个问题并不依赖于处理器。我需要的只是算法,如果存在,可能是对图书馆的窥视。我将采取这个过程并使其适应我的硬件,我似乎无法找到一个开始的地方。
你们有没有这样做过?
答案 0 :(得分:3)
我认为本文档第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存储缓冲区。
湾接下来是发送“SNAPSHOT”命令将图像捕获到内存缓冲区中。
℃。最后是发送“GET PICTURE”命令(只有一次,但数据将多次返回 - 参见第15页的图表)以提取出所有图像....它将以“包”的形式返回因为我们已经在“set package size”中定义了大小。由于你已经计算了公式,你将知道何时停止要求下一个包。并且有一个验证字节 - 你必须使用它来确保数据是正确的。
答案 1 :(得分:0)
我没有使用过这款相机,但看起来它与我用过的相机(C328)完全相同。发送图像分辨率/颜色命令。如果要获取图像,请发送图像捕获命令。摄像机通过串行链路发送二进制文件进行响应。