1. Tuotteet
  2.   Kuva
  3.   C++
  4.   Video++
 
  

Avoimen lähdekoodin C++-kirjasto rinnakkaiskuvankäsittelyä varten 

Ilmainen C++ API, joka tukee yleisiä N-ulotteisia kuvasäiliöitä, parannettuja kuvankäsittelyalgoritmeja ja niin edelleen.

Video++ on tehokas monisäikeinen ja monialustainen C++-kuvankäsittelysovellusliittymä, jonka avulla ohjelmistokehittäjät voivat käsitellä kuvia ja videotiedostoja omissa C++ -sovelluksissaan. Kirjasto on erittäin helppo käsitellä, ja se on kehitetty hyödyntäen C++11/C++14:n uusia ominaisuuksia. Video++:n pääideana on suunnitella uudelleen alusta alkaen kuvankäsittelykehys hyödyntäen uutta C++-standardia.

Yksi Video++-kirjaston hieno ominaisuus on helppo määritellä rinnakkaiset kuvankäsittelyytimet, jotka toimivat jopa 32 kertaa nopeammin kuin naiivi ei-optimoitu versio. Kirjastossa on useita tärkeitä ominaisuuksia, kuten yleiset N-ulotteiset kuvasäiliöt, parannettu joukko kuvankäsittelyalgoritmeja, täyttövärit, parempi muistinhallinta, täyttöreuna, 3D-alikuvien käyttö ja paljon muuta.

Kirjasto on tarjonnut hyödyllisen ominaisuuden käsiksi kuvasäiliöihin, jotka tarjoavat pääsyn pikselipuskuriin ja toiseen kuvan käsittelyssä hyödylliseen tietoon. Se tarjoaa myös yhteentoimivuuden openCV:n kanssa ja tukee nimenomaisia muunnoksia OpenCV-kuvatyypeihin ja niistä.

Previous Next

Video++:n käytön aloittaminen

Käytä seuraavaa komentoa täydelliseen asennukseen. Video++ on vain otsikko, joten sinun on sisällytettävä vpp.h-otsikko käyttääksesi kaikkia tarvittavia ominaisuuksia. Sinun on myös hankittava Eigen3 ja Boost järjestelmääsi ennen Video++:n asentamista.

Asenna Video++ git-komennolla

 git clone https://github.com/matt-42/vpp.git
cd vpp
./install.sh your_install_prefix # Install iod and vpp in a given prefix

Rinnakkaiskuvankäsittely C++-kirjaston kautta

Avoimen lähdekoodin Video++-kirjaston avulla ohjelmistokehittäjät voivat määritellä ytimiä rinnakkaiskuvien käsittelyä varten C++-komennoilla. Hienoa on, että ytimet voivat toimia 32 kertaa nopeammin kuin tavalliset. Se hajauttaa ytimien suorittamisen tasaisesti kaikkiin käytettävissä oleviin CPU-ytimiin, joissa on useita useissa ytimissä pyöriviä säikeitä. Se tukee ominaisuuksia, kuten reunusten täyttäminen arvolla, reunapeilin täyttäminen, kohdistuksen asettaminen, kuvan pikselien käyttö, suodattimien käyttäminen kuviin ja niin edelleen.

Kuvan lisäys C++:n kautta

Avoimen lähdekoodin Video++-kirjasto on tarjonnut täydelliset toiminnot kuvien lisäämiseen pikselikohtaisella suodattimella. Se tarjoaa joukon yleisiä objekteja ja rutiineja, jotka mahdollistavat yksinkertaisten suodattimien tehokkaiden toteutusten nopean kirjoittamisen. Monet kuvankäsittelysuodattimet ovat yksinkertaisia toimintoja, jotka täyttävät pikseleitä lasketuilla arvoilla, joten niissä ei ole riippuvuuksia eri pikseleitä koskevien laskelmien välillä.

Lisää 2D-kuva C++:n kautta

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]]);
  }
}
 Suomen