【问题标题】:putPixel with ImageJputPixel 与 ImageJ
【发布时间】:2015-10-13 15:33:32
【问题描述】:

我是 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,但在那里遇到问题。

【问题讨论】:

  • 错误信息/堆栈跟踪是什么?

标签: java imagej


【解决方案1】:

您的 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/Fiji 版本,以及能够回答您的问题的一些基本信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
相关资源
最近更新 更多