/** Starts the program. */ public void runAlgorithm() { if ((srcImage1 == null) || (srcImage2 == null) || (destImage == null)) { displayError("Source Image(s) is null"); setCompleted(false); return; } if (srcImage1.getType() != srcImage2.getType()) { displayError("Source Images must be of the same data type."); setCompleted(false); return; } float[] resols1 = srcImage1.getResolutions(0); float[] resols2 = srcImage2.getResolutions(0); if ((srcImage1.getNDims() == 2) && (srcImage2.getNDims() == 2)) { if (resols1[0] == resols2[0] && resols1[1] == resols2[1]) { cat2D_2D_3D(); } else { displayError("Resolutions must match up"); setCompleted(false); return; } } else if (((srcImage1.getNDims() == 2) && (srcImage2.getNDims() == 3)) || ((srcImage1.getNDims() == 3) && (srcImage2.getNDims() == 2))) { if (resols1[0] == resols2[0] && resols1[1] == resols2[1]) { cat2D_3D_3D(); } else { displayError("Resolutions must match up"); setCompleted(false); return; } } else if ((srcImage1.getNDims() == 3) && (srcImage2.getNDims() == 3) && (destImage.getNDims() == 3)) { if (resols1[0] == resols2[0] && resols1[1] == resols2[1] && resols1[2] == resols2[2]) { cat3D_3D_3D(); } else { displayError("Resolutions must match up"); setCompleted(false); return; } } else if ((srcImage1.getNDims() == 3) && (srcImage2.getNDims() == 3) && (destImage.getNDims() == 4)) { if (resols1[0] == resols2[0] && resols1[1] == resols2[1] && resols1[2] == resols2[2]) { cat3D_3D_4D(); } else { displayError("Resolutions must match up"); setCompleted(false); return; } } else if (((srcImage1.getNDims() == 3) && (srcImage2.getNDims() == 4)) || ((srcImage1.getNDims() == 4) && (srcImage2.getNDims() == 3))) { if (resols1[0] == resols2[0] && resols1[1] == resols2[1] && resols1[2] == resols2[2]) { cat3D_4D_4D(); } else { displayError("Resolutions must match up"); setCompleted(false); return; } } else if ((srcImage1.getNDims() == 4) && (srcImage2.getNDims() == 4)) { if (resols1[0] == resols2[0] && resols1[1] == resols2[1] && resols1[2] == resols2[2] && resols1[3] == resols2[3]) { cat4D_4D_4D(); } else { displayError("Resolutions must match up"); setCompleted(false); return; } } else { displayError("Source Image(s) dimensionality not supported."); } }