用ImageJ插件改变对比度

时间:2015-04-13 23:58:21

标签: java imagej contrast

插件的目标是从堆栈中取一个切片,然后创建一个新堆栈,其中包含相同切片但具有不同对比度的多个图像。

我写了一个for循环,但结果不是我想要的。创建了新堆栈,但每个切片中的图像始终相同。 我在这里缺少什么?

public void run(ImageProcessor ip) {
    ImageProcessor ip2 = ip.duplicate();
    ImageStack nstack = new ImageStack(stack.getWidth(),stack.getHeight());
    ip2.snapshot();
        for(int i=0; i<256; i=i+10){
        ip2.setMinAndMax(0,i);
        nstack.addSlice("Contrast "+i, ip2);
        ip2.reset();
        }

    ImagePlus imp2= new ImagePlus("teste", nstack);
    imp2.show();
    }}

1 个答案:

答案 0 :(得分:0)

迈克尔施密德在ImageJ mailing list上指出,

  

亮度&amp;对比度设置决定数据的方式   显示,它们不会影响实际数据

如果是8位图像,您可以在设置对比度后使用ByteProcessor classapplyLut()方法:

ip2.setMinAndMax(0,i);
ip2.applyLut();