0

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

由于要处理大量图像,我想知道是否有特殊的有效方法/方法可以访问和/或修改 imagePlus 中的每个像素?我自然得出的唯一想法是通过图像矩阵进行双 for 循环,这需要我几十秒才能在 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      
    }
}

任何想法?

4

1 回答 1

0

由于图像是uchar,你想要做的是相当于

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

您可以创建面具,这会更容易。我不知道在java ImagePlus中,但在matlab中是mask = image==255;.

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

于 2014-04-17T19:15:24.560 回答