14

通常のJavaアプリケーションには、ImageJで操作したいBufferedImageがあります。まさに実行する必要のあるマクロがあります。最初のステップはImagePlusオブジェクトを作成することだと思いますが、Java内からImagePlusオブジェクトでマクロを実行する方法がわかりません。ここにあるImageJチュートリアルのセクション7.3は次のように述べています。

内部画像形式としてImagePlusを使用する場合は、ImageJディストリビューションのすべてのプラグインとマクロ、および他のすべてのImageJプラグインを使用することもできます。

しかし、そうする方法を示していません。誰かがその方法を説明したり、そうするリソースを教えてくれたら、とてもありがたいです。

4

3 に答える 3

12

次のサイトでは、ImageJ APIについて例を挙げて説明しています。http://albert.rierol.net/imagej_programming_tutorials.html#ImageJプログラミングの基本

例には、画像の読み取り、ピクセルの処理などが含まれます。まあ、 APIドキュメントもたくさん使用する必要があると思います。

于 2012-05-20T22:29:01.163 に答える
6

画像を開き、反転して保存するサンプルコードを次に示します。

import ij.ImagePlus;
import ij.io.FileSaver;
import ij.process.ImageProcessor;

ImagePlus imgPlus = new ImagePlus("path-to-sample.jpg");
ImageProcessor imgProcessor = imgPlus.getProcessor();
imgProcessor.invert();
FileSaver fs = new FileSaver(imgPlus);
fs.saveAsJpeg("path-to-inverted.jpg");

次に、画像を操作してグレースケールにする方法を示すサンプルコードを示します。

BufferedImage bufferedImage = imgProcessor.getBufferedImage();
for(int y=0;y<bufferedImage.getHeight();y++)
{
    for(int x=0;x<bufferedImage.getWidth();x++)
    {
        Color color = new Color(bufferedImage.getRGB(x, y));
        int grayLevel = (color.getRed() + color.getGreen() + color.getBlue()) / 3;
        int r = grayLevel;
        int g = grayLevel;
        int b = grayLevel;
        int rgb = (r<<16)  | (g<<8)  | b;
        bufferedImage.setRGB(x, y, rgb);
    }
}
ImagePlus grayImg = new ImagePlus("gray", bufferedImage);
fs = new FileSaver(grayImg);
fs.saveAsJpeg("path-to-gray.jpg");

私はそれがあなたが始めるのに役立つことを願っています:)

于 2015-10-16T18:15:06.597 に答える
2

これは、写真共有Webアプリ用のimagejを使用したオープンソースプロジェクトの実装です。

これを参照として使用して、アプリケーションにimagejapisを実装します

http://www.gingercart.com/Home/java-snippets/create-image-thumbnail-in-java-using-imagej-api

于 2013-08-22T02:43:54.570 に答える