我是一名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但在那里遇到问题。
答案 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", "");