C++ için Açık Kaynak Daha Hızlı Görüntü İşleme Kitaplığı
Popüler Görüntü Formatlarını Oluşturun, Yönetin, Çizin, Bölün, Kopyalayın ve Dönüştürün; Filtreler uygulayın, iki resmi bölün, Ücretsiz C++ Kitaplığı aracılığıyla bir resmi ızgaralayın.
libvips, çok düşük bellek kullanan ve çok hızlı işlemler gerçekleştiren açık kaynaklı gelişmiş bir görüntü işleme kitaplığıdır. Kütüphane, büyük görüntüleri kolayca işleyebilir ve JPEG, TIFF, PNG, WebP, HEIC, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF gibi uygun bir dizi görüntü dosyası formatını destekler. , Analiz, NIFTI, DeepZoom ve OpenSlide. Görüntüleri ImageMagick veya GraphicsMagick aracılığıyla kolayca yükleyerek DICOM gibi formatlarla çalışmasına olanak tanır.
libris ilkeli mantıklıdır ve run-time code nesli gibi bazı kullanım teknikleri görüntülerin hızına yardımcı olur. Diğer görüntü işleme kütüphanelerine kıyasla, kütüphanenin biraz AM'ye ihtiyacı olduğunu ve özellikle birden fazla Caps ile makinelerde daha hızlı çalıştığını belirtti. Bu özellikle akıllı mimarlık nedeniyle, görüntü akışını otomatik olarak bölen kullanımları içindir.
Kütüphane, karmaşık 128-bit için basit 8-bit'ten büyük miktarda sayısal tür için destek sağlar. Görüntü işleme kütüphanelerinin çoğu iplik işlemleri kullanıyor, ancak diğer yandan da ipleri görüntüye koydu. Sistemde ve üzerinde çalışmak için tüm görüntü boru hattının bir kopyasını tayin edin. Bu yatay iplik tarzı, işlemci önbelleklerini daha iyi kullanır ve kilitlemeyi azaltır.
Kütüphane kütüphane diğer birçok kütüphaneden daha iyi performans sunan bir görüntü işleme kütüphanesidir. Kütüphane, resim çizimleri gibi birkaç önemli görüntü işleme özelliği için destek sağladı, iki görüntüyü bölmek, bir görüntü üzerinde bir çember çizmek, bir görüntüyü başka bir görüntüye boyamak, bir görüntü üzerinde bir çizgi çizin, bir görüntü çizin, iki resim ekleyin, bir russian imajı ekleyin, bir görüntüden bir noktayı okuyun, bir görüntüyü dosyaya ve daha fazlasını izleyin.
libvips'e Başlarken
Aşağıdaki komutu kullanarak en son kaynakları klonlayın.
libris'i komuta ederek
git clone git://github.com/libvips/libvips.git
Git'ten inşa etmek daha fazla paket gerektiriyor, en azından gtk-doc ve gobject-introspection'a ihtiyacınız olacak.
libvips paketlerini git komutuyla kurun
./autogen.sh
make
sudo make install
C++ API ile Daha Hızlı Görüntü Oluşturma
Kütüphane, tüm önde gelen platformlarda daha hızlı görüntü oluşturma ve manipülasyon için işlevsellik sağladı. ImageMagick ve Gt kütüphaneleri gibi önde gelen görüntü işleme kütüphanelerinden bazıları çok güçlüdür ve görüntülerle çalışmak için gelişmiş özellikler sunar, ancak işleme görüntüleri için büyük miktarda bellek gerekir. Öte yandan, libris neredeyse ImageMagick kadar aktif yapabilir, ancak çok daha hızlı ve karşılaştırmalı olarak küçük bir hafıza ayak izi ile
Resmi Desteklenen Diğer Biçimlere Kaydet
Açık kaynak libvips kitaplığı, görüntüleri çeşitli biçimlerde yükleyen ve kaydeden bir dizi işlem sağlamıştır. Kitaplık, görüntüleri TIFF, JPEG, PNG, Analyze, PPM, OpenEXR, CSV, Matlab, Radiance, RAW, FITS, WebP, SVG, PDF, GIF ve VIPS gibi popüler formatlarda kaydetmek için yerleşik destek içerir. VipsForeign, görüntüleri çeşitli biçimlerde yüklemek ve kaydetmek için kullanılabilir.
C++ API aracılığıyla bellek için resimleri okuyun ve yazın
int
main( int argc, char **argv )
{
gchar *buf;
gsize len;
int i;
if( VIPS_INIT( argv[0] ) )
vips_error_exit( NULL );
if( argc != 2 )
vips_error_exit( "usage: %s FILENAME", argv[0] );
if( !g_file_get_contents( argv[1], &buf, &len, NULL ) )
vips_error_exit( NULL );
for( i = 0; i < 10; i++ ) {
VipsImage *image;
void *new_buf;
size_t new_len;
printf( "loop %d ...\n", i );
if( !(image = vips_image_new_from_buffer( buf, len, "",
"access", VIPS_ACCESS_SEQUENTIAL,
NULL )) )
vips_error_exit( NULL );
if( vips_image_write_to_buffer( image,
".jpg", &new_buf, &new_len,
"Q", 95,
NULL ) )
vips_error_exit( NULL );
g_object_unref( image );
g_free( new_buf );
}
g_free( buf );
vips_shutdown();
return( 0 );
}
Daha Hızlı Görüntü Yeniden Boyutlandırma
Açık kaynaklı libvips kitaplığı, yazılım geliştiricilere görüntüleri anında kendi uygulamaları içinde yeniden boyutlandırma gücü verir. İlk olarak, bir görüntü adı ve tam bir adres sağlayarak görüntüyü görüntü deposundan yüklemeniz gerekir. Bundan sonra, ihtiyaçlarınıza göre belirtilen genişlik ve yüksekliğe yeniden boyutlandırabilirsiniz. Bundan sonra yeni boyutuyla istediğiniz yere kaydedebilirsiniz.
C++ API aracılığıyla bellek için resimleri okuyun ve yazın
int
vips_resize( VipsImage *in, VipsImage **out,
double scale, ... )
{
va_list ap;
int result;
va_start( ap, scale );
result = vips_call_split( "resize", ap, in, out, scale );
va_end( ap );
return( result );
}
C++ API ile Görüntü Filtreleme
Resim filtreleme, dünyadaki çeşitli görüntü işleme ve bilgisayar vizyonu uygulamalarında kullanılan değerli bir özelliktir. Kütüphane, Resim filtreleme için C++ komut aracılığıyla tam destek sağlar. Düzgünleşme gibi özellikler ve kenar geliştirme, filtreleme ile uygulanan Image işleme operasyonlarının bazı örnekleridir. Kütüphane ayrıca soldaki fark gibi NG filtreleri de içeriyordu, ortalama bir sol ve yukarı, uyarlanabilir, en iyi komşu tahminciyi otomatik olarak seçin ve filtreleme. Ayrıca libMagick ve OpenSlide ile yükleyebilecek ithalat filtreleri de içerir.