该插件的目标是从堆栈中取出一个切片,然后创建一个新的堆栈,其中包含相同切片但具有不同对比度的多个图像。
我写了一个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();
}}
发布于 2015-04-25 04:56:08
正如迈克尔·施密德在ImageJ mailing list上指出的那样,
亮度和对比度设置决定了数据的显示方式,它们不会影响实际数据
如果是8位图片,可以在设置对比度后使用ByteProcessor
class的applyLut()
方法:
ip2.setMinAndMax(0,i);
ip2.applyLut();
https://stackoverflow.com/questions/29616975
复制相似问题