putPixel与ImageJ

时间:2015-10-13 01:24:24

标签: java imagej

我是一名ImageJ初学者,我试图使用putPixel但没有取得多大成功。

ImagePlus ip = IJ.getImage();
    HistogramWindow histo = new HistogramWindow(ip);
    int w = ip.getWidth(), h = ip.getHeight();
    int[] pixels = new int[4];
    int[] pxltmp = {0,0,0};
    int temp = 0;
    for (int j = 0; j < h; j++){
        for (int i = 0; i < w; i++) {
            pixels = (int[])ip.getPixel(i,j);
            pxltmp[0] = pixels[2];
            pxltmp[1] = pixels[1];
            pxltmp[2] = pixels[0];
            **ip.putPixel(i,j,pxltmp);**
        }
    }

我的插件在此行中断,我试图将putPixel发送为x,y和三个像素的数组。我究竟做错了什么?此外,有没有更好的方法来获取ImageJ中的错误消息,我现在在黑暗中。我尝试设置eclipse但在那里遇到问题。

1 个答案:

答案 0 :(得分:2)

您的ip变量是ImagePlus,并且没有putPixel()方法。首先获取ImageProcessor,然后它应该有效。

ImagePlus imp = IJ.getImage();
ImageProcessor ip = imp.getProcessor();
ip.putPixel(x,y,value);

看起来你只想将RGB转换为BGR。使用ImageJ命令可以更简单地完成此操作:

IJ.run(imp, "RGB Stack", "");
IJ.run(imp, "Reverse", "");
IJ.run("Stack to RGB", "");