从ImagePlus操纵每个像素的快速方法

时间:2014-04-17 12:52:47

标签: java pixels imagej getpixel

您好我需要访问ImagePlus的每个像素进行图像分析。

由于需要处理大量图像,我想知道是否有特殊的有效方法/方法来访问和/或修改imagePlus中的每个像素? 我自然而然提出的唯一想法是通过图像矩阵进行双循环,这需要几十秒才能在1000x1000图像上实现。 这是我的代码:

ImagePlus Iorg = IJ.openImage("Demo1.png");
int[] pix = Iorg.getPixel(5, 5);
if(Iorg.getSlice() != 1) {
    System.exit(0);
}

for(int w=0; w< Iorg.getDimensions()[0]; w++) {
    for(int h=0; h<Iorg.getDimensions()[1]; h++) {
       System.out.println(w + " x " + h);
       // DO what needs to be done      
    }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于图像为uchar,您想要做的是等同于

if(selected_pixel==255) 
     selected_pixel = 1; 
else 
     selected_pixel = 0 

你可以创建更容易的面具。我不知道 java ImagePlus ,但在 matlab 中它是mask = image==255;

根据您的需要尝试使用这种矩阵运算。我确信这些方法应该在库中的某个位置(如果ImagePlus是图像处理库。)