Java 使用ImageJ插件更改对比度
该插件的目标是从堆栈中获取一个切片,然后创建一个新的堆栈,其中包含相同切片的多个图像,但对比度不同 我写了一个for循环,但是结果不是我想要的。新堆栈已创建,但在每个切片中始终是相同的图像。 我错过了什么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
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方法仅更新最小值和最大值(如果没有其他切片),因此不会保留您的设置。但是,我不确定如何执行您想要的操作…您在上的运气可能会更好。非常感谢您的输入。我将在那里尝试:)