private static ImageStack filterRGB(ImageStack rgb_in, int filter, float vx, float vy, float vz) { ImageStack[] channels = ChannelSplitter.splitRGB(rgb_in, false); ImageStack red = filter(channels[0], filter, vx, vy, vz); ImageStack green = filter(channels[1], filter, vx, vy, vz); ImageStack blue = filter(channels[2], filter, vx, vy, vz); return RGBStackMerge.mergeStacks(red, green, blue, false); }
private void run(ImagePlus imp, int filter, float radX, float radY, float radZ) { if (imp.isHyperStack()) { filterHyperstack(imp, filter, radX, radY, radZ); return; } ImageStack res = filter(imp.getStack(), filter, radX, radY, radZ); imp.setStack(res); }
private static ImageStack filterRGB(ImageStack rgb_in, int filter, float vx, float vy, float vz) { ImageStack[] channels = ChannelSplitter.splitRGB(rgb_in, false); ImageStack red = filter(channels[0], filter, vx, vy, vz); ImageStack green = filter(channels[1], filter, vx, vy, vz); ImageStack blue = filter(channels[2], filter, vx, vy, vz); return RGBStackMerge.mergeStacks(red, green, blue, false); }
private void run(ImagePlus imp, int filter, float radX, float radY, float radZ) { if (imp.isHyperStack()) { filterHyperstack(imp, filter, radX, radY, radZ); return; } ImageStack res = filter(imp.getStack(), filter, radX, radY, radZ); imp.setStack(res); }
/** * Performs dilation with a ball structuring element by calling the ImageJ * Filters3D.filter method, using Filters3D.MAX option. * * @param image * the 3D stack to process */ @Override public ImageStack dilation(ImageStack image) { float r = (float) this.radius; ImageStack result = Filters3D.filter(image, Filters3D.MAX, r, r, r); result.setColorModel( image.getColorModel() ); return result; }
/** * Performs erosion with a ball structuring element by calling the ImageJ * Filters3D.filter method, using Filters3D.MIN option. * * @param image * the 3D stack to process */ @Override public ImageStack erosion(ImageStack image) { float r = (float) this.radius; ImageStack result = Filters3D.filter(image, Filters3D.MIN, r, r, r); result.setColorModel( image.getColorModel() ); return result; } }
/** * Performs erosion with a ball structuring element by calling the ImageJ * Filters3D.filter method, using Filters3D.MIN option. * * @param image * the 3D stack to process * @return the result of the erosion */ @Override public ImageStack erosion(ImageStack image) { float rx = (float) this.xRadius; float ry = (float) this.yRadius; float rz = (float) this.zRadius; ImageStack result = Filters3D.filter(image, Filters3D.MIN, rx, ry, rz); result.setColorModel( image.getColorModel() ); return result; } }
/** * Performs dilation with a ball structuring element by calling the ImageJ * Filters3D.filter method, using Filters3D.MAX option. * * @param image * the 3D stack to process * @return the result of the dilation */ @Override public ImageStack dilation(ImageStack image) { float rx = (float) this.xRadius; float ry = (float) this.yRadius; float rz = (float) this.zRadius; ImageStack result = Filters3D.filter(image, Filters3D.MAX, rx, ry, rz); result.setColorModel( image.getColorModel() ); return result; }
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.MAX, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ MAXIMUM ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.MAX, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ MAXIMUM ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.MIN, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ MINIMUM ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.MEDIAN, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ MEDIAN ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.MEAN, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ MEAN ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.VAR, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ VARIANCE ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.MEAN, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ MEAN ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.MIN, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ MINIMUM ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.MEDIAN, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ MEDIAN ] +"_" + sigma, is ); result.add( ip ); return result; } };
public ArrayList< ImagePlus > call() { final ImagePlus im = originalImage.duplicate(); if( originalImage.getType() != ImagePlus.COLOR_RGB ) { ImageConverter ic = new ImageConverter( im ); ic.convertToGray32(); } ArrayList<ImagePlus> result = new ArrayList<ImagePlus>(); final ImageStack is = Filters3D.filter(im.getImageStack(), Filters3D.VAR, (float) (sigma * scaleFactor[0]), (float) (sigma * scaleFactor[1]), (float) (sigma * scaleFactor[2])); final ImagePlus ip = new ImagePlus( availableFeatures[ VARIANCE ] +"_" + sigma, is ); result.add( ip ); return result; } };
private static void filterHyperstack(ImagePlus imp, int filter, float vx, float vy, float vz) { if (imp.getNDimensions()>4) { IJ.error("5D hyperstacks are currently not supported"); return; } if (imp.getNChannels()==1) { ImageStack stack = filter(imp.getStack(), filter, vx, vy, vz); imp.setStack(stack); return; } ImagePlus[] channels = ChannelSplitter.split(imp); int n = channels.length; for (int i=0; i<n; i++) { ImageStack stack = filter(channels[i].getStack(), filter, vx, vy, vz); channels[i].setStack(stack); } ImagePlus imp2 = RGBStackMerge.mergeChannels(channels, false); imp.setImage(imp2); imp.setC(1); }
private static void filterHyperstack(ImagePlus imp, int filter, float vx, float vy, float vz) { if (imp.getNDimensions()>4) { IJ.error("5D hyperstacks are currently not supported"); return; } if (imp.getNChannels()==1) { ImageStack stack = filter(imp.getStack(), filter, vx, vy, vz); imp.setStack(stack); return; } ImagePlus[] channels = ChannelSplitter.split(imp); int n = channels.length; for (int i=0; i<n; i++) { ImageStack stack = filter(channels[i].getStack(), filter, vx, vy, vz); channels[i].setStack(stack); } ImagePlus imp2 = RGBStackMerge.mergeChannels(channels, false); imp.setImage(imp2); imp.setC(1); }