当前位置: 首页>>代码示例>>Java>>正文


Java Duplicator类代码示例

本文整理汇总了Java中ij.plugin.Duplicator的典型用法代码示例。如果您正苦于以下问题:Java Duplicator类的具体用法?Java Duplicator怎么用?Java Duplicator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Duplicator类属于ij.plugin包,在下文中一共展示了Duplicator类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: loadSurfaceColorsFromImage

import ij.plugin.Duplicator; //导入依赖的package包/类
@Override
public void loadSurfaceColorsFromImage(ImagePlus imp) {
	if (imp.getType() != ImagePlus.COLOR_RGB) {
		imp = new Duplicator().run(imp);
		new StackConverter(imp).convertToRGB();
	}
	final InterpolatedImage ii = new InterpolatedImage(imp);

	final Calibration cal = imp.getCalibration();
	final double pw = cal.pixelWidth;
	final double ph = cal.pixelHeight;
	final double pd = cal.pixelDepth;
	for (int i = 0; i < nVertices; i++) {
		final Point3f coord = vertices[i];
		final int v =
			(int) Math.round(ii.interpol.get(coord.x / pw, coord.y / ph, coord.z /
				pd));
		colors[i] =
			new Color3f(((v & 0xff0000) >> 16) / 255f, ((v & 0xff00) >> 8) / 255f,
				(v & 0xff) / 255f);
	}
	final GeometryArray ga = (GeometryArray) getGeometry();
	if (ga == null) return;
	ga.setColors(0, colors);
	changed = true;
}
 
开发者ID:fiji,项目名称:3D_Viewer,代码行数:27,代码来源:CustomIndexedTriangleMesh.java

示例2: showDialog

import ij.plugin.Duplicator; //导入依赖的package包/类
@Override
public int showDialog(final ImagePlus imp, final String command,
	final PlugInFilterRunner pfr)
{
	if (imp.getStackSize() != 2 & imp.getStackSize() != 3) {
		IJ.error("Wrong Image", "The stack has not a size of 2 or 3.\n" +
			"Image 1: The detected borders.\n" +
			"(Image 2: The unprocessed borders.)\n" +
			"Image 2(3): The original SR-EELS data.");
		return DONE;
	}
	input = imp;
	calibration = imp.getCalibration();
	if (showParameterDialog(command) == OK) {
		if (rotate) {
			final ImagePlus temp = input;
			input = new Duplicator().run(input, 1, input.getStackSize(), 1, 1, 1,
				1);
			temp.unlock();
			IJ.run(input, "Rotate 90 Degrees Right", "");
		}
		return FLAGS;
	}
	return DONE;
}
 
开发者ID:EFTEMj,项目名称:EFTEMj,代码行数:26,代码来源:SR_EELS_CorrectionOnlyPlugin.java

示例3: processExposureArray

import ij.plugin.Duplicator; //导入依赖的package包/类
private ImagePlus processExposureArray(final ImagePlus stack,
	final float[] exposureArray)
{
	final float[] exposureArrayNorm = new float[exposureArray.length];
	final float[] exposureArraySorted = Arrays.copyOf(exposureArray,
		exposureArray.length);
	Arrays.sort(exposureArraySorted);
	final float max = exposureArraySorted[exposureArraySorted.length - 1];
	for (int i = 0; i < exposureArray.length; i++) {
		exposureArrayNorm[i] = exposureArray[i] / max;
	}
	final ImagePlus imp = new Duplicator().run(stack, 1, stack.getStackSize());
	for (int i = 0; i < exposureArray.length; i++) {
		final float[] pixels = (float[]) imp.getStack().getPixels(i + 1);
		for (int j = 0; j < pixels.length; j++) {
			pixels[j] /= exposureArrayNorm[i];
		}
	}
	return imp;
}
 
开发者ID:EFTEMj,项目名称:EFTEMj,代码行数:21,代码来源:ElementalMapping.java

示例4: run

import ij.plugin.Duplicator; //导入依赖的package包/类
/**
 * @see ij.plugin.filter.PlugInFilter#run(ij.process.ImageProcessor)
 */
