Vysoke´Ucˇenítechnicke´V Brneˇ Srovna´Níknihoven
Total Page:16
File Type:pdf, Size:1020Kb
VYSOKE´ UCˇ ENI´ TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACˇ NI´CH TECHNOLOGII´ U´ STAV POCˇ ´ITACˇ OVE´ GRAFIKY A MULTIME´ DII´ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA SROVNA´ NI´ KNIHOVEN PRO PRA´ CI S OBRAZEM COMPARISON OF IMAGE PROCESSING LIBRARIES BAKALA´ Rˇ SKA´ PRA´ CE BACHELOR’S THESIS AUTOR PRA´ CE LENKA KRU´ POVA´ AUTHOR VEDOUCI´ PRA´ CE Ing. DAVID BARˇ INA SUPERVISOR BRNO 2012 Abstrakt Tato bakala´rˇska´pra´ce se zaby´va´porovna´nı´m knihoven pracujı´cı´ch s obrazem. V pra´ci je mozˇne´ sezna´mit se s teoreticky´m u´vodem z oblasti zpracova´nı´obrazu. Pra´ce do hloubky rozebı´ra´knihovny OpenCV, GD, GIL, ImageMagick, GraphicsMagick, CImg, Imlib2. Zameˇrˇenı´popisu teˇchto kni- hoven se orientuje na rozhranı´v jazycı´ch C a C++. Za´veˇr pra´ce je veˇnova´n porovna´nı´z ru˚zny´ch hledisek. Abstract This bachelor thesis deals with comparison of image processing libraries. This document describes brief introduction into the field of image procesing. There are wide analysis of OpenCV, GD, GIL, ImageMagick, GraphicsMagick, CImg, Imlib2 libraries. The text aims at C and C++ language interfaces of these libraries. The end of the thesis is dedicated to comparison of libaries from various points. Klı´cˇova´slova Zpracova´nı´obrazu, OpenCV, GD, GIL, ImageMagick, GraphicsMagick, CImg, Imlib2 Keywords Image processing, OpenCV, GD, GIL, ImageMagick, GraphicsMagick, CImg, Imlib2 Citace Lenka Kru´pova´: Srovna´nı´knihoven pro pra´ci s obrazem, bakala´rˇska´pra´ce, Brno, FIT VUT v Brneˇ, 2012 Srovna´nı´knihoven pro pra´ci s obrazem Prohla´sˇenı´ Prehlasujem, zˇe som tu´to bakala´rsku pra´cu vypracovala samostatne pod vedenı´m pa´na Ing. Davida Barˇinu.Uviedla som vsˇetky litera´rne pramene a publika´cie, z ktory´ch som cˇerpala. ....................... Lenka Kru´pova´ 15. ma´ja 2012 Podeˇkova´nı´ Rada by som pod’akovala vedu´cemu pra´ce Ing. Davidovi Barˇinoviza odbornu´pomoc a rady pri spracovanı´tejto bakala´rskej pra´ce. Za pomoc s gramatickou a sˇtylistickou korekciou textu pra´ce by som rada pod’akovala svojej mamke. © Lenka Kru´pova´, 2012. Tato pra´ce vznikla jako sˇkolnı´dı´lo na Vysoke´m ucˇenı´technicke´m v Brneˇ, Fakulteˇinformacˇnı´ch technologiı´. Pra´ce je chra´neˇna autorsky´m za´konem a jejı´uzˇitı´bez udeˇlenı´opra´vneˇnı´autorem je neza´konne´, s vy´jimkou za´konem definovany´ch prˇı´padu˚. Obsah 1 U´ vod 2 2 Spracovanie obrazu3 2.1 Rozbor za´kladny´ch pojmov su´visiacich s obrazom..................3 2.2 Za´kladne´opera´cie s obrazom.............................7 3 Popis vybrany´ch knizˇnı´c pre pra´cu s obrazom 10 3.1 OpenCV........................................ 10 3.2 GD........................................... 17 3.3 GIL.......................................... 19 3.4 ImageMagick..................................... 23 3.5 GraphicsMagick.................................... 28 3.6 CImg......................................... 30 3.7 Imlib2......................................... 33 4 Porovnanie knizˇnı´c 36 4.1 Platformy a rozhrania................................. 36 4.2 Da´tove typy, farebne´kana´ly a modely........................ 37 4.3 Podporovane´forma´ty obrazu............................. 38 4.4 Porovnanie funkcionality............................... 39 4.5 Porovnanie ry´chlosti jednotlivy´ch opera´ciı´...................... 40 4.6 Porovnanie dokumenta´ciı´............................... 43 4.7 Zhrnutie porovnania knizˇnı´c............................. 44 5 Za´ver 45 A Obsah CD 48 B Pouzˇite´obra´zky pre porovnanie knizˇnı´c 49 C Tutoria´l z webovej stra´nky 50 1 Kapitola 1 U´ vod Spracova´vanie obrazu je za´kladom ake´hokol’vek projektu, ktory´zahr´nˇa pra´cu s grafikou. Spracova- nie obrazu je pouzˇı´vane´pre dva hlavne´doˆvody [22]: 1. Zlepsˇenie vzhl’adu obra´zkov pre l’udske´oko 2. Pripravenie obra´zka pre meranie cˇr´t, parametrov a sˇtruktu´r obsiahnuty´ch v obra´zku Techniky, ktore´su´pre tieto dve u´lohy vhodne´nie su´vzˇdy rovnake´, ale niekedy sa prekry´vaju´. V dnesˇnej dobe je mozˇne´na´jst’roˆzne prostriedky pre potreby spracova´vania obrazu. Mnohe´knizˇnice ako OpenCV a ImageMagick zacˇali vznikat’koncom 90. rokov a zacˇiatkom nove´ho mile´nia. Cˇı´m viac podobny´ch knizˇnı´c pribu´dalo, ty´m viac sa rozhodovanie, ktoru´knizˇnicu a na aky´u´cˇel pouzˇit’ sta´valo t’azˇsˇı´m, chaotickejsˇı´m a zdl´havy´m. V terajsˇej dobe uzˇexistuje prı´lisˇmnoho prostriedkov, ktore´moˆzˇeme pouzˇit’pre spracovanie obrazu. Vel’mi doˆlezˇite´je vybrat’spra´vne na´stroje pri pra´ci s obrazom na cˇinnost’,ktoru´zamy´sˇl’ame vykonat’pre dosiahnutie ocˇaka´vany´ch vy´sledkov. Hlavny´m u´cˇelom tejto bakala´rskej pra´ce je podat’prehl’ad knizˇnı´c pre pra´cu s obrazom. Porovnat’tieto knizˇnice z pohl’adu ich za´kladny´ch rysov, funkcionality, architektu´ry a poskytovany´ch technı´k. Pra´ca by mala zprehl’adnit’charakteristiky knizˇnı´c, ul’ahcˇit’vy´ber spra´vnej knizˇnice a nacˇrtnu´t’u´vod do pra´ce s knizˇnicou cez vytvoreny´tutoria´l na webovej stra´nke. V kapitole2 tejto pra´ce su´rozobrane´za´kladne rysy obrazu a techniky pre jeho spracovanie. Popis knizˇnı´c OpenCV, GD, GIL, ImageMagick, GraphicsMagick, CImg a Imlib2 je mozˇne´na´jst’ v kapitole3. Vsˇetky rozoberane´knizˇnice patria medzi knizˇnice s otvoreny´m zdrojovo´m ko´dom jazykov C a C++, ale va¨cˇsˇinou poskytuju´aj ine´programovacie prostredia. Kapitola4 sa zaobera´ porovnanı´m knizˇnı´c. Tieto knizˇnice su´porovnane´z pohl’adu na podporovane´operacˇne´syste´my, rozhrania, da´tove typy, su´borove´forma´ty, farebne´kana´ly, farebne´modely, funkcionalitu a ry´chlost’ vybrany´ch opera´ciı´. V tejto kapitole je mozˇne´na´jst’podrobne´tabul’ky s informa´ciami o jednotlivy´ch knizˇniciach zo spomenuty´ch hl’adı´sk. Kapitola5 je venovana´celkovemu zhodnoteniu a vy´hl’adu do budu´cnosti. 2 Kapitola 2 Spracovanie obrazu Spracovanie obrazu je fyzicky´proces pouzˇı´vany´pre konvertovanie signa´lu obrazu na obra´zok alebo na skupinu charakteristı´k cˇi parametre popisuju´ce obra´zok. Signa´l obrazu moˆzˇe byt’digita´lny, ale aj analo´govy´. V tomto prı´pade sa bude hovorit’o digita´lnom spracova´vanı´obrazu. Va¨cˇsˇina technı´k pre spracovanie obrazu sa spra´va ku obra´zku ako ku dvojdimenziona´lnemu signa´lu a aplikuje na neho za´kladne´ techniky/algoritmy spracova´vaju´ce signa´ly. Spracovanie obrazu je prakticky vyuzˇitel’ne´ pre klasifika´ciu, extrakciu cˇr´t, rozozna´vanie vzorov a tvarov, multi-sˇka´lovu´ analy´zu signa´lu, u´pravy obrazov, zvy´raznenie rysov v obraze, segmenta´ciu obrazu, roˆzne transforma´cie obrazu, atd’[22][6][12]. V nasleduju´com texte budu´popı´sane´za´kladne´pojmy z oblasti spracovania obrazu. 2.1 Rozbor za´kladny´ch pojmov su´visiacich s obrazom 2.1.1 Pixel Obra´zok je va¨cˇsˇinou vo forma´te pol’a, matice alebo vo sˇtvorci pixelov umiestneny´ch v riadkoch a stl´pcoch. Pixel je su´hrnom kana´lov definuju´cich farbu v jednodielnom bode digita´lneho rastrove´ho obra´zku. Je to najmensˇı´adresovatel’ny´prvok (spolu s farebny´m kana´lom) v obra´zku, ktory´moˆzˇe byt’reprezentovatel’ny´a spracova´vany´. Pocˇet bitov pouzˇity´ch pre reprezenta´ciu pixelu, urcˇuje kol’ko farieb alebo odtienˇov sˇedi moˆzˇe byt’zobrazeny´ch. Naprı´klad pre 8 bitov je to 256 mozˇny´ch farieb [22][8]. 2.1.2 Farebne´kana´ly Intenzita jednotlivy´ch pixelov moˆzˇe byt’ roˆzna. Intenzita za´visı´ na farebny´ch kana´loch obrazu. Aktua´lne da´ta o farba´ch obrazu su´ulozˇene´v poliach hodnoˆt nazy´vany´ch kana´ly. Typicky sa vo farebnom obraze nacha´dzaju´asponˇ3 kana´ly cˇerveny´, modry´a zeleny´(RGB), ale existuju´aj kana´ly reprezentuju´ce ine´farebne´modely. Kombina´ciami roˆznych farieb, miesˇanı´m svetla, roˆznych farebny´ch spektier a intenzı´t z roˆz- nych zdrojov svetla moˆzˇeme zı´skat’vel’ke´mnozˇstvo roˆznych farieb. V praxi va¨cˇsˇinou vystacˇia 3-4 za´kladne´farby/kana´ly [22][8]. 2.1.3 Farebne´modely Najznamejsˇı´mi farebny´mi modelmi su´: RGB, CMY/CMYK, HLS, HSV YUV. Model RGB pouzˇı´va 3 za´kladne´farby, ktory´mi su´cˇervena´, zelena´a modra´. Tento model odpoveda´aditı´vnemu skladaniu 3 farieb, ktore´je typicke´pre zariadenia vyzˇaruju´ce svetlo - monitory, projektory, displeje, kamery, atd’. Pri maxima´lnej intenzite u tohoto modelu vznika´biela farba. Model CMY prı´padne s rozsˇı´renı´m CMYK je model skladaju´ci sa z tyrkysovej (Cyan), purpurovej (Magenta), zˇltej (Yellow) a cˇiernej (blacK) farby. Pouzˇı´va substraktı´vne miesˇanie farieb, ktore´je typicke´pre zariadenia pracuju´ce s pig- mentami ako su´naprı´klad tlacˇiarne. Pri maxima´lnej intenzite u tohoto modelu vznika´cˇierna farba. Uzˇı´vatel’sky orientovany´mi farebny´mi modelmi su´modely HSL a HSV. Tieto modely umozˇnˇuju´ intuitı´vne pracovat’s farbou. Za´kladny´mi prvkami modelu HSL su´sy´tost’(Saturation), farebny´to´n (Hue) a jas (Lightness). Pri modeli HSV su´to sy´tost’ (Saturation), farebny´to´n (Hue) a svetlost’ (Value). Tieto vlastnosti farby v modeloch RGB/CMY/CMYK nebolo mozˇne´priamo ovla´dat’. Fa- rebny´model YUV sa pouzˇı´va v televı´zii. Priestor sa da´charakterizovat’ako dvojdimenziona´lny a da´va si za u´lohu eliminovat’jasovu´zlozˇku farby. Pocˇet farieb za´visı´na tom kol’ko bitov priradı´me jednotlivy´m kana´lom vo farebnom modeli. Predpokladajme, zˇe ma´me 3-kana´lovy´farebny´model a kazˇde´mu kana´lu vyhradı´me 8 bitov. Znamena´to 24 bitov pre jeden pixel. Z ty´chto 24 bitov je mozˇne´vytvorit’priblizˇne 16 milionov farieb [22][8]. (a) RGB model (b) CMYK model Obr. 2.1: Farebne´modely (prevziate´z [28]). 2.1.4 Forma´t pixelu Forma´t pixelu je forma´t, ktory´su´bor pouzˇı´va pre ulozˇenie informa´cie o farbe a intenzite v obra´zku.