1. Ürün:% s
  2.   resim
  3.   Java
  4.   ImgLib2
 
  

Görüntü İşleme için Açık Kaynak Java Kitaplığı

Yeni resimler oluşturan, mevcut resimleri değiştiren, seyrek verilerle çalışan, Ücretsiz Java API kullanarak mevcut resmi çoğaltan Genel amaçlı, Çok Boyutlu Görüntü İşleme API'sı.

Açık kaynak ImgLib2 kitaplığı, yazılım geliştiricilerine Java uygulamaları içinde görüntüler oluşturma ve bunları değiştirme yeteneği verir. Kitaplık, kullanıcıların sayısal ve sayısal olmayan veri türlerini kendi uygulamaları içinde kolaylıkla kullanmalarını sağlayan arayüz odaklı bir tasarım sunar.

ImgLib2, yeni görüntüler oluşturma, mevcut görüntüleri değiştirme, Mevcut görüntüleri açma ve okuma, seyrek verilerle çalışma, mevcut görüntüleri çoğaltma, Genel görüntü verilerinin kopyalanması, Küre çizme, İnterpolasyon desteği ve çok daha fazlası.

Kütüphane çok kullanıcı dostudur ve gereksiz karmaşıklıkları önler, böylece geliştiriciler projelerini geliştirirken algoritmanın özüne konsantre olabilirler. Kitaplığın en güzel yanı, boyuttan bağımsız olması ve kullanıcıların kodlarını çok boyutlu verilere uygulanabilecek şekilde ifade etmelerine izin vermesidir. Kütüphane çalışması görsellerle sınırlı değildir, sadece RNA dizileri üzerinde çalışan örnekler de vardır.

Previous Next

ImgLib2'ye Başlarken

ImgLib2'yi kurmanın en kolay ve önerilen yolu GitHub'dır.

GitHub aracılığıyla ImgLib2'yi yükleyin

go get -u github.com/imglib/imglib2.git 

Java ile Yeni Görüntüler Oluşturma

Açık kaynak Java kitaplığı ImgLib2, yalnızca birkaç satır Java koduyla sıfırdan yeni bir görüntü oluşturma desteği içerir. ImgLib2 kitaplığını kullanarak basit görüntüler, 3B görüntüler, ImgFactory ve daha fazlası gibi farklı türde görüntüler oluşturabilirsiniz. Ayrıca, sadece birkaç satır kod ile mevcut görüntülerin görüntülerini de değiştirebilirsiniz.

Java API ile Yeni Resimler Oluştur


        public Example1c()
        {
            // create the ImgFactory based on cells (cellsize = 5x5x5...x5) that will
            // instantiate the Img
            final ImgFactory< FloatType > imgFactory = new CellImgFactory<>( new FloatType(), 5 );
            // create an 3d-Img with dimensions 20x30x40 (here cellsize is 5x5x5)Ø
            final Img< FloatType > img1 = imgFactory.create( 20, 30, 40 );
            // create another image with the same size. Note that the input provides the size for the new image as it implements the Interval interface
            final Img< FloatType > img2 = imgFactory.create( img1 );
            // display both (but they are empty)
            ImageJFunctions.show( img1 );
            ImageJFunctions.show( img2 );
        }

Java API ile Görüntü Çoğaltma

ImgLib2 kitaplığı, Java komutlarını kullanarak görüntü çoğaltma işlevi içerir. Mevcut görüntünün bir kopyasını kolayca oluşturabilirsiniz. Bu görevi gerçekleştirmek için İmleçleri kullanabilirsiniz. Ayrıca genel bir yöntem olan kopyalama yöntemini de kullanabilirsiniz ve harika olan şey, herhangi bir Tür üzerinde çalışacak olmasıdır.

Resimyi Java API


	public DuplicateImage() throws ImgIOException
	{
		// open with SCIFIO as a FloatType
		Img< FloatType > img = IO.openImgs( "DrosophilaWing.tif", new FloatType() ).get( 0 );
		// copy the image, as it is a generic method it also works with FloatType
		Img< FloatType > duplicate = copyImage( img );
		// display the copy
		ImageJFunctions.show( duplicate );
	}
        // Generic, type-agnostic method to create an identical copy of an Img
	public < T extends Type< T > > Img< T > copyImage( final Img< T > input )
	{
		// create a new Image with the same properties
		Img< T > output = input.factory().create( input );
		// create a cursor for both images
		Cursor< T > cursorInput = input.cursor();
		Cursor< T > cursorOutput = output.cursor();
		// iterate over the input
		while ( cursorInput.hasNext())
		{
			// move both cursors forward by one pixel
			cursorInput.fwd();
			cursorOutput.fwd();
			// set the value of this pixel of the output image to the same as the input,
			// every Type supports T.set( T type )
			cursorOutput.get().set( cursorInput.get() );
		}
		// return the copy
		return output;
	}

Görüntüleri Kısmen Java ile Görüntüle

Ücretsiz ImgLib2 kitaplığı, yazılım geliştiricilerin birkaç satır Java kodu aracılığıyla uygulamalarının içindeki görüntünün yalnızca bazı bölümlerini görüntülemelerini sağlar. Görünümler çok güçlüdür ve bunları görüntülerin seçilen bölümlerini görüntülemek, döndürülmüş bir görünüm görüntülemek ve diğer birkaç şey için kullanabilirsiniz. Görünümler Rastgele Erişilebilir, Aralıklı olabilir ve bu nedenle Yinelenebilir hale getirilebilir.

Seyrek Veri Yönetimi

Ücretsiz ImgLib2 kitaplığı, yazılım geliştiricilerine Java kodunu kullanarak seyrek verilerle çalışma yeteneği verir. Kütüphane, seyrek verileri görüntülemek için iki enterpolasyon şeması sağlamıştır. Kullanıcılar, örneklenen konuma en yakın örneğin değerini veya k en yakın komşuların enterpolasyonlu, uzaklık ağırlıklı değerini döndürerek uzaydaki her konum için bir değer hesaplayabilir.

Java Apps içinde Sparse Data ile çalışmak


        // Working with sparse data
	public SparseExample()
	{
		// the interval in which to create random points
		FinalInterval interval = new FinalInterval( new long[] { 375, 200 } );
		// create an IterableRealInterval
		IterableRealInterval< FloatType > realInterval = createRandomPoints( interval, 250 );
		// using nearest neighbor search we will be able to return a value an any position in space
		NearestNeighborSearch< FloatType > search =
			new NearestNeighborSearchOnKDTree<>(
				new KDTree<>( realInterval ) );
		// make it into RealRandomAccessible using nearest neighbor search
		RealRandomAccessible< FloatType > realRandomAccessible =
			Views.interpolate( search, new NearestNeighborSearchInterpolatorFactory< FloatType >() );
		// convert it into a RandomAccessible which can be displayed
		RandomAccessible< FloatType > randomAccessible = Views.raster( realRandomAccessible );
		// set the initial interval as area to view
		RandomAccessibleInterval< FloatType > view = Views.interval( randomAccessible, interval );
		// display the view
		ImageJFunctions.show( view );
		// compute a gauss on it
		Img< FloatType > convolved = new ArrayImgFactory<>( new FloatType() ).create( interval );
		Gauss.inFloat( new double[] { 3, 3 }, view, interval, convolved,
			new Point( view.numDimensions() ), convolved.factory() );
		// display the view
		ImageJFunctions.show( convolved );
	}
 Türkçe