Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 嵌入式图像捕获-需要入门帮助吗_Image Processing_Embedded_Arm_Arduino_Image Capture - Fatal编程技术网

Image processing 嵌入式图像捕获-需要入门帮助吗

Image processing 嵌入式图像捕获-需要入门帮助吗,image-processing,embedded,arm,arduino,image-capture,Image Processing,Embedded,Arm,Arduino,Image Capture,我在做一个嵌入式家庭监控系统。我想连接两个支持串行JPEG捕获的摄像头,可能是两个门传感器等。问题是,我一辈子都搞不清楚如何将摄像头连接到微控制器。剧照,流媒体视频,没关系-我找不到任何关于这个的操作文档 我了解串行通信,我在那里找到的大多数摄像头文档都描述了指示摄像头将数据流发送到uC进行捕获所需的协议。他们没有显示的是,一旦你得到数据,你应该如何处理它 它们显示了一个非常小的视频,数据表描述了必须发送到相机才能检索图像的字节。我需要的是某种类型的示例或教程,它将解释如何处理构成图像本身的字

我在做一个嵌入式家庭监控系统。我想连接两个支持串行JPEG捕获的摄像头,可能是两个门传感器等。问题是,我一辈子都搞不清楚如何将摄像头连接到微控制器。剧照,流媒体视频,没关系-我找不到任何关于这个的操作文档

我了解串行通信,我在那里找到的大多数摄像头文档都描述了指示摄像头将数据流发送到uC进行捕获所需的协议。他们没有显示的是,一旦你得到数据,你应该如何处理它

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

我已经找遍了所有的地方,想找一本类似的教程,但都找不到。我还不确定我将在这个项目中使用哪个处理器,但这个问题实际上并不依赖于处理器。我所需要的只是算法,如果有库的话,也许可以看一眼。我将采取这个过程,并使其适应我的硬件,我只是似乎找不到一个地方开始


你们中有人这样做过吗

我认为本文件第10页中的细节非常清楚:

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

其次,(package_size-6)在任何地方都要一致使用,因为6个字节用于非数据目的,所以(package_size-6)将只是数据,但您必须自己重新组装它

为了从包中组装数据,你必须去掉4字节头+2字节尾,然后依次从所有包中连接所有这些数据

其他事实:

a。“设置包大小”命令必须在“快照”命令之前从主机发送到CAM,该命令将图像从摄像头捕获到CAM内存缓冲区中

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


c。最后是发送“获取图片”命令(仅一次,但数据将返回多次-请参见第15页的图表)以提取所有图像…它将以“包”的形式返回,正如我们前面在“设置包大小”中定义的大小。既然你已经计算了公式,你就知道什么时候该停止索要下一个包裹了。还有一个验证字节-你必须使用它来确保数据是正确的。

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

这是一份写得很糟糕的数据表!“包大小不能是奇数或16的倍数”,然后说明64和512的限制是16的倍数,所以它们的意思可能是应该。包可能是包的误译。。。不管怎样,如果你重新组装“包”并将它们作为一个文件写出来,你会碰巧得到一个有效的jpeg吗?您至少可以在其中查找jpeg头。解码他们的原始图像可能比较困难,但你可能会得到一个结构化场景(垂直或水平白/黑分割)和十六进制转储…如果你确定你收到的ByTestStream包含图像,为什么不将其保存为二进制文件并与我们共享呢?对于那些没有照相机的人来说,帮助你会更容易。@Chris-我很高兴听到你认为这是一份糟糕的数据表,我当然没有从中得到太多。@米沙——这就是问题所在:我还没有相机。我想设计这个系统,但我甚至不知道我需要什么。我所希望的是某种教程,它将告诉我从不同类型的相机中可以得到什么,以及如何处理它们发送给我的数据。我不一定期望你们写这样的教程,我希望已经有人写了,我只是还没有找到它。你知道这样的文档吗?我真的不知道任何关于串行类型相机的文档。有很多USB类型网络摄像头的驱动程序,但我认为你不想进入其中,除非你在你的设备上使用嵌入式版本的桌面操作系统(比如嵌入式linux)因为尝试将USB驱动程序移植到一个新的操作系统或裸USB功能可能比使用这个串行设备要痛苦得多。这与我试图将数据表中的错误语句翻译回其可能的意图所得出的结论相符——但也要小心关于需要在之后重置的警告特定大小的数据包。这是您不必购买并试用该设备就可以做到的。在这一点上,如果这是一个非爱好项目,开发人员考虑它的时间已经超过了硬件成本。这可能不需要提及,但使用PC而不是嵌入式平台进行初始测试可能会容易得多;只需花费少量时间为PC操作系统的串行接口和嵌入式系统编写包装函数,就可以使功能逻辑在两者之间基本上可移植。谢谢大家。这在很大程度上是一个爱好项目,所以这只是我正在修补的东西。我只是没能用正确的算法起步。这是一个很好的起点。另外,Chris:关于使用PC进行原型设计和初始化的好建议