Open Source C++-bibliotek for parallell bildebehandling
Gratis C++ API som støtter generiske N-dimensjonale bildebeholdere, forbedret sett med bildebehandlingsalgoritmer og så videre.
Video++ er en kraftig flertråds og tverrplattform C++ bilderedigerings-API som gjør det mulig for programvareutviklere å jobbe med bilder og videofiler i sine egne C++-applikasjoner. Biblioteket er veldig enkelt å håndtere og er utviklet ved å dra nytte av de nye funksjonene til C++11/C++14. Hovedideen bak Video++ er å redesigne et bildebehandlingsrammeverk fra bunnen av ved å utnytte den nye C++-standarden.
En flott funksjon ved Video++-biblioteket er den enkle definisjonen av parallelle bildebehandlingskjerner som kjører opptil 32 ganger raskere enn den naive ikke-optimaliserte versjonen. Biblioteket har inkludert flere viktige funksjoner som generiske N-dimensjonale bildebeholdere, et forbedret sett med bildebehandlingsalgoritmer, fyllfarge, bedre minnehåndtering, fyllgrense, bruk av 3D-underbilder og mange flere.
Biblioteket har gitt en nyttig funksjon for å få tilgang til bildebeholderne som gir tilgang til pikselbufferen og til en annen informasjon som er nyttig for å behandle bildet. Det gir også interoperabilitet til openCV og støtter eksplisitte konverteringer til og fra OpenCV-bildetyper.
Komme i gang med Video++
Vennligst bruk følgende kommando for en fullstendig installasjon. Video++ er kun header, så for å få tilgang til alle nødvendige funksjoner, må du inkludere vpp.h header. Du må også få Eigen3 og Boost på systemet ditt før du installerer Video++.
Installer Video++ via git-kommando
git clone https://github.com/matt-42/vpp.git
cd vpp
./install.sh your_install_prefix # Install iod and vpp in a given prefix
Parallell bildebehandling via C++ bibliotek
Open source Video++-biblioteket lar programvareutviklere definere kjerner for behandling av parallelle bilder ved hjelp av C++-kommandoer. Det fine er at kjernene kan kjøre 32 ganger raskere enn vanlige. Det spredte kjøringen av kjerner like mye over alle tilgjengelige CPU-kjerner som kjører flere tråder som kjører på flere kjerner. Den støtter funksjoner som å fylle grenser med verdi, fylle kantspeil, stille inn justeringen, få tilgang til bildepiksler, bruke filtre på bilder og så videre.
Bildetillegg via C++
Open source Video++-biblioteket har gitt komplett funksjonalitet for å legge til bilder ved hjelp av pikselvis filter. Den tilbyr et sett med generiske objekter og rutiner som gjør det mulig å skrive effektive implementeringer av enkle filtre raskt. Mange bildebehandlingsfiltre er enkle funksjoner som fyller piksler med beregnede verdier, og har dermed ingen avhengigheter mellom beregninger angående forskjellige piksler.
Legg til 2D-bilde 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]]);
}
}