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スクリプトを書いているので、どのように進めればよいかわかりません(解決策を見つけたので、ある言語から別の言語に移行するのに十分な知識がありません.類似していない問題および PLSQL または C++ の場合)

私は通常、「btoa」、「atob」の順に使用しますが、フィジーコンソールは「定義されていません」と返します。多くのバッファリングクラスをインポートしましたが、「定義」されません...

編集:別の解決策は、同じコードを取得することです(これらのJavaライブラリをJythonとしてインポートする方法がわかりません)ので、同じ結果(画像のバイト配列)が得られ、エンコードされたURLを作成する方がはるかに簡単ですPythonなので、これをPythonに翻訳することについても、どんな助けにもオープンです!

4

1 に答える 1