Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ImageJ插件更改对比度_Java_Imagej_Contrast - Fatal编程技术网

Java 使用ImageJ插件更改对比度

Java 使用ImageJ插件更改对比度,java,imagej,contrast,Java,Imagej,Contrast,该插件的目标是从堆栈中获取一个切片,然后创建一个新的堆栈,其中包含相同切片的多个图像,但对比度不同 我写了一个for循环,但是结果不是我想要的。新堆栈已创建,但在每个切片中始终是相同的图像。 我错过了什么 public void run(ImageProcessor ip) { ImageProcessor ip2 = ip.duplicate(); ImageStack nstack = new ImageStack(stack.getWidth(),stack.getHeig

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

我写了一个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();
    }}
公共无效运行(图像处理器ip){
ImageProcessor ip2=ip.duplicate();
ImageStack nstack=新的ImageStack(stack.getWidth(),stack.getHeight());
ip2.snapshot();

对于(int i=0;i,正如Michael Schmid在

亮度和对比度设置确定数据的显示方式 显示时,它们不会影响实际数据

对于8位图像,您可以在设置对比度后使用的
applyLut()
方法:

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

addSlice方法仅更新最小值和最大值(如果没有其他切片),因此不会保留您的设置。但是,我不确定如何执行您想要的操作…您在上的运气可能会更好。非常感谢您的输入。我将在那里尝试:)