@Override
public void run(ImageProcessor ip)
{

	
	if (showDialog()){
		if (this.blackBackground) this.value = 0;
		if (this.useNew){
			/*ImageProcessor ip2 = ip.duplicate();
			new ImagePlus("Colored", ip2).show();
			ImagePlus tempImp = IJ.getImage();
			this.old = this.image;
			this.image = tempImp;
			this.roi = this.image.getRoi();
			process(ip2);
			coloredImp.updateAndDraw();*/
			this.image = new Duplicator().run(this.image);
			this.image.show();
		}
		this.roi = this.image.getRoi();

		// Convert to a color image.
		if (this.image.getType() != ImagePlus.COLOR_RGB){
			ImageConverter convert = new ImageConverter(this.image);
			convert.convertToRGB();
			IJ.log("Image type after conversion: " + this.image.getType());
		}

		// Get image properties.
		width = ip.getWidth();
		height = ip.getHeight();
		
		if (this.stack) process(this.image);
		else process(image.getStack().getProcessor(this.image.getCurrentSlice()));

		this.image.updateAndDraw();
	}
}
 
开发者ID:KevinWhalen,项目名称:neuron-processing,代码行数:42,代码来源:Color_Roi.java

示例5: run

import ij.plugin.Duplicator; //导入依赖的package包/类
public void run(ImageProcessor arg0)
{
	if (runCount < 1){
		IJ.log("Jeff: Start run Canny edge detector...");
		IJ.log("slice: " + this.imp.getSlice());

		if (this.imp.getStackSize() > 1){
			ImagePlus originalImage  = (ImagePlus) this.imp.clone();
			
			IJ.log("Copying slice: " + originalImage.getSlice());
			this.imp = new Duplicator().run(originalImage, originalImage.getSlice(), originalImage.getSlice());
			originalImage.hide();
			this.imp.show();
			
			sourceImage = imp;
			ProcessFindEdge(sourceImage);
			
			IJ.log("Overwriting slice: " + originalImage.getSlice());
			sourceImage.copy();
			originalImage.show();
			originalImage.paste();
			originalImage.close();
			sourceImage.close();
		} else {
			sourceImage = imp;
			ProcessFindEdge(sourceImage);
		}
		++runCount;
	}
}
 
开发者ID:KevinWhalen,项目名称:neuron-processing,代码行数:31,代码来源:Canny_Edge_Detector.java

示例6: loadSurfaceColorsFromImage

import ij.plugin.Duplicator; //导入依赖的package包/类
public void loadSurfaceColorsFromImage(ImagePlus imp) {
	final GeometryArray ga = (GeometryArray) getGeometry();
	if (ga == null) return;

	if (imp.getType() != ImagePlus.COLOR_RGB) {
		imp = new Duplicator().run(imp);
		new StackConverter(imp).convertToRGB();
	}
	final InterpolatedImage ii = new InterpolatedImage(imp);

	final int N = ga.getValidVertexCount();
	final Color3f[] colors = new Color3f[N];
	final Calibration cal = imp.getCalibration();
	final double pw = cal.pixelWidth;
	final double ph = cal.pixelHeight;
	final double pd = cal.pixelDepth;
	final Point3f coord = new Point3f();
	for (int i = 0; i < N; i++) {
		ga.getCoordinate(i, coord);
		final int v =
			(int) Math.round(ii.interpol.get(coord.x / pw, coord.y / ph, coord.z /
				pd));
		colors[i] =
			new Color3f(((v & 0xff0000) >> 16) / 255f, ((v & 0xff00) >> 8) / 255f,
				(v & 0xff) / 255f);
	}
	ga.setColors(0, colors);
	changed = true;
}
 
开发者ID:fiji,项目名称:3D_Viewer,代码行数:30,代码来源:CustomMesh.java

示例7: shiftImages

import ij.plugin.Duplicator; //导入依赖的package包/类
/**
 * All images of an {@link ImagePlus} stack are shifted by the given shift
 * values.
 *
 * @param initialStack {@link ImagePlus} containing a stack to be shifted
 * @param shift array of {@link Point}s that represent the shift of each
 *          image. This array will be modified if optimise is set
 *          <code>true</code>
 * @param mode The mode used for handling the borders that are created by
 *          translating the image
 * @param optimise true to optimise the given shift values
 * @param createNew true to create a new {@link ImagePlus} and keep the
 *          initial one untouched
 * @return a new {@link ImagePlus} that contains the shifted images
 */
public static ImagePlus shiftImages(final ImagePlus initialStack,
	final Point[] shift, final MODES mode, final boolean optimise,
	final boolean createNew)
{
	Point[] appliedShift;
	if (optimise == true) {
		appliedShift = optimizedImageShift(shift);
	}
	appliedShift = shift;
	ImagePlus correctedStack;
	if (createNew == true) {
		// you have to delete the roi otherwise only the roi is duplicated
		initialStack.deleteRoi();
		correctedStack = new Duplicator().run(initialStack);
		initialStack.restoreRoi();
	}
	else {
		correctedStack = initialStack;
	}
	correctedStack.setTitle(prefix.concat(initialStack.getTitle()));
	for (int i = 0; i < appliedShift.length; i++) {
		correctedStack.getStack().getProcessor(i + 1).translate(appliedShift[i].x,
			appliedShift[i].y);
		final String sliceLabel = correctedStack.getStack().getSliceLabel(i + 1);
		if (sliceLabel != null) {
			correctedStack.getStack().setSliceLabel(prefix.concat(sliceLabel), i +
				1);
		}

	}
	processBorder(correctedStack, appliedShift, mode);
	return correctedStack;
}
 
开发者ID:EFTEMj,项目名称:EFTEMj,代码行数:49,代码来源:OptimisedStackShifter.java

示例8: duplicate

import ij.plugin.Duplicator; //导入依赖的package包/类
private static ImagePlus duplicate(final ImagePlus imp) {
    final Duplicator duplicator = new Duplicator();
    return duplicator.run(imp);
}
 
开发者ID:ij-plugins,项目名称:ijp-toolkit,代码行数:5,代码来源:VectorProcessor.java

示例9: preprocess

import ij.plugin.Duplicator; //导入依赖的package包/类
/** 
 * Third'ish attempt.
 * Image preprocessing for cell segmentation.
 * Steps:
 *   Duplicate the image (twice, keep one as original and other as histo).
 *   Canny Edge detection on the duplicate image.
 *   Subtract background from duplicate.
 *   Add duplicate to the one to be histogrammed.
 *   Run histogram equalization (maybe via CLAHE or Enhance Contrast, or separate Equalize Histogram plugin?).
 *     http://svg.dmi.unict.it/iplab/imagej/Plugins/Forensics/Histogram%20Equalization/HistogramEqualization.html
 *
 *   blur and edge detect again.
*/
public void preprocess()
{
	this.impOriginal = IJ.getImage();
	this.stackSize = this.impOriginal.getStackSize();
	
	// Create a duplicate image, to be processed.
	this.imp = new Duplicator().run(this.impOriginal);
	//this.impHisto = new Duplicator().run(this.impOriginal);
	this.imp.show();
	this.impOriginal.hide();
	this.ip = this.imp.getProcessor();
	//this.is = this.imp.getImageStack();

	for (int i = 1; i <= this.stackSize; ++i){
		this.imp.setSlice(i);
		this.ip.setSliceNumber(i);
		//this.ip.findEdges();
		IJ.run(imp, "CED", "gaussian=2 low=2.5 high=7.5"); // Canny_Edge_Detector
	}

	IJ.run(this.imp, "Subtract Background...", "rolling=50 stack");
	
	ImageCalculator ic = new ImageCalculator();
	this.impOriginal.show();
	this.impHisto = ic.run("Add create stack", this.impOriginal, this.imp);
	this.impOriginal.hide();
	this.imp.hide();
	this.impHisto.show();
	this.ip = this.impHisto.getProcessor();

	String parameters = "blocksize=127 histogram=256 maximum=3 mask=*None* fast_(less_accurate)";
	for (int i = 1; i <= this.stackSize; ++i){
		this.impHisto.setSlice(i);
		this.ip.setSliceNumber(i);
		IJ.log("    current slice: " + this.impHisto.getCurrentSlice());
		
		// http://fiji.sc/Enhance_Local_Contrast_(CLAHE)
		IJ.run(this.impHisto, "Enhance Local Contrast (CLAHE)", parameters);
	}
	
	IJ.run(this.imp, "Bilateral Filter", "spatial=3 range=50");
	this.impSmooth = IJ.getImage();
	IJ.run(this.impSmooth, "Invert LUT", "");
	IJ.run(this.impSmooth, "Despeckle", "stack");
	IJ.run(this.impSmooth, "Invert", "stack");
	
	this.impOriginal.show();
	this.imp.show();
	this.impHisto.show();
	this.impSmooth.show();
	
	//IJ.showMessage("At the next prompt; select [Average Intensity], and remove the leading and trailing slices that do not include the neuron cells.");
	//IJ.run(imp, "Z Project...", "projection=[Average Intensity]");
	//IJ.run(imp, "Enhance Local Contrast (CLAHE)", "blocksize=127 histogram=256 maximum=3 mask=*None*");
	
	// http://homepages.inf.ed.ac.uk/rbf/HIPR2/pixmult.htm
}
 
开发者ID:KevinWhalen,项目名称:neuron-processing,代码行数:71,代码来源:Segmentation.java

示例10: showDialog

import ij.plugin.Duplicator; //导入依赖的package包/类
@Override
public int showDialog(final ImagePlus imp, final String command,
	final PlugInFilterRunner pfr)
{
	// I assume that the axis of the energy loss is the longer one.
	kernelRadius = (float) (0.5 * Math.ceil(2.0 * Math.min(imp.getWidth(), imp
		.getHeight()) / 200));
	maxCount = (int) Math.ceil(1.0 * Math.min(imp.getWidth(), imp.getHeight()) /
		75);
	localMaxRadius = (int) Math.floor(kernelRadius);
	linearFitIntervals = (int) Math.ceil(1.0 * Math.max(imp.getWidth(), imp
		.getHeight()) / 100);
	titlePrefix = command;
	logTool = new EFTEMjLogTool(command);
	input = imp;
	calibration = imp.getCalibration();
	inputTitle = imp.getTitle();
	String message;
	switch (showModeDialog(command)) {
		case AUTOMATIC:
			message = "Automatic SR-EELS correction has been selected.";
			logTool.println(message);
			IJ.showStatus(message);
			if (showParameterDialog(command) == CANCEL) {
				cancel();
				return DONE;
			}
			mode = AUTOMATIC;
			break;
		case MANUAL:
			message = "Manual SR-EELS correction has been selected.";
			logTool.println(message);
			IJ.showStatus(message);
			mode = MANUAL;
			break;
		default:
			cancel();
			return DONE;
	}
	if (rotate == true) {
		final ImagePlus temp = input;
		input = new Duplicator().run(input);
		temp.unlock();
		IJ.run(input, "Rotate 90 Degrees Right", "");
	}
	return FLAGS;
}
 
开发者ID:EFTEMj,项目名称:EFTEMj,代码行数:48,代码来源:SR_EELS_CorrectionPlugin.java

示例11: duplicate

import ij.plugin.Duplicator; //导入依赖的package包/类
/***
 * Since the object.clone for ImageJ only copies bare data (doesnt copy the
 * image properties as calibration, info, etc), one needs to use the
 * Duplicator method for this.
 * 
 * Reference:http://imagej.1557.x6.nabble.com/Copying-an-8-bit-image-
 * td3686474.html
 * 
 * @param sourceImage
 * @return ImagePlus a copy of the image
 */
protected ImagePlus duplicate(ImagePlus sourceImage) {
	return new Duplicator().run(sourceImage);
}
 
开发者ID:MarcoLotz,项目名称:HadoopLung,代码行数:15,代码来源:ImageProcessingClass.java


注:本文中的ij.plugin.Duplicator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。