putPixel 与 ImageJ
putPixel with 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,但那里有问题。
您的 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", "");
我是 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,但那里有问题。
您的 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", "");