Az ábrák rövid ismertetése CiMG könyvtár
Jó napot!
Mindeközben nagyban felkeltette képfeldolgozás (a tömörítési algoritmusok, szűrők, stb.) Sajnos kiderült, hogy a munka szinte nem jár semmilyen képfeldolgozó vagy programozás általában. Mindazonáltal érdeklődés kedvenc üzleti nem csökkent, és ezért szeretnék bemutatni, hogy a nemrég megnyitott maguknak CImg könyvtárban.
szerkezete a könyvtár
A könyvtár áll egy header file CImg.h. amely tartalmazza az összes osztályok és függvények CImg. Ez a tulajdonsága a könyvtár, milyen előnyökkel rendelkezik:
- nem kell előre összeállítja a könyvtár, mint CImg-kód lefordítja (bocsánat a tautológia :-) összeállítása során a fő program, amely magában foglalja a CImg.h;
- nem összetett függőségek: csak kapcsolja CImg.h a projektben;
- összeállítása zajlik „on the fly”: egy futtatható fájl tartalmazza csak a funkcionalitás, hogy használják a programot. Ez lehetővé teszi, hogy nagyon tömör alkalmazásokat;
- Tag osztályok és függvények vannak beágyazva (Beágyazott), ami magasabb termelékenységet a program végrehajtása során;
CImg könyvtár szerkezete a következő:
- Minden osztály és funkciói megegyeznek a könyvtárban helyet cimg_library név, amely magában mindazokat a funkciókat a könyvtár és a konfliktusok elkerülése érdekében, hogy megtörténhet, ha hozzá más fejléc fájlokat a projektben. Általában csak akkor használja a névtér, mint a standard:
#include "CImg.h"
using namespace cimg_library; - Névtér cimg_library :: CiMG meghatároz egy alacsony szintű funkciókat és változókat használják a könyvtárat;
- Class cimg_library :: CImg - alap osztály könyvtár, amelynek példányai képviselik az egység (image) a legfeljebb 4-dimenziós (egydimenziós skalár 3-dimenziós készlet pixel), pixel sablonos típusok;
- Class cimg_library :: CImgList bemutatja listák cimg_library :: CImg képeket. Ezt fel lehet használni, például tárolására képek sorozata (keretek.);
Class cimg_library :: CImgDisplay jeleníti meg a képeket, vagy képek sorozatának grafikus környezetben. Nyugodtan mondhatjuk, hogy ez az osztály kód erősen függ a rendszer, de valójában ez nem egy programozó ellátást, mert környezeti változók beállítása automatikusan CImg-könyvtár;
Class cimg_library :: CImgException (és alosztályok) könyvtári kezelésére használt kivételek, amikor hiba történik. Kivételek keresztül dolgozzák try catch (CImgException). Alosztályok pontosan meg tudja határozni a hiba típusát;Ezek ismerete négy osztály van ahhoz, hogy teljesen élvezni a funkcionalitás CImg-könyvtár.
Helló, világ!
Na jó, azt mondták, elég sokat. Tekintsük a legjobb példája annak, hogy az elemi írt program segítségével CImg.#include "CImg.h"
using namespace cimg_library;int main # 40; # 41; CImg img # 40; # 41 640,400,1,3 ;;
img.fill # 40; 0 # 41 ;;
unsigned char lila # 91; # 93; = <255,0,255>;
img.draw_text # 40; 100100, "Hello World", lila # 41 ;;
img.display # 40; "Az első CImg kód" # 41 ;;
vissza 0;
>
Nézzük meg részletesebben az egyes sort:CImg tartalmazza a header file könyvtár
using namespace cimg_library;
Állapítsa meg a fő funkciója a program
Készítsen másolatot a kép - img. írja pixel unsigned char. mérete 640 * 400 * 1 pixel (ebben az esetben az egyik azt mondja, hogy a kép lapos, nem háromdimenziós). Minden képpont 3 csatorna - vörös, zöld és kék. Ezt támasztja alá az utolsó paraméter kivitelező.
A festék a kép fekete ( „0” fekete)
Hogy egy változót lila: ez a szín
Mi származik (100100) fénykép a szöveg «Hello World» bíbor szín
Megmutatjuk a képet a grafikus ablakban a cím «Első CImg kód»img.display # 40; "Az első CImg kód" # 41 ;;
Mint látható, CImg könyvtár könnyen használható, intuitív módszer neve. Míg a fenti kód is írható tömörebben:#include "CImg.h"
using namespace cimg_library;int main # 40; # 41; const unsigned char lila # 91; # 93; = <255,0,255>;
CImg # 40; 640,400,1,3,0 # 41; .draw_text # 40; 100100, "Hello World", lila # 41; .A kijelzés akkor látható # 40; "Az első CImg kód" # 41 ;;
vissza 0;
>Remélhetőleg a jövőben, elemezzük néhány további példa, már bonyolultabb!
Ui
A projekt honlapja: cimg.sourceforge.net
Köszönjük a figyelmet!
- A Linux, lefordítva:
g ++ -o szia hello.cpp -O2 -L / usr / X11R6 / lib -lm -lpthread -lX11 (tehet anélkül -O2) - Összeállította sokáig (Linux Gentoo, PentiumV® Dual-Core CPU T4500 @ 2.30GHz):
$ Idő g ++ -o szia hello.cpp -O2 -L / usr / X11R6 / lib -lm -lpthread -lX11
igazi 0m28.397s
felhasználói 0m27.991s
sys 0m0.265s
28 másodperc (!) A Hello, World! ha túl? Bár nem „-O2” háromszor gyorsabb. - bináris mérete 742K, ami általában összehasonlíthatók idején válogatás!

SCSS: egy pár hasznos technikák
A CSS - preprocessors egyre népszerűbbek a web - fejlesztők. Miért? Mert lehetővé teszi, hogy: Időt takaríthat meg, alkalmazza a DRY elvet a CSS, hogy a kód olvashatóbbá Jelenleg a legnépszerűbb preprocessors ezt a cikket. Van-e jobb - a vitás pont, de mentem KEVESEBB SCSS legalább azért, mert van.
Két óriás ugyanabban a programban - Nvidia CUDA és MPI
Üdvözöljük habrovchane, ebben a cikkben szeretnék beszélni együttműködés a két technológia között MPI (mpich2) és az NVIDIA CUDA. A hangsúly azt szeretnénk, hogy ez a nagyon a program felépítése és beállítása a fenti technológiák dolgozni egy programot. És így poehalivЂ | kedvéért, írtam egy kis tervet, amellyel haladunk: 1) Képzés

Számítógépes látás Java az Android. Áttekintés BoofCV könyvtár
Valószínűleg minden Android szoftver legalább egyszer gondolt írásban valami hasznos a használata a számítógépes látás és a kibővített valóság. Néhányan még azt írta hello, szót OpenCV, amely még portolni Android. Sajnos, ha azt akarjuk, hogy írjon valami komoly, azt találjuk, hogy a beállított könyvtárak

