java - 如何将多个 java.awt.image.BufferedImage 传递给 Matlab

标签 java matlab image-processing image-manipulation

我正在编写一个用于实时图像处理的 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/

相关文章:

java - 如何对已在 onCreate() 方法中创建的 View 使用 dagger 依赖注入(inject)

matlab - 回到 Matlab R2016b 中的旧显示格式

matlab - 删除 Matlab r2014b 绘图浏览器限制

html - 上传前显示图片预览

java - 非法状态异常 : ArrayAdapter requires the resource ID to be a TextView

java - 扫描仪在循环 try/catch 中失败

opencv - 霍夫变换线位置(OpenCV)

java - N 个图像之间的距离 : incrementally!(相同裁剪,但重新压缩/调整)

java - com.google.android.maps.MapView ClassNotFoundException

c++ - 使用特征库再现张量矩阵