从 Java 中的 COM7 端口读取图像数据

Posted

技术标签:

【中文标题】从 Java 中的 COM7 端口读取图像数据【英文标题】:Read image data from COM7 port in Java 【发布时间】:2012-04-24 10:04:43 【问题描述】:

我正在做一个项目,我必须在 PC 上显示从相机芯片捕获的图像。

图像数据正在通过 COM7 端口发送到计算机。 (我已经使用哑终端程序检查了它)。基本上我想做的是开发一个Java程序来读取COM端口,获取图像数据,处理它并显示在屏幕上。

我想知道的是如何在我的Java程序中从COM7端口读取这个图像数据。

【问题讨论】:

没有足够的信息来回答。以什么格式传输数据? 那毫无意义。以什么文件或图像格式流式传输数据? 我正在通过 RS232 链路从微控制器获取数据。 【参考方案1】:

您可能想从从端口读取数据开始。为此,Socket 可能很有用。

既然您“认为”数据将是字节...请尝试以下操作:

BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes));

您也可以查看related 帖子

【讨论】:

【参考方案2】:

对于问题的串行端口部分,请像读取任何其他文件一样读取串行端口。

在 'nix 上,串行端口被命名为 /dev/ttySn,其中 n 0-3 用于 COM1 到 COM4。我猜如果存在更多串行端口,您的系统上也会存在适当命名的文件来访问这些端口。 在 Windows 上,您可以只使用特殊文件名 COM1COM2 等。

至于实际读取图像数据,正如其他人所提到的,您需要知道它是什么格式。如果它是Java已知的文件格式之一,您可以尝试使用ImageIO.read()。如果它是原始位图格式,您可以尝试通过从 Raster 创建 BufferedImage 以及从适当的 SampleModel 和 DataBuffer 创建 Raster 来从原始数据构造缓冲图像。但是,您需要知道位图数据的格式才能执行此操作。

【讨论】:

根据相机规格的数据格式为:数据格式-YCrCb 4:2:2, GRB 4:2:2, RGB Raw Data

以上是关于从 Java 中的 COM7 端口读取图像数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java 从真实文件中读取?

通过java程序从图像中读取字符值

从 php 中的图像读取地理标记数据

读取 .bmp 图像并从图像的第 10 个字节中减去 10 并在 Java 中重新创建图像

从客户端java读取数据时连接重置错误[重复]

如何从 Python 中的 URL 读取图像数据?