将浮点数组转换为图像
我的目标是接收一个浮点数数组,制作一个图像,调整图像大小,然后从调整大小的图像中读出一个浮点数数组。
我输入图像本身的数据并不对应于真实的图形,但我试图找到一种在调整浮点数组大小时插入数据的解决方法。
从我所做的研究来看,涉及的步骤似乎是:
- 创建一个 WritableRaster 对象并向其提供浮点数组
- 将该 WritableRaster 对象发送到 BufferedImage 对象
- 调整 BufferedImage 对象的大小(使用双线性插值)
- 以某种方式从 BufferedImage 获取浮点数组
帮助、提示和示例代码将不胜感激!今天我脑子炸了。
my goal is to take in an array of floats, make an image, resize the image, then read out an array of floats from the resized image.
The data I'm feeding into the image itself doesn't correspond to a true graphic, but I'm trying to find a work-around for interpolating data when resizing a float array.
From the research I've done it seems like the steps involved are:
- Create a WritableRaster object and feed it the float array
- Send that WritableRaster object into a BufferedImage object
- Resize the BufferedImage object (using bilinear interpolation)
- Somehow get a float array from the BufferedImage
Help, tips, and example code would be greatly appreciated!!! My brains fried today.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果将浮点数转换为整数,则可以使用
BufferedImage.setRGB(int, int, int, int, int[], int, int)
使用
BufferedImage.getScaledInstance()
对其进行缩放,然后使用上面的setRGB()对应的getRGB()方法。If you convert the floats to integers, you can create a
BufferedImage
out of them directly with usingBufferedImage.setRGB(int, int, int, int, int[], int, int)
Use
BufferedImage.getScaledInstance()
to scale it, then use the corresponding getRGB() method to the above setRGB().