0

我也需要将我的字节数组(图像)转换为编码的 URL,以便我的远程服务器可以解释它,然后在处理后重新编码并发送回用户。

这是为了设置一个服务器(云),托管的深度学习模型将在其上获取用户处理的图像(在实验室使用 FiJi (imageJ))。它将消除噪音(泊松和高斯),用户将直接从服务器接收他的堆栈,避免他们在他们的计算机上安装沉重的东西。

importClass(Packages.ij.IJ);
importClass(java.awt.image.BufferedImage);
importClass(java.io.ByteArrayOutputStream);
importClass(java.io.File);
importClass(javax.imageio.ImageIO);
importClass(java.util.Base64);
importClass(java.lang.StringBuffer);

imp = IJ.getImage();

var buffered = imp.getBufferedImage();
imp.draw();
imp.getCurrentSlice();

baos = new ByteArrayOutputStream();
ImageIO.write( buffered, "jpg", baos );
baos.flush();
imageInByte = baos.toByteArray();
baos.close();
IJ.log(imageInByte[18751]);

所以目前(我对 JS 有点陌生,所以对“IJ.log(imageInByte [])”行感到抱歉,因为这是查看我的字节编码是否正常工作的唯一方法。

我现在正在努力寻找一种方法将这个“imageInByte”转换为一个 URL,所以我的下一步将是设置服务器,以便他可以获取这个 URL,对其进行解码,拥有 8 位图像,完成他的工作去除图片上的噪音(显微镜堆栈),将其重新编码为字节然后 URL 并通过 ImageJ 插件重新发送给客户,并享受干净的图像,而无需在本地主机上安装整个模型......

我不知道如何继续,因为我发现的所有内容都是纯 Java 或 Web 编程,并且我正在编写一个 FiJi 脚本(请原谅我的 lvl,因为我找到了解决方案,所以我对从一种语言传递到另一种语言还不够熟悉,但是对于不相似的问题和 PLSQL 或 C++)

我通常会先使用“btoa”,然后使用“atob”,但我的斐济控制台返回“未定义”我已经导入了许多缓冲类,但它不会被“定义”...

编辑:替代解决方案是获取相同的代码(我不知道如何将这些 java 库作为 Jython 导入),这样我就可以获得相同的结果(图像的字节数组)并使其成为编码 URL 似乎更容易Python,所以我也愿意接受任何关于将其翻译成 python 的帮助!

4

1 回答 1

0

因此,在意识到 JS 变得越来越难之后,我将我的代码换成了 python(感谢 Jython env,这很容易)

我在我的问题上走得更远,所以我将在 python 中发布

答案:在 JS 中不可能将数组的字节转换为编码的 URL 或使用 toString。

再次感谢您的宝贵帮助。

于 2019-07-18T08:51:20.863 回答