我是初学者,想要将现有的ImageProcessor图片(RGB)转换为8位灰度值图片(在ImageJ中)。
我尝试了不同的东西,但没有任何效果:
ImageProcessor binaer = copy.getProcessor().convertToByte(false);
......不起作用
..所以我想将处理器类型从ImageProcessor改为ImagePlus ..
ImagePlus imp = copy.getProcessor();
但这也行不通。
我在WEB中找到了这个:
import ij.ImagePlus; import ij.process.ImageConverter;
// ...
ImagePlus imp = IJ.getImage();
ImageConverter ic = new ImageConverter(imp);
ic.convertToGray8();
imp.updateAndDraw();
但我不想使用原始图片,我想使用编辑过的ImageProcessor图片。
有人可以帮帮我吗
答案 0 :(得分:1)
您确定copy.getProcessor().convertToByte(false);
不起作用吗?因为当我查看ImageProcessor代码时,我发现了以下内容:
public ImageProcessor convertToByte(boolean doScaling)
{
TypeConverter tc = new TypeConverter(this, doScaling);
return tc.convertToByte();
}
我在电脑上进行了测试,效果很好。 RGB图像通过8位编码正确转换为灰度级。
你到底想要什么?你想做什么?你想要二进制图像吗?