我正在编写一个用于实时图像处理的 Java 应用程序。我希望能够验证所使用的算法或随后使用 Matlab 在 Java 应用程序中呈现我获取的数据。在 Java 应用程序中,我使用 java.awt.image.BufferedImage 在内部处理数据。该程序通常运行约1-2分钟,以25Hz、160x120像素8位灰度抓取数据,因此每帧栅格权重为19200字节,使其每分钟获取30MB的数据。
向 Matlab 提供这些数据的最佳方式是什么?
我的目标是拥有一个 Matlab 数组,其中所有帧都位于最后。我考虑过将帧存储在未压缩的 avi 中(我还不知道该怎么做),但也许有一种更简单、既定的方法来做到这一点?我已经读过this ,但还不知道如何使用它,也不知道这是否是处理多个帧的正确方法。
感谢您的帮助。
最佳答案
您应该能够将图像存储在内存中的数组中 - 只要您确保为 JVM 提供足够的堆内存(java 的 -Xmx 选项)。
捕获图像后,您可以使用以下方法将它们写入磁盘:ImageIO.write(bufferedImage, "png", file)
如果您将它们全部放在具有简单文件名的目录中,例如“img-00001.png”、“img-00002.png”,那么您应该能够在 Matlab 中加载图像序列。
关于java - 如何将多个 java.awt.image.BufferedImage 传递给 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4009398/