2016-12-24 12 views
-1

Я пытаюсь использовать this java class из ImageJ, чтобы уменьшить изображение в java.Как я могу реализовать алгоритм Denoising ImageJ для локальных сред в Java-коде?

Мои попытки привели меня к этому тест-класса в сочетании с these two classes (the github page linked to from ImageJ's website):

import ij.ImagePlus; 
import ij.process.ByteProcessor; 
import ij.process.ImageProcessor; 

public class Test { 

public static void main(String[] args) { 
    String directory = "C:\\Users\\Speedy Octopus\\Desktop\\Noise Reduction\\Before Denoising.JPG"; 
    BufferedImage image = ImageUtility.loadImage(directory); 

    ImageProcessor ip = new ByteProcessor(image.getWidth(), image.getHeight()); 
    String title = "New Image"; 
    ImagePlus imp = new ImagePlus(title, ip); 

    NLMeansDenoising_ nlmd = new NLMeansDenoising_(); 
    nlmd.setup("final", imp); 
    nlmd.run(ip); 
    } 
} 

Но я не могу показаться, чтобы получить nlmd.setup() сделано правильно.

Любая помощь была бы принята с благодарностью.

ответ

0

Наконец-то я нашел ответ на свой вопрос.

Весь класс Test будет выглядеть так:

import ij.IJ; 
import ij.ImagePlus; 
import ij.io.FileSaver; 
import ij.plugin.PlugIn; 


public class Test implements PlugIn { 

public static void main(String[] args) { 

    Test test = new Test(); 
    test.run("Denoise.ijm"); 

} 

@Override 
public void run(String arg0) { 
    String directory = "C:\\Users\\Speedy Octopus\\Desktop\\10Cover Shots\\10.JPG"; 

    ImagePlus imp = IJ.openImage(directory); 
    FileSaver fileSaver = new FileSaver(imp); 

    System.setProperty("plugins.dir", "C:\\Users\\Speedy Octopus\\Downloads\\ij150-win-java8\\ImageJ\\plugins"); 
    IJ.run(imp, "Non-local Means Denoising", "sigma=5 smoothing_factor=1"); 
    fileSaver.saveAsJpeg("C:\\Users\\Speedy Octopus\\Desktop\\10Cover Shots\\10edited.JPG"); 
} 
}