Paralel Görüntü İşleme için Açık Kaynak C++ Kitaplığı
Genel N boyutlu görüntü kapsayıcılarını, gelişmiş görüntü işleme algoritmaları grubunu vb. destekleyen ücretsiz C++ API.
Video++, yazılım geliştiricilerin kendi C++ uygulamaları içinde görüntüler ve video dosyalarıyla çalışmasına olanak tanıyan, güçlü, çok iş parçacıklı ve platformlar arası bir C++ görüntü düzenleme API'sidir. Kütüphanenin kullanımı çok kolaydır ve C++11/C++14'ün yeni özelliklerinden yararlanılarak geliştirilmiştir. Video++'ın arkasındaki ana fikir, yeni C++ standardından yararlanarak bir görüntü işleme çerçevesini sıfırdan yeniden tasarlamaktır.
Video++ kütüphanesinin harika bir özelliği, naif olmayan sürümden 32 kat daha hızlı çalışan paralel görüntü işleme çekirdeğinin kolay tanımıdır. Kütüphane, jenerik N-boyutlu görüntü konteynerleri, gelişmiş bir görüntü işleme algoritmaları, renkli, daha iyi hafıza yönetimi, sınırı doldur, 3D alt görüntülerin kullanımı ve daha fazlası gibi birkaç önemli özellik içeriyordu.
Kütüphane, piksel tamponuna erişen görüntü konteynerlerine erişmek ve görüntüyü işlemek için yararlı bir özellik sağlamıştır. Ayrıca openCV'e geçicilik sağlar ve OpenCV görüntü türünden ve açık dönüşümleri destekler.
Video++'ya Başlarken
Tam bir kurulum için lütfen aşağıdaki komutu kullanın. Video++ yalnızca üstbilgidir, bu nedenle gerekli tüm özelliklere erişmek için vpp.h üstbilgisini eklemelisiniz. Ayrıca Video++ yüklemeden önce sisteminizde Eigen3 ve Boost'u edinmeniz gerekir.
Video++ komutla
git clone https://github.com/matt-42/vpp.git
cd vpp
./install.sh your_install_prefix # Install iod and vpp in a given prefix
C++ Kütüphanesi ile Paralel Görüntü İşleme
Açık kaynak Video++ kütüphanesi, yazılım geliştiricilerinin C++ komut kullanarak paralel görüntüler için çekirdekleri tanımlamasını sağlar. Büyük şey, çekirdeklerin normal olanlardan 32 kat daha hızlı koşabileceğidir. Aynı şekilde, birkaç temel üzerinde çalışan birkaç iplik çalışan tüm mevcut CPU çekirdeği üzerindeki çekirdeklerin yürütülmesini yaymaktadır. Sınırları değerle doldurma, sınır aynasını doldurma gibi özellikleri destekler, hizalama, görüntü pikseline erişme, görüntüler üzerinde filtreler uygulayın ve bu yüzden.
C++ ile Görüntü Ekleme
Açık kaynak Video++ kütüphanesi, piksel tabanlı filtre kullanarak görüntüleri eklemek için tam işlevsellik sağladı. Basit filtrelerin verimli uygulamaları hızlı bir şekilde yazmasına izin veren bir dizi genel nesneler ve rutinler sunar. Birçok görüntü işleme filtreleri, pikselleri hesaplanmış değerlere dolduran basit fonksiyonlardır, böylece farklı piksellerle ilgili hesaplamalar arasında bağımlılık yoktur.
Add 2D Image via C++
int main()
{
using namespace vpp;
image2d img1(make_box2d(100, 200), _border = 3);
image2d img2({100, 200});
assert(&img1(0,0) == &img1[0][0]);
assert(&img1(0,0) == &(*img1.begin()));
assert(img1.domain() == img2.domain());
assert(img1.nrows() == 100);
assert(img1.ncols() == 200);
{
image2d img(make_box2d(5, 5), _border = 1);
assert(&img(0,0) == img.address_of(vint2(0,0)));
assert(&img(4,0) == img.address_of(vint2(4,0)));
auto s1 = img.subimage(img.domain());
assert(&s1(0,0) == s1.address_of(vint2(0,0)));
for (auto p : img.domain())
assert(img(p) == img[p[0]][p[1]]);
for (auto p : img.domain())
assert(img(p) == s1[p[0]][p[1]]);
}
}