Java(ImageJ):快速取消堆栈

时间:2014-09-23 16:56:11

标签: java tiff imagej

我目前正在迭代一个Files数组,其中每个文件都是tif,如果需要,可以将它拆分为多个tif文件。然而,我目前的方法需要很长时间。有人可以看看,让我知道我能做些什么来提高性能吗?

for( File f : stacks ){
    System.out.println( "unstacking \"" + f.getName() + "\"... " );

    ImageStack is = IJ.openImage( f.getAbsolutePath() ).getImageStack();
    int nSlices = is.getSize();
    boolean isStack = true;
    for( int sliceIndex = 1 ; sliceIndex <= nSlices ; sliceIndex++ ){
        String sliceLabel = is.getSliceLabel( sliceIndex );
        if( sliceLabel == null ){
            isStack = false;
            break;
        }

        System.out.println( "\textracting slice \"" + sliceLabel + "\"" );
        IJ.saveAs( new ImagePlus( sliceLabel, is.getProcessor( sliceIndex ) ), "TIF", 
                dir.getAbsolutePath() + File.separator + sliceLabel );
    }

    if( isStack ){
        f.delete();
        System.out.println( "\tdone!" );
    }else
        System.out.println( "\tnot a stack!" );

}

谢谢!

0 个答案:

没有答案