簡體   English   中英

如何將ImageJ用作單獨Java應用程序的庫?

[英]How can I use ImageJ as a library for a separate Java application?

在常規Java應用程序中,我有一個BufferedImage,我想用ImageJ操作。 我有一個宏,這正是我需要執行的。 我懷疑第一步是創建一個ImagePlus對象,但我不知道如何在Java中運行ImagePlus對象上的宏。 這里找到的ImageJ教程的7.3節說:

如果您決定使用ImagePlus作為內部圖像格式,您還可以使用ImageJ發行版中的所有插件和宏以及所有其他ImageJ插件。

但並未說明如何操作。 如果有人可以解釋如何,或指向我的資源,我會非常感激。

以下站點使用示例描述了ImageJ API: http//albert.rierol.net/imagej_programming_tutorials.html#ImageJ編程基礎知識

這些例子包括閱讀圖像,處理像素等。我想你還需要使用API文檔

下面是一個示例代碼,用於打開圖像,將其反轉並將其保存回來:

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");

我希望它可以幫助你開始:)

這是一個開源項目實現,其中包含用於照片共享Web應用程序的imagej。

使用它作為參考,在您的應用程序中實現imagej apis

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM