本文整理汇总了Java中net.imglib2.img.ImagePlusAdapter类的典型用法代码示例。如果您正苦于以下问题:Java ImagePlusAdapter类的具体用法?Java ImagePlusAdapter怎么用?Java ImagePlusAdapter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ImagePlusAdapter类属于net.imglib2.img包,在下文中一共展示了ImagePlusAdapter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: main
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
public static < T extends RealType< T > & NativeType< T >> void main( final String[] args )
{
ImageJ.main( args );
final File file = new File( "DrosophilaWing.tif" );
final ImagePlus imp = IJ.openImage( file.getAbsolutePath() );
final Img< T > img = ImagePlusAdapter.wrap( imp );
final long start = System.currentTimeMillis();
final Shape shape = new DiamondTipsShape( 10 );
final Img< T > target = Dilation.dilate( img, shape, 1 );
final long end = System.currentTimeMillis();
System.out.println( "Processing done in " + ( end - start ) + " ms." );
ImageJFunctions.show( img );
ImageJFunctions.show( target );
}
示例2: main
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
public static void main( String[] args )
{
String srcImgFn = "/groups/jain/home/bogovicj/learning/advanced-imglib2/images/bee-1.tif";
Img<FloatType> img = ImagePlusAdapter.convertFloat( IJ.openImage(srcImgFn) );
int[] sz = new int[]{ (int)img.dimension(0), (int)img.dimension(1) };
Img<FloatType> img2 = ImgOps.createGradientImgX( sz, new FloatType());
//imageStats( img );
//imageTextureStats( img );
// function that normalizes to range [0,1]
// Normalize<FloatType> nrmFun = new Normalize<FloatType>(
// 0, 255, 0, 1);
// evalFun( img, nrmFun );
// add the images
RealAdd<FloatType,FloatType,FloatType> sumfun = new RealAdd<FloatType,FloatType,FloatType>();
evalFun( img, img2, sumfun );
System.out.println("finished");
System.exit(0);
}
示例3: tryMatchRegistration
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
public static void tryMatchRegistration()
{
String imgfn = "/data-ssd1/john/projects/crackSegmentation/crackVolDown_cp.tif";
String maskfn = "/data-ssd1/john/projects/crackSegmentation/Labels_ds_interp_cp_smooth.tif";
int[] patchSize = new int[] { 19, 19, 7 };
Img<FloatType> img = ImagePlusAdapter.convertFloat( IJ.openImage(imgfn) );
Img<FloatType> mask = ImagePlusAdapter.convertFloat( IJ.openImage(maskfn) );
CrackCorrection<FloatType> cc = new CrackCorrection<FloatType>(
img, mask, patchSize);
cc.computeEdgels();
int i = cc.edgelIdxNearest(new double[]{67,290,13});
int j = cc.edgelIdxNearest(new double[]{69,311,13});
System.out.println(" i: " + i + " " + cc.getEdgels().get(i));
System.out.println(" j: " + j + " " + cc.getEdgels().get(j));
cc.debugOutDir = "/data-ssd1/john/projects/crackPatching/edgelRegPatch";
// cc.registerEdgelsOrient( cc.getEdgels().get(i), cc.getEdgels().get(j), i);
}
示例4: createImgLib2
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
public static FloatImagePlus< net.imglib2.type.numeric.real.FloatType > createImgLib2( final List< float[] > img, final int w, final int h )
{
final ImagePlus imp;
if ( img.size() > 1 )
{
final ImageStack stack = new ImageStack( w, h );
for ( int z = 0; z < img.size(); ++z )
stack.addSlice( new FloatProcessor( w, h, img.get( z ) ) );
imp = new ImagePlus( "ImgLib2 FloatImagePlus (3d)", stack );
}
else
{
imp = new ImagePlus( "ImgLib2 FloatImagePlus (2d)", new FloatProcessor( w, h, img.get( 0 ) ) );
}
return ImagePlusAdapter.wrapFloat( imp );
}
示例5: produceNoiseImage
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
/**
* Creates a noisy image that is created by repeatedly adding points
* with random intensity to the canvas. That way it tries to mimic the
* way a microscope produces images.
*
* @param <T> The wanted output type.
* @param width The image width.
* @param height The image height.
* @param dotSize The size of the dots.
* @param numDots The number of dots.
* @param smoothingSigma The two dimensional sigma for smoothing.
* @return The noise image.
*/
public static <T extends RealType<T> & NativeType<T>> RandomAccessibleInterval<T> produceNoiseImage(int width,
int height, float dotSize, int numDots) {
/* For now (probably until ImageJ2 is out) we use an
* ImageJ image to draw circles.
*/
int options = NewImage.FILL_BLACK + NewImage.CHECK_AVAILABLE_MEMORY;
ImagePlus img = NewImage.createByteImage("Noise", width, height, 1, options);
ImageProcessor imp = img.getProcessor();
float dotRadius = dotSize * 0.5f;
int dotIntSize = (int) dotSize;
for (int i=0; i < numDots; i++) {
int x = (int) (Math.random() * width - dotRadius);
int y = (int) (Math.random() * height - dotRadius);
imp.setColor(Color.WHITE);
imp.fillOval(x, y, dotIntSize, dotIntSize);
}
// we changed the data, so update it
img.updateImage();
// create the new image
RandomAccessibleInterval<T> noiseImage = ImagePlusAdapter.wrap(img);
return noiseImage;
}
示例6: createRectengularMaskImage
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
/**
* Creates a mask image with a black background and a white
* rectangular foreground.
*
* @param width The width of the result image.
* @param height The height of the result image.
* @param offset The offset of the rectangular mask.
* @param size The size of the rectangular mask.
* @return A black image with a white rectangle on it.
*/
public static <T extends RealType<T> & NativeType<T>> RandomAccessibleInterval<T> createRectengularMaskImage(
long width, long height, long[] offset, long[] size) {
/* For now (probably until ImageJ2 is out) we use an
* ImageJ image to draw lines.
*/
int options = NewImage.FILL_BLACK + NewImage.CHECK_AVAILABLE_MEMORY;
ImagePlus img = NewImage.createByteImage("Noise", (int)width, (int)height, 1, options);
ImageProcessor imp = img.getProcessor();
imp.setColor(Color.WHITE);
Roi rect = new Roi(offset[0], offset[1], size[0], size[1]);
imp.fill(rect);
// we changed the data, so update it
img.updateImage();
return ImagePlusAdapter.wrap(img);
}
示例7: createImagePlusImage
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
private ByteImagePlus<UnsignedByteType> createImagePlusImage(final ImageProcessor ip) {
if ( dimensions.length == 1 )
return null;
if ( ip != null )
{
final ImagePlus imp = new ImagePlus("image", ip);
return ImagePlusAdapter.wrapByte(imp);
}
if ( dimensions[ 0 ] * dimensions[ 1 ] > Integer.MAX_VALUE )
return null;
if ( numDimensions > 5 )
return null;
final ByteImagePlus<UnsignedByteType> imagePlusContainer = ( ByteImagePlus<UnsignedByteType> ) createImage( dimensions, new ImagePlusImgFactory< UnsignedByteType >() );
return imagePlusContainer;
}
示例8: main
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
public static void main( final String[] args )
{
final int delta = 15;
final long minSize = 10;
final long maxSize = 100*100;
final double maxVar = 0.8;
final double minDiversity = 0;
final Img< UnsignedByteType > img;
try
{
new ImageJ();
IJ.run("Lena (68K)");
IJ.run("8-bit");
img = ImagePlusAdapter.wrapByte( IJ.getImage() );
}
catch ( final Exception e )
{
e.printStackTrace();
return;
}
final ImagePlus impImg = IJ.getImage();
final ImageStack stack = new ImageStack( (int) img.dimension( 0 ), (int) img.dimension( 1 ) );
final MserTree< UnsignedByteType > treeDarkToBright = MserTree.buildMserTree( img, new UnsignedByteType( delta ), minSize, maxSize, maxVar, minDiversity, true );
final MserTree< UnsignedByteType > treeBrightToDark = MserTree.buildMserTree( img, new UnsignedByteType( delta ), minSize, maxSize, maxVar, minDiversity, false );
final MserTreeExample< UnsignedByteType > vis = new MserTreeExample< UnsignedByteType >( impImg, stack );
vis.visualise( treeDarkToBright, Color.CYAN );
vis.visualise( treeBrightToDark, Color.MAGENTA );
final ImagePlus imp = new ImagePlus("components", stack);
imp.show();
}
示例9: main
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
public static < T extends RealType< T > & NativeType< T >> void main( final String[] args )
{
ImageJ.main( args );
final File file = new File( "DrosophilaWing.tif" );
// final File file = new File(
// "/Users/JeanYves/Desktop/Data/brightblobs.tif" );
final ImagePlus imp = IJ.openImage( file.getAbsolutePath() );
final Img< T > img = ImagePlusAdapter.wrap( imp );
final long start = System.currentTimeMillis();
final Shape shape = new PairOfPointsShape( new long[] { -10, 20 } );
final Img< T > target = Dilation.dilate( img, shape, 1 );
final long end = System.currentTimeMillis();
System.out.println( "Processing done in " + ( end - start ) + " ms." );
ImageJFunctions.show( img );
ImageJFunctions.show( target );
final Shape shape2 = new PairOfPointsShape( new long[] { 10, -20 } );
final Img< T > target2 = Dilation.dilate( img, shape2, 1 );
ImageJFunctions.show( target2 );
final Shape shape3 = new PairOfPointsShape( new long[] { 10, 20 } );
final Img< T > target3 = Dilation.dilate( img, shape3, 1 );
ImageJFunctions.show( target3 );
}
示例10: testClusteringReal
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
public static void testClusteringReal(){
// String destDir = "/Users/bogovicj/Documents/projects/crackStitching/edgeClustering";
String destDir = "/groups/saalfeld/home/bogovicj/projects/crackStitching/edgeClustering/closeup";
// load a volume
int downSampleFactor = 4;
String imgfn = "/data-ssd1/john/projects/crackSegmentation/groundTruth/closeup/img_ds"+downSampleFactor+".tif";
String maskfn = "/data-ssd1/john/projects/crackSegmentation/groundTruth/closeup/labels_interp_smooth_ds"+downSampleFactor+".tif";
Img<FloatType> img = ImagePlusAdapter.convertFloat( IJ.openImage(imgfn) );
Img<FloatType> mask = ImagePlusAdapter.convertFloat( IJ.openImage(maskfn) );
// cluster edgels
int[] patchSize = new int[]{ 9,9 };
CrackCorrection<FloatType> cc = new CrackCorrection<FloatType>( img, mask, patchSize);
cc.computeEdgels();
System.out.println(" num edgels - " + cc.getEdgels().size());
EdgelMatching<FloatType> em = new EdgelMatching<FloatType>();
em.setSearchType( EdgelMatching.SearchTypes.COUNT );
em.setEdgelSearchCount(27);
em.setEdgels( cc.getEdgels() );
// EdgelClustering<FloatType> ec = new EdgelClustering<FloatType>( em );
EdgelClusteringRansac<FloatType> ec = new EdgelClusteringRansac<FloatType>( em );
ec.cluster();
Img<FloatType> clusterImg = img.factory().create( img, img.firstElement() );
ec.makeEdgelClusterImgMem(clusterImg);
ImgOps.writeFloat( clusterImg, destDir + File.separator + "edgelClusterImg.tif");
}
示例11: test2
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
public static void test2(){
String imfn = "/groups/saalfeld/home/bogovicj/tests/testdat/boats.tif";
Img<FloatType> img = ImagePlusAdapter.convertFloat( IJ.openImage(imfn) );
double[] sigmas = new double[]{ 0, 0 };
double[] dsFactors = new double[]{ 1, 1 };
Img<FloatType> out = Resampling.resampleGaussian(
img,
img.factory(),
dsFactors, sigmas, sigmas);
ImgOps.writeFloat( out, "/groups/saalfeld/home/bogovicj/tests/testdat/boats_myds_1-1.tif");
}
示例12: run
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
@Override
public void run(String arg) {
ImagePlus imp1 = IJ.openImage("/Users/dan/Documents/Dresden/ipf/colocPluginDesign/red.tif");
img1 = ImagePlusAdapter.wrap(imp1);
ImagePlus imp2 = IJ.openImage("/Users/dan/Documents/Dresden/ipf/colocPluginDesign/green.tif");
img2 = ImagePlusAdapter.wrap(imp2);
double pearson = calculatePearson();
Img<T> ranImg = generateRandomImageStack(img1, new int[] {2,2,1});
}
示例13: createMasksAndRois
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
/**
* Creates appropriate data structures from the ROI information
* passed. If an irregular ROI is found, it will be put into a
* frame of its bounding box size and put into an {@code Image<T>}.
*
* In the end the members ROIs, masks and maskBBs will be
* filled if ROIs or masks were found. They will be null
* otherwise.
*/
protected void createMasksAndRois(final Roi[] rois, final int width,
final int height)
{
// create empty list
masks.clear();
for (final Roi r : rois) {
final MaskInfo mi = new MaskInfo();
// add it to the list of masks/ROIs
masks.add(mi);
// get the ROIs/masks bounding box
final Rectangle rect = r.getBounds();
mi.roi = new BoundingBox(new long[] { rect.x, rect.y }, new long[] {
rect.width, rect.height });
final ImageProcessor ipMask = r.getMask();
// check if we got a regular ROI and return if so
if (ipMask == null) {
continue;
}
// create a mask processor of the same size as a slice
final ImageProcessor ipSlice = ipMask.createProcessor(width, height);
// fill the new slice with black
ipSlice.setValue(0.0);
ipSlice.fill();
// position the mask on the new mask processor
ipSlice.copyBits(ipMask, (int) mi.roi.offset[0], (int) mi.roi.offset[1],
Blitter.COPY);
// create an Image<T> out of it
final ImagePlus maskImp = new ImagePlus("Mask", ipSlice);
// and remember it and the masks bounding box
mi.mask = ImagePlusAdapter.<T> wrap(maskImp);
}
}
示例14: produceSticksNoiseImage
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
/**
* This method creates a noise image that is made of many little
* sticks oriented in a random direction. How many of them and
* what the length of them are can be specified.
*
* @return a new noise image that is not smoothed
*/
public static <T extends RealType<T> & NativeType<T>> RandomAccessibleInterval<T> produceSticksNoiseImage(int width,
int height, int numSticks, int lineWidth, double maxLength) {
/* For now (probably until ImageJ2 is out) we use an
* ImageJ image to draw lines.
*/
int options = NewImage.FILL_BLACK + NewImage.CHECK_AVAILABLE_MEMORY;
ImagePlus img = NewImage.createByteImage("Noise", width, height, 1, options);
ImageProcessor imp = img.getProcessor();
imp.setColor(Color.WHITE);
imp.setLineWidth(lineWidth);
for (int i=0; i < numSticks; i++) {
// find random starting point
int x = (int) (Math.random() * width);
int y = (int) (Math.random() * height);
// create random stick length and direction
double length = Math.random() * maxLength;
double angle = Math.random() * 2 * Math.PI;
// calculate random point on circle, for the direction
int destX = x + (int) (length * Math.cos(angle));
int destY = y + (int) (length * Math.sin(angle));
// now draw the line
imp.drawLine(x, y, destX, destY);
}
// we changed the data, so update it
img.updateImage();
return ImagePlusAdapter.wrap(img);
}
示例15: wrap
import net.imglib2.img.ImagePlusAdapter; //导入依赖的package包/类
/** Wrap an ImageJ's {@link ImagePlus} as an Imglib {@link Img} of the appropriate type.
* The data is not copied, but merely accessed with a PlanarArrayContainer.
* @see ImagePlusAdapter */
public static<T extends RealType<T> & NativeType<T>> Img<T> wrap(final ImagePlus imp) {
return ImagePlusAdapter.<T>wrap(imp);
}