从 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 上,您可以只使用特殊文件名 COM1
、COM2
等。
至于实际读取图像数据,正如其他人所提到的,您需要知道它是什么格式。如果它是Java已知的文件格式之一,您可以尝试使用ImageIO.read()
。如果它是原始位图格式,您可以尝试通过从 Raster 创建 BufferedImage 以及从适当的 SampleModel 和 DataBuffer 创建 Raster 来从原始数据构造缓冲图像。但是,您需要知道位图数据的格式才能执行此操作。
【讨论】:
根据相机规格的数据格式为:数据格式-YCrCb 4:2:2, GRB 4:2:2, RGB Raw Data以上是关于从 Java 中的 COM7 端口读取图像数据的主要内容,如果未能解决你的问题,请参考以下文章