ZODOP manuál
2
ZODOP
ZODOP
3
OBSAH 1.
ÚVOD .............................................................................................................................................. 5
2.
NOVÝ OBRAZ ............................................................................................................................... 9
3.
OTEVŘÍT ...................................................................................................................................... 10
4.
OTEVŘÍT JAKO .......................................................................................................................... 11
5.
ULOŢIT ........................................................................................................................................ 12
6.
ULOŢIT JAKO ............................................................................................................................ 12
7.
ULOŢIT VŠE ................................................................................................................................ 13
8.
ULOŢIT SEZNAM ...................................................................................................................... 13
9.
ULOŢIT SOUBORY JAKO ........................................................................................................ 13
10.
OBNOVIT Z DISKU ................................................................................................................ 14
11.
KONEC ..................................................................................................................................... 14
12.
NASTAVENÍ TISKU ............................................................................................................... 14
13.
NASTAVENÍ STRANY ........................................................................................................... 14
14.
TISK .......................................................................................................................................... 18
15.
SEZNAM SOUBORŮ .............................................................................................................. 18
16.
EDITAČNÍ FUNKCE .............................................................................................................. 18
17.
NASTAVENÍ............................................................................................................................. 19
18.
AKTUÁLNÍ BARVA ............................................................................................................... 22
19.
FUNKCE ZOBRAZENÍ .......................................................................................................... 25
20.
DVOUOBRAZOVÉ OPERACE ............................................................................................. 26
21.
HISTOGRAM ........................................................................................................................... 29
22.
ÚPRAVA PALETY .................................................................................................................. 36
23.
SPOJIT ...................................................................................................................................... 41
24.
ROZDĚLIT NA RGB ............................................................................................................... 44
25.
ROZDĚLIT NA YHS ............................................................................................................... 44
26.
RGB->INDEX ........................................................................................................................... 45
27.
INDEX-> RGB .......................................................................................................................... 46
28.
SOUBORY INDEX-> RGB ..................................................................................................... 46
29.
ZABALIT / ROZBALIT .......................................................................................................... 46
30.
PROFIL ..................................................................................................................................... 47
31.
KONVOLUČNÍ FILTRACE ................................................................................................... 48
32.
POŘÁDKOVÉ FILTRY .......................................................................................................... 52
33.
LOKÁLNÍ EKVALIZACE HISTOGRAMU......................................................................... 53
34.
FOURIEROVA TRANSFORMACE ...................................................................................... 55
35.
MĚŘÍTKO ................................................................................................................................ 63
36.
TRANSFORMACE .................................................................................................................. 66
37.
GEOMETRICKÉ TRANSFORMACE POMOCÍ VLÍCOVACÍCH BODŮ ...................... 68
38.
SNÍMÁNÍ .................................................................................................................................. 74
39.
SPUSTIT MAKRO ................................................................................................................... 75
4
ZODOP
40.
FUNKCE PRACUJÍCÍ S VYBRANOU OBLASTÍ ............................................................... 96
41.
OKNA ........................................................................................................................................ 98
42.
NÁPOVĚDA ............................................................................................................................. 99
43.
VÝKONNÉ ZÁSUVNÉ MODULY ......................................................................................... 99
44.
POKUSNÝ OBRÁZEK .......................................................................................................... 100
45.
VLOŢIT TEXT ....................................................................................................................... 100
46.
VLOŢIT ČÁRU ...................................................................................................................... 101
47.
VLOŢIT IKONU .................................................................................................................... 103
48.
ÚPRAVY VEKTOROVÝCH OBRAZŮ .............................................................................. 104
49.
VÍCEVRSTVÝ OBRAZ......................................................................................................... 108
50.
SOUŘADNICE ....................................................................................................................... 110
51.
JAS A KONTRAST ................................................................................................................ 113
52.
HLAVNÍ KOMPONENTY .................................................................................................... 114
53.
PŘIDAT ŠUM ......................................................................................................................... 117
54.
VYVÁŢENÍ BÍLÉ .................................................................................................................. 118
55.
PRŮCHOD NULOU ............................................................................................................... 119
56.
FÁZOVÁ KORELACE ......................................................................................................... 119
57.
DETEKCE ROHŮ .................................................................................................................. 121
58.
ANIMOVANÝ GIF ................................................................................................................ 124
59.
POROVNÁNÍ OBRAZŮ........................................................................................................ 127
60.
FORMÁTOVÉ ZÁSUVNÉ MODULY ................................................................................. 129
61.
BMP ......................................................................................................................................... 129
62.
FITS ......................................................................................................................................... 129
63.
GIF ........................................................................................................................................... 130
64.
ICO .......................................................................................................................................... 130
65.
JPEG ........................................................................................................................................ 130
66.
PNG.......................................................................................................................................... 130
67.
PGMPPM ................................................................................................................................ 130
68.
PIC_I........................................................................................................................................ 131
69.
POSTSCRIPT ......................................................................................................................... 131
70.
TIFF ......................................................................................................................................... 131
71.
VZORKOVANÝ TIFF ........................................................................................................... 131
72.
FORMÁT HOLÁ DATA ....................................................................................................... 132
73.
JAK VYTVÁŘET ZÁSUVNÉ MODULY PRO PROGRAM ZODOP ............................. 136
74.
DODATEK A: CHYBOVÉ KÓDY ....................................................................................... 158
75.
DODATEK B: MASKY FILTRŮ PRO KONVOLUČNÍ FILTRACI ............................... 164
ZODOP
5
1. Úvod ZODOP je program na zpracování obrazu, který má za sebou poměrně sloţitou historii. Původně byl pod názvem ProImPro (Professional Image Processing) vyvinut pro prostředí MS DOS. Později byl upraven pro prostředí MS Windows a začal být pouţíván zejména pro zpracování dat (hlavně map) Agentury ochrany přírody a krajiny České republiky, odtud jeho dnešní název ZODOP (Zpracování Obrazových Dat Ochrany Přírody). Tato spolupráce nyní skončila a v současné době je program pouţíván pro testy nových metod v jazyce C++. V tomto jazyce je i napsán a přeloţen překladačem Microsoft Visual Studio (aktuálně verze 9.0 z roku 2008). Specializované funkce jsou zajišťovány pomocí zásuvných modulů. Rozhodli jsme se poskytnout základní verzi zájemcům zadarmo, s tím, ţe zásuvné moduly vytvořené na míru jednotlivým zákazníkům (v minulosti i v budoucnosti) budou i nadále prodávány. Program je ovládán z menu, některé operace je moţné vyvolat téţ pomocí tlačítek v horní nástrojové liště, další jsou na plovoucí nástrojové liště. Některé déletrvající operace je moţno přerušit klávesou Pause. Takto vypadá hlavní okno programu:
1.1 Stavová lišta V dolní části hlavního okna je stavová lišta, která obsahuje tyto údaje 1.1.1
Paleta
Paleta zdrojového obrazu, tzn. tabulka se seznamem barev. Pokud je hloubka obrazu 8 bitů, je zde zobrazena plná paleta, palety obrazů s menší hloubkou jsou roztaţené, při hloubce 16 bitů je zobrazena jen kaţdá 256. barva. U obrazů s hloubkou 24 nebo 32 bitů se paleta nepouţívá. 1.1.2
Rozměry
Šířka x výška x hloubka zdrojového obrazu. Šířka je počet sloupců, výška je počet řádků a hloubka je počet bitů na pixel. V současnosti můţe být 1, 2, 4, 8, 16, 24 nebo 32, přičemţ hloubky 8 a 24 jsou preferovány, tzn. s ostatními hloubkami není moţné provádět některé operace. U obrazů s hloubkami 1 aţ 16 bitů jsou v obrazové matici indexy a barvy jsou vybírány z palety, např. index 5 znamená, ţe příslušný obrazový bod (pixel) se zobrazí v páté barvě z palety (jsou číslované od nuly). Pokud mají pro index i v paletě všechny tři základní barvy hodnotu i a to pro všechny indexy, jedná se o černobílý obraz, jinak mluvíme o obrazu v indexových barvách. U obrazů s hloubkou 24 nebo 32 bitů jsou v obrazové matici přímo hodnoty základních barev příslušného pixelu a paleta se nepouţívá. V případě vektorového nebo vícevrstvého obrazu je šířka a výška rozdíl mezi maximální a minimální souřadnicí ve vodorovném a svislém směru. Údaj o hloubce pak nemá smysl. 1.1.3
Poloha kurzoru
x, y jsou souřadnice kurzoru, D je hodnota (index) pixelu pod kurzorem, R, G a B je hodnota červené, zelené a modré (v případě indexových barev podle palety pro daný index). Při výběru obdélníku se zde
6
ZODOP
objevují údaje x0, y0 - počátek vybíraného obdélníku, při výběru oblasti w, h - šířka a výška obdélníka opsaného dosud vybrané oblasti. 1.1.4
Komentář
Komentář přiřazený obrazu. Následuje seznam poloţek hlavního menu. V menu se navíc mohou objevit poloţky odkazující na zásuvné moduly, zde jsou uvedeny ve zvláštní kapitole.
1.2 Soubor Nový Otevřít Otevřít jako Uloţit Uloţit jako Uloţit vše Uloţit seznam Obnovit z disku Nastavení tisku Nastavení strany Tisk Konec Seznam souborů
1.3 Úpravy Zpět Částečně zpět Částečně obnovit Vyjmout Kopírovat Vloţit Vloţit do nového Vymazat Kopie obrazu Označit obraz jako druhý Nastavení Aktuální barva Komentář
1.4 Zobrazit Jedna ku jedné Zvětšit Zmenšit Změna měřítka vzhledem k Lupa Obnovit Informace o obrazu Přehled polohy okna Nástrojová lišta Stavová lišta Plovoucí nástroje
1.5 Nástroje Operace byly rozděleny do 4 skupin. Bodové operace určují výslednou hodnotu pixelu pouze ze vstupních hodnot pixelů se stejnou polohou, filtrace určují výslednou hodnotu z okolí pixelu a geometrické transformace zcela mění polohu pixelu v obrazu. Ve skupině Snímat jsou různé způsoby snímání obrazu z obrazovky, kamerou nebo jiným vstupním zařízením. Zcela zvlášť je volání dialogu pro práci s makry. Menu Nástroje má tvar:
ZODOP Bodové operace Filtrace Geometrie Snímat Spustit makro 1.5.1
Bodové operace
Aritmetické a logické operace Histogram Paleta Kanály Profil 1.5.1.1 Kanály Spojit Rozdělit na RGB Rozdělit na YHS RGB->Index Index->RGB Zabalit/Rozbalit 1.5.2
Filtrace
Konvoluční filtr Pořádkový filtr Lokální ekvalizace Fourier 1.5.3
Geometrie
Měřítko Transformace Vlícovací body 1.5.4
Snímat
Vybrat zařízení TWAIN... Snímat pomocí TWAIN... Snímat okno Snímat klientskou plochu Snímat celou obrazovku Snímat okno pod kurzorem Snímat plochu Snímat objekt Snímat tvar kurzoru Nastavit snímání z obrazovky Snímat zdroj z EXE Konec snímání z obrazovky
1.6 Vybrat oblast Vybrat vše Vybrat Zobrazit / skrýt vybranou oblast Vloţit vybranou oblast Inverze vybrané oblasti Kopie vybrané oblasti Alfa kanál -> obraz Obraz -> alfa kanál 1.6.1
Vybrat
Dialogem Obdélník Oblý obdélník
7
8
ZODOP
Elipsu Obecný tvar Kouzelnou hůlkou Citlivost kouzelné hůlky
1.7 Okna Kaskáda Mozaika Uspořádat ikony Zavřít vše Minimalizovat vše Obnovit vše Seznam obrazů
1.8 Nápověda Manuál O aplikaci
1.9 Zásuvné moduly V současné době jsou k dispozici tyto zásuvné moduly: Pokusný obrázek Animovaný GIF Vloţit čáru Vloţit ikonu Vloţit text Úprava vektorových obrazů Souřadnice Vícevrstvý obraz Jas a kontrast Hlavní komponenty Přidat šum Průchod nulou Spojit obrazy Detekce rohů Fázová korelace Virtuální kruhy Otevřít mapu Zeměpisné souřadnice Kaţdý zásuvný modul si sám určí do kterého menu bude zařazen.
1.10 Konfigurace programu Při překladu programu se pouţívají některé konstanty. V současné době jsou nastaveny takto: Maximální šířka obrazu: Maximální výška obrazu: Minimální měřítko: Maximální měřítko: Maximální rozměr zvětšeného obrazu: Plocha vektorového obrazu po otevření: Maximální počet obrazů v menu: Maximální počet výkonných zásuvných modulů: Maximální délka řetězce se jménem skupiny zásuvných modulů: Maximální délka řetězce s pořadím ve skupině zásuvných modulů: Maximální hloubka vnoření submenu zásuvných modulů: Implicitní hustota při tisku (pro malé obrazy): Maximální délka řetězce se jménem souboru vkládaným do menu Maximální délka jména funkce v makru Maximální délka parametru v makru
65 535 65 535 0.1% 102400% 67 108 864 512 × 512 15 300 30 6 16 72 dpi 40 30 256
ZODOP
9
Váhy základních barev při hledání nejbliţší barvy červená: zelená: modrá: Váhy základních barev při výpočtu jasu červená: zelená: modrá:
1 1 1 0.299 0.587 0.114
Na poţádání je moţné dodat verzi s jinak nastavenými těmito konstantami. Nejdůleţitější z nich jsou zobrazeny téţ v dialogu O aplikaci.
1.11 Vstupní obrazy Jako vstupní snímek pro vybranou operaci se pouţívá obraz označený jako zdrojový. Je to obraz v obrazovém okně, které bylo naposledy zaměřeno (mělo fokus). Toho dosáhneme kliknutím levou myší na ţádané obrazové okno. Toto okno pak má barevně zvýrazněný titulek. Některé operace potřebují dva vstupní snímky. Jako druhý vstupní snímek se pouţívá obraz v obrazovém okně označeném jako druhý. Toho dosáhneme kliknutím pravou myší na ţádané obrazové okno. V titulku obrazu se pak objeví slovo "DRUHÝ". Lze toho téţ docílit voláním z menu Úpravy / Označit obraz jako druhý.
1.12 Obrazové okno Obrazové okno lze ovládat myší: kliknutím na lištu s titulkem okno přesunovat, kliknutím na skrolovací lištu posunovat obsah okna. Téhoţ lze dosáhnout kliknutím přímo do okna. Dvojitý klik obraz dvakrát zvětší, dvojitý klik pravou myší obraz dvakrát zmenčí. Posun ve svislém směru je moţné řídit také kolečkem u myši, v případě, ţe obrazové okno má jen vodorovnou skrolovací lištu, řídí se kolečkem posun vodorovně. Obrazové okno lze ovládat také z klávesnice. Pokud je okno zaměřeno (má fokus), lze je ovládat kurzorovými klávesami, viz následující tabulka: šipky vlevo a vpravo šipky nahoru a dolů Ctrl + šipky vlevo a vpravo Ctrl + šipky nahoru a dolů Home End Ctrl + Home Ctrl + End PageUp PageDown Ctrl + PageUp Ctrl + PageDown + -
posun o pixel vodorovně posun o pixel svisle posun o sloupec (10 pixelů) vodorovně posun o řádek (10 pixelů) svisle posun na začátek obrazu vodorovně posun na konec obrazu vodorovně posun na začátek obrazu svisle posun na konec obrazu svisle posun o šířku okna nahoru posun o šířku okna dolů posun o šířku okna doprava posun o šířku okna doleva dvakrát zvětšit dvakrát zmenšit
Klávesa F1 s Ctrl zobrazí nápovědu. Posuny se provedou pouze kdyţ má okno posuvné lišty. Obrazové okno lze ovládat pomocí akcelerátorů i kdyţ není zaměřeno, ale je označeno jako zdrojové. Týká se zejména virtuálních kláves + a -, které stisknuty s klávesou Ctrl pracují i v tomto případě a klávesy F4, která opět spolu s Ctrl zavře obrazové okno. Další tzv. horké klávesy lze nalézt v pravé části příslušné poloţky hlavního menu. Nyní k jednotlivým funkcím v pořadí, ve kterám jsou uvedeny v menu.
2. Nový obraz
10
ZODOP
Vytvoření nového obrazu. Takto vypadá dialogové okno
2.1 Počet sloupců Počet sloupců (šířka) nového obrazu.
2.2 Počet řádků Počet řádků (výška) nového obrazu.
2.3 Šedotónový Vytvořený černobílý obraz v 8-bitovém formátu bude vyplněn úrovní šedi danou parametrem Index v dialogu Aktuální barva.
2.4 Barevný (24 bitů) Vytvořený barevný obraz ve 24-bitovém formátu bude vyplněn barvou danou parametry Č, Z a M v dialogu Aktuální barva.
2.5 Nový obraz Vytvořit nový obraz zvolených rozměrů a barvy.
2.6 Barva Zde je moţno zavolat dialog pro volbu barvy pozadí, která určuje barvu vytvořeného obrazu. Nezapomeňte, ţe pro 8-bitové obrazy v indexových barvách platí parametr Index, zatímco pro 24bitové RGB obrazy platí parametry Č, Z a M.
2.7 Zavřít Zavřít dialog o novém obrazu.
3. Otevřít Otevřít soubor a přečíst z něj obraz. Je moţné otevřít několik souborů najednou. Formát se určuje podle přípony souboru. Můţe být buď „.fl“
soubor se jmény souborů, které jsou vzápětí otevřeny
nebo některá z přípon rozpoznávaných zásuvnými moduly. V současné době jsou k dispozici zásuvné moduly s těmito příponami: „.bmp“ „.fit“ „.gif“ „.ico“ „.jpg“ „.pbm“ „.pct“ „.pgm“
formát BMP pro bitmapy ve Windows formát fits formát Compuserve GIF formát ikon ve Windows formát JPEG formát „Portable Bitmap“ formát MacPict formát „Portable Graymap“
ZODOP „.ppm“ „.pic“ „.png“ „.raw“ „.siz“ „.tif“
11 formát „Portable Pixel Map“ formát PIC pro infračervené snímky formát Portable Network Graphics formát holá data. údaje o souboru ve formátu holá data (viz formát siz souboru) formát TIFF.
A dále zásuvné moduly pro čtení vektorových obrazů: „shp“ „wmf“ „emf“ „dgn“ „cgm“ „cmx“ „drw“ „dwf“ „dwg“ „dxf“ „dgf“ „pcl“ „pct“ „plt“ „svg“ „vec“
formát „Environmental Systems Research Institute“ formát „Windows Meta File“ formát „Windows Enhanced Meta File“ formát „Intergraph Microstation“ formát „Computer Graphics Metafile“ formát „Corel Presentation Exchange“ formát „DRaWing – Micrografx Designer“ formát „AutoCAD“ formát „AutoCAD“ formát „Drawing Interchange Format“ formát „Gerber File“ formát „Printer Command Language“ formát „Vector Macintosh QuickDraw PCT“ formát „HPGL – Hewlett-Packarde“ formát „Scalable Vector Graphics“ vlastní formát LeadTools.
Soubor ve formátu TIFF je moţné číst také zásuvným modulem Vzorkovaný TIFF, který umoţňuje otevřít pouze výřez obrazu nebo zmenšený obraz. Viz téţ Formátové zásuvné moduly. V případě, ţe jsou nalezeny 2 filtry se stejnou příponou a byl zvolen soubor s touto příponou, pokusí se program otevřít soubor nejprve tím formátem, jehoţ filtr byl vybrán v seznamu filtrů. Pokud nebyl vybrán ţádný filtr, začne se formátem, který byl nalezen jako první. V případě neúspěchu jsou zkoušeny všechny formáty s danou příponou. V případném hlášení o chybě se můţe vyskytnout chybový kód (viz).
4. Otevřít jako Otevřít soubor a přečíst z něj obraz. Formát se určuje podle zvoleného filtru bez ohledu na obvyklou příponu. V současné době jsou k dispozici zásuvné moduly s těmito příponami: „.bmp“ „.fit“ „.gif“ „.ico“ „.jpg“ „.pbm“ „.pct“ „.pgm“ „.ppm“ „.pic“ „.png“ „.raw“ „.tif“
formát BMP pro bitmapy ve Windows formát fits formát Compuserve GIF formát ikon ve Windows formát JPEG formát „Portable Bitmap“ formát MacPict formát „Portable Graymap“ formát „Portable Pixel Map“ formát PIC pro infračervené snímky formát Portable Network Graphics formát holá data. formát TIFF
A dále zásuvné moduly pro čtení vektorových obrazů: „shp“ „wmf“ „emf“
formát „Environmental Systems Research Institute“ formát „Windows Meta File“ formát „Windows Enhanced Meta File“
12 „dgn“ „cgm“ „cmx“ „drw“ „dwf“ „dwg“ „dxf“ „dgf“ „pcl“ „pct“ „plt“ „svg“ „vec“
ZODOP formát „Intergraph Microstation“ formát „Computer Graphics Metafile“ formát „Corel Presentation Exchange“ formát „DRaWing – Micrografx Designer“ formát „AutoCAD“ formát „AutoCAD“ formát „Drawing Interchange Format“ formát „Gerber File“ formát „Printer Command Language“ formát „Vector Macintosh QuickDraw PCT“ formát „HPGL – Hewlett-Packarde“ formát „Scalable Vector Graphics“ vlastní formát LeadTools.
Soubor ve formátu TIFF je moţné číst také zásuvným modulem Vzorkovaný TIFF, který umoţňuje otevřít pouze výřez obrazu nebo zmenšený obraz. Viz téţ Formátové zásuvné moduly. V případném hlášení o chybě se můţe vyskytnout chybový kód (viz).
5. Uloţit Uloţit obraz do stejného souboru, ze kterého byl otevřen. Jestliţe byl vytvořen jako nový, bezejmenný, je pouţit dialog Uloţit jako. Podobně v některých speciálních případech formátu holá data (viz zásuvný modul Holá data), pokud byl otevřen příkazem Otevřít jako a v případě, ţe byl otevřen zásuvným modulem, který neumoţňuje zápis.
6. Uloţit jako Uloţit obraz do souboru pod jiným jménem nebo v jiném formátu. Obraz se zároveň přejmenuje. Formát se určuje podle přípony souboru. V současné době jsou k dispozici zásuvné moduly s těmito příponami: „.bmp“ „.gif“ „.ico“ „.jpg“ „.pbm“ „.pct“ „.pgm“ „.ppm“ „.pic“ „.png“ „.ps“ „.raw“ „.tif“
formát BMP pro bitmapy ve Windows formát Compuserve GIF formát ikon ve Windows formát JPEG formát „Portable Bitmap“ formát MacPict formát „Portable Graymap“ formát „Portable Pixel Map“ formát PIC pro infračervené snímky formát Portable Network Graphics formát PostScript formát holá data formát TIFF.
A dále zásuvné moduly pro zápis vektorových obrazů: „shp“ „wmf“ „emf“ „cgm“ „drw“ „dwf“ „dxf“ „dgf“ „pcl“
formát „Environmental Systems Research Institute“ formát „Windows Meta File“ formát „Windows Enhanced Meta File“ formát „Computer Graphics Metafile“ formát „DRaWing – Micrografx Designer“ formát „AutoCAD“ formát „Drawing Interchange Format“ formát „Gerber File“ formát „Printer Command Language“
ZODOP „pct“ „plt“ „svg“ „vec“
13 formát „Vector Macintosh QuickDraw PCT“ formát „HPGL – Hewlett-Packarde“ formát „Scalable Vector Graphics“ vlastní formát LeadTools.
Viz téţ Formátové zásuvné moduly. V případě, ţe jsou nalezeny 2 filtry se stejnou příponou a byl zvolen soubor s touto příponou, uloţí program soubor v tom formátu, jehoţ filtr byl vybrán v seznamu filtrů. Pokud nebyl vybrán ţádný filtr, pouţije se formát, který byl nalezen jako první. V seznamu filtrů se objeví jen ty formáty, které umoţňují zápis daného typu obrazu. Někdy je moţné vypsat ručně příponu jiného formátu, ale obraz se pak uloţí např. se změněnou hloubkou. V případném hlášení o chybě se můţe vyskytnout chybový kód.
7. Uloţit vše Po potvrzení budou všechny obrazy uloţeny do souborů. Při ukládání nově vytvořených dosud bezejmenných obrazů se objeví dotaz na jméno a formát nového souboru rozlišovaný podle přípony. K dispozici jsou pouze formáty ze zásuvných modulů doporučené i pro zápis nových obrazů. V současné době jsou k dispozici zásuvné moduly s těmito příponami: „.tif“ formát TIFF „.raw“ soubor ve formátu holá data. Viz téţ Formátové zásuvné moduly. V případném hlášení o chybě se můţe vyskytnout chybový kód. Při potvrzování této akce by měl uţivatel zváţit, zda si chybným obrazem nepřepíše původní dobrá data.
8. Uloţit seznam Do souboru se zadaným jménem bude uloţen seznam jmen otevřených obrazů. Tento soubor by měl mít příponu „.fl“ aby ho bylo moţné otevřít (viz Otevřít). Při potvrzení dotazu na uloţení budou obrazy uloţeny do souborů. Při ukládání nově vytvořených dosud bezejmenných obrazů se objeví dotaz na jméno a formát nového souboru rozlišovaný podle přípony. Při tomto dotazu je moţné zrušit uloţení takového obrazu, ale potom nebude zahrnut ani do vytvářeného seznamu. K dispozici jsou pouze formáty ze zásuvných modulů doporučené i pro zápis nových obrazů. V současné době jsou k dispozici zásuvné moduly s těmito příponami: „.tif“ formát TIFF „.raw“ soubor ve formátu holá data. Viz téţ Formátové zásuvné moduly. V případném hlášení o chybě se můţe vyskytnout chybový kód.
9. Uloţit soubory jako Tímto příkazem se vybrouné soubory uloţí v novém formátu. Pouţije se k tomu následující dialog
14
ZODOP
9.1 Nový formát zvolených souborů Zde je moţné zvolit nový formát souborů s obrazy. Jsou zde všechny dostupné zásuvné moduly umoţňující zápis a není kontrolováno, zda obrazy ze všech vybraných souborů lze zapsat ve všech zde uvedených formátech. Volte prosím proto pouze takové formáty, které umoţní zápis vámi zvolených obrazů. Například vektorové obrazy není moţno uloţit v rastrovém formátu a naopak.
9.2 OK Objeví se dialog, pro volbu souborů a zvolené soubory budou uloţeny v novém formátu. Budou uloţeny v novém adresáři se jménem odvozeným od nového formátu a dialog se poté zruší.
9.3 Zrušit Zrušit dialog o uloření obrazů v novém formátu aniţ by nějaké obrazy byly uloţeny.
10. Obnovit z disku Obraz je znovu přečten ze souboru, ze kterého byl původně otevřen. Jestliţe byl vytvořen jako nový, bezejmenný, operace se neprovede.
11. Konec Konec programu.
12. Nastavení tisku Zde je moţno zvolit typ tiskárny, orientaci, velikost a zdroj papíru a případně další údaje závislé na konkrétním typu tiskárny.
13. Nastavení strany Tento dialog slouţí k nastavení velikosti a polohy obrazu na stránce při tisku. Takto vypadá:
ZODOP
15
13.1 Náčrt stránky s obrazem Zde je schematicky naznačena podoba stránky či stránek s obrazem. Kliknutím levou myší dovnitř náčrtku obrazu je moţno s ním pohybovat a nastavit tak polohu obrazu na stránce.
13.2 Rámeček Při potvrzení tohoto tlačítka se v náčrtku stránky s obrazem zobrazuje pouze obrys obrazu, nikoli celý zmenšený obraz. Je to výhodné k přesnějšímu nastavení polohy obrazu s bílými okraji a také je to rychlejší.
13.3 Dělení obrazu Při potvrzení tohoto tlačítka je povoleno dělení obrazu na více stránek. V náčrtu stránky s obrazem se objeví znázornění hranic jednotlivých stránek a pokud to rozměry dovolí i čísla stránek vyuţitelná později pro tisk pouze některých z nich. Barvu je moţno zvolit kliknutím na (barevné) políčko vpravo dole od náčrtu. Upozornění: 1. Pokud zvolíte polohu obrazu takovou, ţe levý horní roh obrazu nebude leţet na první stránce, budou stránky přečíslovány tak, aby se netiskly bílé stránky, ale aby se vytiskl celý obraz. 2. Existuje limit na počet stránek, který je moţné najednou zpracovat, v současnosti je to 32766 stránek.
13.4 Jednotka délky Zde je moţno zvolit jednotku, ve které jsou udávány délkové údaje v dialogu, tzn. počátek a rozměry obrazu, minimální okraje tiskárny a rozměry papíru. V současnosti je k dispozici centimetr (cm), milimetr (mm), palec (inch) a anglický typografický bod (pt). Vnitřně jsou však uloţeny v desetinách milimetru. Přepočet je 1 cm 1 mm 1 inch 1 pt
= 100 desetin mm, = 10 desetin mm, = 254 desetin mm a = 3.52777... desetin mm = 1/72 inch.
13.5 Jednotka hustoty
16
ZODOP
Zde je moţno zvolit jednotku, ve které jsou udávány údaje o hustotě (rozlišení) v dialogu, tzn. hustota obrazu při tisku a při vzorkování a rozlišení tiskárny. V současnosti je k dispozici počet pixelů na palec (dpi), na centimetr (1/cm), na milimetr (1/mm) a na anglický typografický bod (1/pt). Přepočet lze odvodit podle přepočtu jednotek délky.
13.6 Minimální okraje tiskárny - vlevo, vpravo, nahoře a dole Tyto údaje slouţí jednak ke správnému zobrazení náčrtu stránky s obrazem, jednak ke správnému určení velikosti potištitelné plochy stránky na dané tiskárně. Obsluţné programy některých tiskáren umoţňují zadat tyto okraje, ty jsou pak pouţity jako implicitní, pro ostatní jsou implicitní údaje 6.4 mm (přibliţně čtvrt palce), coţ přibliţně odpovídá běţným laserovým tiskárnám. Chcete-li je stanovit přesně, je postup následující: Vloţte papír do tiskárny obvyklým způsobem. Nastavte tisk na této tiskárně (tlačítko Nastavit tisk) včetně správného formátu papíru a orientace na výšku. Vyberte si nějaký obraz, který nemá bílé okraje. Nastavte všechny minimální okraje tiskárny nulové a šířku a výšku obrazu menší neţ je velikost zvoleného formátu papíru. Zmáčkněte tlačítko Počátek, čímţ se počátek obrazu na stránce nastaví na nulu (levý horní roh stránky), tlačítkem OK údaje potvrďte a obraz vytiskněte (poloţka Tisk v submenu Soubor hlavního menu). Poté zopakujte celý postup znovu, ale místo tlačítka Počátek zmáčkněte tlačítko Konec, čímţ se poloha obrazu na stránce nastaví na pravý dolní roh stránky a opět obraz vytiskněte. V prvém případě změřte vzdálenost levého okraje obrazu od levého okraje stránky a podobně vzdálenost horních okrajů. Tak získáte údaje o levém a horním minimálním okraji tiskárny. Ve druhém případě změřte vzdálenosti pravých a dolních okrajů a získáte údaje o pravém a dolním minimálním okraji tiskárny. Pokud nejsou údaje o levém a horním okraji zadány přesně, způsobí to pouze nepřesné zobrazení náčrtu stránky s obrazem, pokud však jsou údaje o pravé a dolním okraji menší neţ skutečnost (rozhodující je součet levého a pravého okraje a součet horního a dolního okraje), nemusejí se obrazy vytisknout celé. Přejete-li si však, aby tiskárna potiskla menší část stránky, můţete stanovit pravý a dolní okraj větší.
13.7 Počátek vodorovně Vzdálenost levého okraje obrazu od levého okraje stránky v aktuálních jednotkách délky. Vzdálenost daná parametrem levý minimální okraj tiskárny se do této vzdálenosti nepočítá.
13.8 Počátek svisle Vzdálenost horního okraje obrazu od horního okraje stránky v aktuálních jednotkách délky. Vzdálenost daná parametrem horní minimální okraj tiskárny se do této vzdálenosti nepočítá.
13.9 Hustota vodorovně Hustota obrazu vodorovně v aktuálních jednotkách hustoty neboli počet pixelů na jednotku délky vodorovně.
13.10 Hustota svisle Hustota obrazu svisle v aktuálních jednotkách hustoty neboli počet pixelů na jednotku délky svisle.
13.11 Šířka Šířka obrazu na papíře v aktuálních jednotkách délky.
13.12 Výška Výška obrazu na papíře v aktuálních jednotkách délky.
13.13 Zachovat poměr stran Potvrzovací tlačítko vpravo vedle údajů a šířce a výšce obrazu. Při potvrzení tohoto tlačítka budou hustoty obrazu vodorovně a svisle stejné a šířka a výška obrazu bude nastavována tak, aby poměr stran obrazu zůstal zachován. Implicitně je toto tlačítko potvrzené. Po zrušení potvrzení je moţno zadat odlišné hustoty vodorovně a svisle, při opětném potvrzení se nová hustota stanoví jako odmocnina ze součinu stávajících hustot vodorovně a svisle.
13.14 Měřítko
ZODOP
17
Zde je uveden poměr mezi hustotou vzorkování a hustotou obrazu. Údaj se objeví pouze kdyţ je potvrzeno tlačítko Zachovat poměr stran a tudíţ hustota obrazu vodorovně a svisle je stejná. Naopak zápis hodnoty do tohoto editačního okénka způsobí automatické potvrzení tohoto tlačítka. Zadáme-li jenom jedno číslo k bez znaku ‚:„, je údaj chápán jako 1:k. Při tisku snímků zemského povrchu je výhodné zadat do údaje o vzorkování hustotu pixelů na zemském povrchu a údaj o měřítku pak udává měřítko vytištěného obrazu.
13.15 Vzorkování Zde je moţno zadat hustotu obrazu při vzorkování, tedy při digitalizaci. Tento údaj slouţí k výpočtu měřítka, tedy poměru velikosti vytištěného a původního obrazu. Jestliţe tiskneme např. mapy 1:10 000 digitalizované s hustotou 200 dpi, bude vzorkování 200:10000=0.02 dpi. Je téţ moţné zadat přímo hustotu digitalizace 200 dpi, pak bude měřítko udávat poměr mezi měřítkem vytištěné a původní mapy.
13.16 Políčko s volitelnou barvou Kliknutím na toto políčko je moţno zvolit barvu, kterou se budou zobrazovat hranice a případně čísla stránek v náčrtu stránky s obrazem při potvrzení tlačítka Dělení obrazu.
13.17 Maximum Šířka a výška obrazu je stanovena tak, aby byla co největší a přitom se vešla na jednu stránku. Respektuje se přitom stav tlačítka Zachovat poměr stran.
13.18 Počátek Počátek obrazu na stránce vodorovně a svisle se nastaví na nulu (levý horní roh stránky).
13.19 Střed Poloha obrazu na stránce (Počátek obrazu vodorovně a svisle) se nastaví tak, aby obraz leţel uprostřed stránky.
13.20 Konec Poloha obrazu na stránce (Počátek obrazu vodorovně a svisle) se nastaví tak, aby pravý dolní roh obrazu leţel v pravém dolním rohu stránky.
13.21 Obnovit Obsah dialogu je obnoven. To je uţitečné, pokud v průběhu dialogu vyberete jiný obraz a potřebujete aktualizovat dialog podle něj.
13.22 Nastavení tisku Zde je moţno zavolat dialog, který umoţňuje zvolit typ tiskárny, orientaci, velikost a zdroj papíru a případně další údaje závislé na konkrétním typu tiskárny.
13.23 Orientace Údaj o nastavené orientaci papíru na výšku nebo na šířku.
13.24 Velikost papíru Údaje o nastaveném formátu papíru jednak v aktuálních jednotkách délky, jednak slovní popis.
13.25 Potištitelná plocha Zde se objeví potištitelná plocha nastaveného formátu papíru v milimetrech.
13.26 Hustota tisku tiskárny Aby byl obraz vytištěn ve správných rozměrech, je nutno před vlastním tiskem zjistit hustotu tisku (rozlišení) aktuální tiskárny v aktuálních jednotkách hustoty neboli počet bodů tisku na jednotku délky. Pokud údaj nezadáváte v dialogu pro nastavení strany, ale v samostatném dialogu, který se objevil po spuštění tisku, je jednotkou vţdy počet bodů na palec (dpi). Obvykle tuto informaci poskytuje řadič tiskárny a tato hodnota se také objeví v editačních okéncích jako implicitní, pokud však skutečná hustota neodpovídá této hodnotě a obrazy jsou tištěny v jiné velikosti neţ bylo nastaveno, je nutno zde
18
ZODOP
vyplnit správnou hodnotu. Pokud v takovém případě neznáte správnou hodnotu, je moţné ji zjistit pokusem. Vyberte obraz, který nemá bílé okraje, nastavte vhodnou velikost a vytiskněte ho s implicitní hustotou tiskárny 300 dpi. Pokud se nevejde na papír, sniţujte hustotu tak dlouho, aţ se vejde. Poměr nastavené a skutečné velikosti obrazu pak představuje číslo, kterým musíte vynásobit zadanou hustotu abyste dostali správnou hodnotu. Hustota vodorovně a svisle bývá stejná, ve vyjímečných případech se však můţe lišit, proto je zde moţnost nastavit 2 různé hodnoty.
13.27 Zrušit nastavení Zruší všechny nastavené údaje o tisku obrazu, uvolní paměť pro ně přidělenou a zruší dialog o nastavení strany. Při případném tisku se pouţijí implicitní hodnoty, tzn. hustota 72 dpi, pokud by se obraz nevešel na stránku, pak maximální taková, aby se vešel a aby byl zachován poměr stran a poloha uprostřed stránky.
13.28 OK Zrušit dialog o nastavení strany, přičemţ nastavené údaje budou uloţeny.
13.29 Zrušit Zrušit dialog o nastavení strany, přičemţ ţádné změny nebudou provedeny.
14. Tisk Napřed se objeví dialog, kde je moţno zvolit některé parametry tisku. V případě, ţe při nastavení strany nebylo povoleno dělení obrazu do stran, je moţno zvolit tisk celého obrazu nebo jenom vybrané oblasti, pokud bylo povoleno dělení obrazu, je moţno zvolit tisk celého dokumentu nebo jen vybraného rozsahu stran. V obou případech je moţno zvolit kvalitu tisku, počet kopií a potvrdit nebo nepotvrdit seřazení kopií. Pokud nepotvrdíte seřazení kopií, pošlou se údaje o kaţdé stránce pouze jednou a vytiskne se příslušný počet kopií, takţe kopie nejsou seřazené, ale ušetří se čas potřebný k přenášení údajů, pokud potvrdíte seřazení kopií, vytiskne se celý dokument a znovu se příslušněkrát pošlou všechny údaje, takţe kopie budou seřazené, ale čas k přenosu údajů do tiskárny bude delší. Tiskárny, které si nepamatují podobu celé stránky, neumoţňují tisk více kopií na jeden přenos dat a proto tlačítko Seřadit kopie je zašeděné a nelze zrušit potvrzení. Nastavení tisku odsud je sice moţné, ale příliš se nedoporučuje, protoţe nastavení strany bude potom přepočteno podle nastavení tisku a uţ není moţnost ho zkontrolovat. Obvyklý postup je nastavení tisku, nastavení strany a tisk pomocí tohoto dialogu. Pokud se nepodaří zjistit hustotu tisku tiskárny, můţe se objevit na ní dotaz. Pokud se nepodaří zavolat tento dialog, můţe se objevit chybový kód (viz).
15. Seznam souborů Seznam obrazových souborů, se kterými program naposledy manipuloval, přesněji které byly otevřeny příkazem Otevřít nebo které byly uloţeny příkazem Uloţit jako. Neobjevují se zde poloţky otevíraného fl-souboru (souboru s příponou „.fl“). Při zvolení některého z těchto souborů se příslušný obraz otevře. V dialogu nastavení je moţno nastavit počet souborů v tomto seznamu.
16. Editační funkce V menu Úpravy jsou tyto operace:
16.1 Zpět Vrátit zpět stav obrazu před poslední operací. Další vyvolání této funkce vrátí stav po poslední operaci.
ZODOP
19
16.2 Částečně zpět Po najetí na zdrojový obraz se objeví čtvercový kurzor a po dobu zmáčknutí levého tlačítka myši se do plochy pod ním kopírují data z obrazu před poslední operací. Je to moţné pouze tehdy, kdyţ poslední operace pracovala s obrazovými daty, tedy nikoli pouze s vybranou oblastí nebo pouze s paletou.
16.3 Částečně obnovit z disku Po najetí na zdrojový obraz se objeví čtvercový kurzor a po dobu zmáčknutí levého tlačítka myši se do plochy pod ním kopírují data z diskového souboru, ze kterého byl původně obraz otevřen. Je to moţné pouze u formátů, které umoţňují přečíst ze souboru pouze malou část obrazových dat a jejichţ zásuvný modul tuto funkci zajišťuje. V současné době jsou to tyto formáty: „.bmp“ formát BMP pro bitmapy ve Windows „.fit“ formát fits „.jpg“ formát JPEG „.pbm“ formát „Portable Bitmap“ „.pct“ formát MacPict „.pgm“ formát „Portable Graymap“ „.ppm“ formát „Portable Pixel Map“ „.png“ formát Portable Network Graphics „.raw“ formát holá data. „.tif“ formát TIFF Soubor ve formátu TIFF je moţné částečně obnovit z disku i kdyţ byl přečten zásuvným modulem Vzorkovaný TIFF, který umoţňuje otevřít pouze výřez obrazu nebo zmenšený obraz. Viz téţ Formátové zásuvné moduly. V případě souboru ve formátu holá data lze tuto funkci pouţít pouze v případě, ţe je k dispozici příslušný siz soubor s údaji o obrazu.
16.4 Vyjmout Zkopírovat vybranou oblast do schránky a vyplnit vybranou oblast v původním obrazu hodnotou danou parametry Index nebo Barva pozadí v dialogu Barva pozadí.
16.5 Kopírovat Zkopírovat vybranou oblast do schránky.
16.6 Vloţit Vloţit schránku do vybrané oblasti. Pokud nesouhlasí rozměry, vloţí se ta část schránky, která se vejde do části obrázku počínaje levým horním rohem obdélníku opsaného vybrané oblasti. Výsledek má paletu původního obrazu, nikoli schránky. V případě rozdílného formátu dat ve schránce a v obrazu se operace neprovede.
16.7 Vloţit do nového Vytvořit nový obraz a vyplnit ho daty ze schránky.
16.8 Vymazat Vymazat vybranou oblast a vyplnit ji hodnotou danou parametry Index nebo Barva pozadí v dialogu Barva pozadí.
16.9 Kopie obrazu Vytvořit kopii zdrojového obrazu.
17. Nastavení Tento dialog slouţí pro změnu údajů uloţených v inicializačním souboru. U některých témat je uvedena sekce a poloţka v inicializačním souboru, kterou lze příslušným ovladačem nastavit.
20
ZODOP
17.1 Adresář s konvolučními maskami Adresář, ve kterém jsou uloţeny masky pro konvoluční filtraci. Sekce INSTALL, poloţka MasksPath.
17.2 Adresář s vyhledávacími tabulkami Adresář, ve kterém jsou uloţeny některé předdefinované vyhledávací tabulky. Sekce INSTALL, poloţka LUTPath.
17.3 Adresář se zásuvnými moduly Adresář, ve kterém program hledá zásuvné moduly. Sekce INSTALL, poloţka PluginPath.
17.4 Soubor s nápovědou Soubor s nápovědou pouţitý pro volání nápovědy z programu. Sekce INSTALL, poloţka HelpDir.
17.5 Textový editor Textový editor volaný z programu pro umoţnění editace některých souborů. Sekce EDITOR, poloţka OneFileEditor.
17.6 Textový editor pro více souborů Textový editor volaný z programu pro umoţnění editace některých souborů v případech, kdy je třeba umoţnit editovat více souborů najednou.
ZODOP
21
Sekce EDITOR, poloţka MultiFileEditor.
17.7 Výběr adresáře s konvolučními maskami Výběr adresáře s konvolučními maskami pomocí dialogu o volbě souboru. Je nutno zvolit jeden soubor s konvoluční maskou z vybraného adresáře jako příklad.
17.8 Výběr adresáře s vyhledávacími tabulkami Výběr adresáře s vyhledávacími tabulkami pomocí dialogu o volbě souboru. Je nutno zvolit jeden soubor s vyhledávací tabulkou z vybraného adresáře jako příklad.
17.9 Výběr adresáře se zásuvnými moduly Výběr adresáře se zásuvnými moduly pomocí dialogu o volbě souboru. Je nutno zvolit jeden soubor se zásuvným modulem z vybraného adresáře jako příklad.
17.10 Výběr souboru s nápovědou Výběr souboru s nápovědou pomocí dialogu o volbě souboru.
17.11 Výběr textového editoru Výběr textového editoru pomocí dialogu o volbě souboru.
17.12 Výběr textového editoru pro více souborů Výběr textového editoru pro více souborů pomocí dialogu o volbě souboru.
17.13 Obrazový formát TIFF Zde je moţno zvolit, zda při zápisu obrazu do souboru ve formátu TIFF bude obraz zapsán bez komprese, s kompresí Packbits někdy označovanou jako MacIntosh RLE nebo s kompresí Lempel – Zif - Welch známou také jako LZW. Sekce FORMATS, poloţka TIFF_Compression.
17.14 Obrazový formát JPEG Zde je moţno zvolit kvalitu zapisovaného obrazu na stupnici 0 aţ 100. V naprosté většině případů je však vyhovující implicitní hodnota 75. Podrobnější pokyny k nastavení tohoto parametru viz Zásuvný modul JPEG. Sekce FORMATS, poloţka JPEG_Quality.
17.15 Pomalé zobrazení obrazu Při potíţích se zobrazením obrazu je zde moţné nastavit způsob zobrazení pixel po pixelu. Je pouţit při splnění všech tří podmínek najednou, tj. kdyţ oba rozměry obrazu překračují zadané meze a je pouţito měřítko zobrazení větší neţ zadaná mez. Sekce DISPLAY, poloţky Width, Hight a Scale.
17.16 Počet souborů v seznamu naposledy pouţitých souborů Na konci menu soubor se objevuje seznam obrazových souborů, se kterými program naposledy manipuloval. Při zvolení některého z těchto souborů se příslušný obraz otevře. V dialogu nastavení je moţno nastavit počet souborů v tomto seznamu. Volba 0 znamená zrušení této funkce. Sekce RECFILES, poloţka NumberFiles.
17.17 Dotaz na uloţení souborů na konci Při potvrzení tohoto tlačítka program při svém uzavírání projde seznam otevřených obrazů. Pro obrazy s nastavenou vlajkou na dotaz při uzavírání, tj. takových, které uţivatel měnil a od poslední změny je
22
ZODOP
neuloţil, zobrazí dialog umoţňující uloţit tyto soubory, zrušit konec programu nebo ukončit program bez uloţení daného obrazu. Pokud toto tlačítko nebude potvrzeno, program po obdrţení příkazu k ukončení skončí bez uloţení obrazů. Sekce BEHAVIOR, poloţka EndQuerySaveFiles.
17.18 Plovoucí nástroje Plovoucí nástroje se při otevření objeví na původním místě. Zde je moţno nastavit, zda se poloha plovoucích nástrojů bude určovat vzhledem k pravému nebo levému kraji hlavního okna, coţ má význam, pokud byla mezitím změněna šířka hlavního okna. Sekce FLOAT_TOOL Poloţka Position
17.19 Vektorový obraz - plocha v pixelech Na rozdíl od rastrových obrázků, kde měřítko 100% znamená, ţe jeden pixel obrazu se zobrazuje jako jeden pixel na obrazovce monitoru, není u vektorových obrázků jasné, v jakém měřítku se mají zabrazit. Pokud zde jsou nastaveny rozměry š x v, bude se vektorový obraz v měřítku 100% zobrazovat tak, aby měl š x v pixelů na obrazovce. Implicitní plocha je 512 x 512 pixelů. Přesné rozměry vodorovně a svisle však mohou být změněny, aby poměr stran zůstal zachován. Sekce VECTOR Poloţky Width a Hight
17.20 Vektorový obraz – implicitní barvy Toto nastavení se v současné době týká pouze vektorových obrazů ve formátu shp. Soubory v tomto formátu neobsahují ţádnou informaci o barvách, barvy musí doplnit otvírající program. Zde je moţné nastavit barvu pozadí (implicitně bílá), barvu obrysů, všech bodových a čárových objektů (implicitně černá) a barvu výplní plošných objektů (implicitně zelená). Sekce VECTOR Poloţky BackgroundColor, BrushColor a PenColor
17.21 OK Zrušit dialog o změně nastavení, přičemţ provedené změny budou potvrzeny.
17.22 Zrušit Zrušit dialog o změně nastavení, přičemţ ţádné změny nebudou provedeny.
17.23 Zpět Zrušit provedené změny.
18. Aktuální barva Volba aktuální barvy. Takto vypadá dialogové okno
ZODOP
23
18.1 Jas->Index Vypočte se jas aktuální barvy dané parametry Č, Z a M a pouţije se jako Index aktuální barvy.
18.2 Index->Šedá Jako aktuální barva se nastaví šedá s úrovní danou parametrem Index.
18.3 Index Pro obrazy v indexových barvách bude tato hodnota pouţita jako index aktuální barvy.
18.4 Č Úroveň červené sloţky aktuální barvy pouţité pro barevné obrazy ve 24-bitovém formátu.
18.5 Z Úroveň zelené sloţky aktuální barvy pouţité pro barevné obrazy ve 24-bitovém formátu.
18.6 M Úroveň modré sloţky aktuální barvy pouţité pro barevné obrazy ve 24-bitovém formátu.
18.7 Aktuální barva Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu barvy, pomocí kterého lze zvolit aktuální barvu pouţitou pro barevné obrazy ve 24-bitovém formátu.
18.8 Pixel->pozadí Při potvrzení tohoto tlačítka a zmáčknutí levé myši je při pohybu myši nad obrazem snímána barva pod kurzorem. Tato barva se objevuje na tlačítku Barva pozadí. Po uvolnění tlačítka zůstane poslední sejmutá barva novou aktuální barvou.
18.9 OK Zavřít dialog o aktuální barvě s potvrzením nové barvy.
18.10 Zrušit Zavřít dialog o aktuální barvě beze změny této barvy.
18.11 Paleta->Aktuální barva Po zmáčknutí tohoto tlačítka se objeví dialog obsahující pole tlačítek s paletou označeného obrazu slouţící k volbě aktuální barvy. Takto vypadá dialogové okno
24
18.11.1
ZODOP
Pole barevných tlačítek
Pole barevných tlačítek s paletou označeného obrazu. Pokud není označen ţádný obraz, pouţije se černobílá paleta. Index a barevné sloţky barvy odpovídající tlačítku pod kurzorem se objeví v editačních okéncích I, Č, Z a M. Po zmáčknutí tlačítka se tyto parametry pouţijí pro nastavení aktuální barvy. Posuvná lišta pod polem je funkční, pouze pokud je zdrojový obraz 16-bitový, lištou se pak nastavuje, se kterou 256ticí barev se bude pracovat. 18.11.2
P
Pokud je zdrojový obraz 16-bitový, je v tomto poli index první zobrazené barvy a je moţné zde vyplnit jiný začátek zobrazené části palety. Pokud má zdrojový obraz jinou hloubku, je zde vţdy nula. 18.11.3
I
Index odpovídající tlačítku pod kurzorem. Pro obrazy v indexových barvách bude tato hodnota pouţita jako index barvy pozadí. 18.11.4
Č
Červená sloţka barvy odpovídající tlačítku pod kurzorem. Pro obrazy ve 24-bitovém formátu bude tato barva pouţita jako aktuální barva. 18.11.5
Z
Zelená sloţka barvy odpovídající tlačítku pod kurzorem. Pro obrazy ve 24-bitovém formátu bude tato barva pouţita jako aktuální barva. 18.11.6
M
Modrá sloţka barvy odpovídající tlačítku pod kurzorem. Pro obrazy ve 24-bitovém formátu bude tato barva pouţita jako aktuální barva. 18.11.7
Zrušit
Zavřít dialog o nastavení aktuální barvy podle palety označeného obrazu beze změny této barvy.
18.12 Komentář Dialog umoţňující zadat nový komentář ke snímku. Komentář zdrojového obrazu se objevuje v pravé části dolní stavové lišty.
ZODOP
25
19. Funkce zobrazení V menu Zobrazit jsou tyto funkce:
19.1 Jedna ku jedné Zobrazit zdrojový obraz jedna ku jedné, tj. v měřítku 100%.
19.2 Zvětšit Zobrazit zdrojový obraz ve dvojnásobném měřítku neţ dosud.
19.3 Zmenšit Zobrazit zdrojový obraz v polovičním měřítku neţ dosud.
19.4 Zvětšit myší Po kliknutí myší zobrazit zdrojový obraz ve dvojnásobném měřítku neţ dosud.
19.5 Zmenšit myší Po kliknutí myší zobrazit zdrojový obraz v polovičním měřítku neţ dosud.
19.6 Změna měřítka vzhledem k Při změně měřítka, kdy původní i nový obraz mají posuvné lišty (scroll bars) se zachová jedna z 9 nastavených poloh bodu.
19.7 Lupa Zobrazit zdrojový obraz ve vybraném měřítku 25%, 50%, 100%, 200%, 400% nebo 800%. Při volbě jiná je moţné zadat jiné měřítko v procentech v povoleném rozsahu.
19.8 Obnovit Upraví rozměry obrazového okna tak, aby pokud moţno byly vynechány nevyuţité plochy okna a naopak zobrazeny případné zakryté části obrazu a poté obraz znovu vykreslí.
19.9 Informace o obrazu Zobrazí jednoduché dialogové okno s informacemi o zdrojovém obrazu. Po zmáčknutí tlačítka OK informace zmizí. Jsou zde tyto informace: Soubor : Jméno obrazu. Pokud byl obraz otevřen ze souboru nebo do něj uloţen, je shodné se jménem souboru. Text : Komentář k obrazu Šířka a výška : Rozměry obrazu v pixelech. Barva : ne znamená černobílý obraz s lineární černobílou paletou, ano jiný obraz. Bitů : Počet bitů na pixel (hloubka). Obdélník : Souřadnice levého horního rohu a rozměry obdélníku opsaného vybrané oblasti. Velikost : Počet bajtů obrazových dat bez komprese. Plocha : Počet pixelů obrazu. Velikost palety : Počet barev v paletě, pro které je přidělena paměť. Vybraná plocha : Počet pixelů vybrané oblasti. Souřadnice : dodatečné souřadnice definované v obrazu. Kromě údaje o ploše vybrané oblasti se nezjišťuje aktuální stav, ale vyuţívá se informací programu o obrazu. Pro vektorové obrazy by některé údaje neměly smysl, zobrazují se místo nich tyto : Velikot : Velikost souboru v bajtech. Min x, Min y, Min z, Max x, Max y a Max z : Rozsah souřednic v jednotlivých osách. Počet objektů : Počet objektů (samostatných bodů, úseček, mnohoúhelníků) v obrazu. Počet bodů : Počet bodů (samostatných bodů, konců úseček, vrcholů mnohoúhelníků) v obrazu.
26
ZODOP
Implicitní velikost : Rozměry obrazu v pixelech v měřítku 100%. U vícevrstvého obrazu je místo údaje o velikosti údaj o počtu vrstev.
19.10 Přehled polohy okna Jednoduchý dialog, ve kterém je znázorněn zdrojový obraz a rámeček, který se pohybuje během skrolování a tím znázorňuje aktuální polohu viditelné části obrazu. Najetím myší na náčrtek této plochy a zmáčknutím levého tlačítka je moţno pouţít tento dialog ke skrolování.
19.11 Plovoucí nástroje Dialogové okno obsahující tlačítka s ikonami některých funkcí. Pomocí poloţky „Plovoucí nástroje“ v menu je moţné ho buď zrušit nebo obnovit. V závorce je číslo kapitoly.
výběr oblasti (40.3) -
- definovaný výběr oblasti (40.2)
funkce laso (40.6) -
- kouzelná hůlka (40.7)
změna měřítka 2x (19.4) -
- kreslení čar (46)
částečně zpět (16.2) -
- částečně obnovit z disku (16.3)
vloţit text (45) -
- zpět (16.1)
zrušit poslední volbu (19.12) -
19.12 Zrušit poslední volbu Zrušit funkci zvolenou v okně „Plovoucí nástroje“ a přepnout na zobrazení informace o pixelu.
20. Dvouobrazové operace Jako dvouobrazové operace se zde označují operace, kdy hodnota pixelu výsledku se určuje z hodnot pixelů vstupních obrazů ve stejné pozici a neuvaţují se ostatní pixely těchto vstupních obrazů, tedy aritmetické a logické operace. Při inicializaci dialogu je jako 1. operand pouţit obraz označený jako zdrojový a jako 2. operand obraz označený jako druhý. Viz téţ Vstupní obrazy operací. Později je moţno tlačítky „<-Obraz“ učinit ze zdrojového obrazu podle potřeby nový 1. nebo 2. operand. Pokud je jeden ze vstupních obrazů v indexových barvách a druhý ve 24-bitovém formátu, rozdělí se první obraz podle palety na 3 sloţky, které se pouţijí jako argumenty zvolené operace. Výsledek je ve 24-bitovém formátu. Pokud mají oba obrazy stejný formát, má stejný formát i výsledek. Pokud jsou oba obrazy v indexových barvách, provede se operace s indexy, nikoli s hodnotami z palety. Pokud mají oba vstupní obrazy různé rozměry, pouţije se vţdy větší rozměr a druhý obraz je doplněn nulami.
ZODOP
20.1 součet Hodnota výsledku se určí jako
p
a b , c
kde
a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový, b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný, c je normalizační konstanta v rozsahu 1 aţ 2, implicitně 1.
20.2 rozdíl Hodnota výsledku se určí jako
p
a b , c
kde
a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový, b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný, c je normalizační konstanta v rozsahu 1 aţ 2, implicitně 1.
20.3 součin Hodnota výsledku se určí jako
p
a b , c
kde
a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový, b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný, c je normalizační konstanta v rozsahu 1 aţ 255, implicitně 255.
20.4 podíl Hodnota výsledku se určí jako
p
a c , pokud b 0 , jinak p 255 , b
27
28
ZODOP
kde
a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový, b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný, c je normalizační konstanta v rozsahu 1 aţ 255, implicitně 1.
20.5 smíchat Hodnota výsledku se určí jako
p
c a (100 c) b , 100
kde
a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový, b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný, c je normalizační konstanta v rozsahu 0 aţ 100, implicitně 50.
20.6 AND Hodnota výsledku se určí jako logický součin bit po bitu hodnot a a b , kde a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový,
b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný.
20.7 OR Hodnota výsledku se určí jako logický součet bit po bitu hodnot a a b , kde a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový,
b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný.
20.8 XOR Hodnota výsledku se určí jako výhradní logický součet bit po bitu hodnot
a a b,
kde
a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový, b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný.
20.9 min Hodnota výsledku se určí jako minimum hodnot a a b , kde a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový,
b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný.
20.10 max Hodnota výsledku se určí jako maximum hodnot a a b , kde a je hodnota prvního vstupu, získá se z obrazu označeného jako zdrojový,
b je hodnota druhého vstupu, získá se z obrazu označeného jako výsledný.
20.11 Znaménko Při potvrzení tohoto kontrolního tlačítka se budou hodnoty pixelu uvaţovat jako čísla se znaménkem v kódu posunutá nula v rozsahu -128, 127. Jinak se uvaţují jako čísla bez znaménka v rozsahu 0, 255.
20.12 Modulo
ZODOP
29
Při potvrzení tohoto kontrolního tlačítka se budou hodnoty výsledku při přetečení uvaţovat jako modulo maximální hodnota+1, tedy nebudou se uvaţovat významnější bity. Jinak se hodnoty větší neţ maximální hodnota nahradí maximální hodnotou a hodnoty menší neţ minimální hodnota se nahradí minimální hodnotou.
20.13 OK Provést zvolenou operaci.
20.14 Zrušit Ukončit dialog o dvouobrazových operacích.
20.15 Normalizační konstanta Editační okénko, kde je moţné zadat normalizační konstantu pouţívanou aritmetickými operacemi.
21. Histogram Dialog zobrazující histogram obrazu označeného jako zdrojový a umoţňující některé jeho úpravy. Je určen pro úpravu především černobílých snímků. S jistou opatrností ho lze pouţít i pro úpravu barevných snímků s plynulou paletou, ale paletu barevných snímků je lépe upravovat v dialogu Úprava palety. Černobílá paleta obsahující pouze různé odstíny šedi bude dále nazývána škála. Je moţné téţ upravovat barevné snímky ve 24-bitovém RGB módu, ale změny se objeví v obrazu teprve po provedení operace Provést. Histogram se počítá pouze na vybrané oblasti. Takto vypadá dialogové okno:
21.1 Počet Počet pixelů úrovně, na kterou ukazuje myš.
21.2 Úroveň
30
ZODOP
Úroveň obrazu, na kterou ukazuje myš.
21.3 Suma Podíl pixelů v procentech s úrovní menší nebo rovnou úrovni obrazu, na kterou ukazuje myš.
21.4 Histogram a paleta Rámeček s nakresleným histogramem a paletou. Při pohybu myší nad tímto rámečkem se v editačních okéncích Počet a úroveň objevuje souřadnice a hodnota histogramu. Kliknutím levou nebo pravou myší se nastavují parametry Dolní práh a Horní práh. Při velkém vodorovném zvětšení je moţné posuvnou lištou pod obrázkem nastavit část palety a rozsahu úrovní, se kterými se bude pracovat.
21.5 Dolní práh vlevo Parametr Dolní práh se posune na levý kraj (úroveň černé).
21.6 Dolní práh o 1 doleva Parametr Dolní práh se posune o 1 úroveň doleva.
21.7 Dolní práh o 1 doprava Parametr Dolní práh se posune o 1 úroveň doprava.
21.8 Dolní a horní práh o 1 k sobě Parametr Dolní práh se posune o 1 úroveň doprava a parametr Horní práh o 1 úroveň doleva.
21.9 Dolní a horní práh k sobě Parametry Dolní a Horní práh se posunou o půl cesty k sobě tak, ţe horní práh je o 1 úroveň vyšší neţ dolní práh.
21.10 Dolní a horní práh o 1 od sebe Parametr Dolní práh se posune o 1 úroveň doleva a parametr Horní práh o 1 úroveň doprava.
21.11 Horní práh o 1 doleva Parametr Horní práh se posune o 1 úroveň doleva.
21.12 Horní práh o 1 doprava Parametr Horní práh se posune o 1 úroveň doprava.
21.13 Horní práh doprava Parametr Horní práh se posune na pravý kraj (úroveň bílé).
21.14 L Parametr Dolní práh.
21.15 H Parametr Horní práh.
21.16 Lineární Lineární škála.
21.17 Lineární s 2 prahy Škála aţ do úrovně dané parametrem Dolní práh na úrovni černé, poté lineární aţ do úrovně dané parametrem Horní práh a odtud aţ do konce na úrovni bílé.
ZODOP
31
21.18 Vícenásobně
lineární
Periodická lineární škála, délka a úrovní daných parametry Dolní práh a
posunutí periody dané vzdáleností a posunutím Horní práh.
21.19 Optimální Škála optimalizující histogram snímku. Za optimální se povaţuje histogram co nejrovnoměrnější, kdy stupnice šedi je nejlépe vyuţita. V případě barevných obrázků v módu RGB se volí typ optimalizovaného histogramu pomocí komboboxu RGB. Optimalizace histogramu je zde totéţ co ekvalizace. Nová hodnota pixelu p se určuje jako
p
u s 1 1 h(i) h( s) A i 0 2
kde
h(i ) je hodnota histogramu pro úroveň šedi i s je stará hodnota pixelu, u je maximální hodnota pixelu (zpravidla 255, pro 16-bitové snímky 65535),
A je počet pixelů obrazu. Stará hodnota se tedy nahradí hodnotou kumulativního histogramu upravenou tak, aby hodnota konstantního obrazu byla polovina maximální, tedy 128. V případě, ţe zvolíme parametry Horní práh a Dolní práh odlišné od implicitních, počítá se výsledek jako váţený průměr obrazu s optimalizovaným histogramem s vahou (Horní práh – Dolní práh)/u a původního obrazu s vahou 1-(Horní práh – Dolní práh)/u.
21.20 Prahovací s 2 prahy V obrázku se objeví pouze 2 tóny, tón úrovně bílé pro hodnoty pixelů mezi prahy danými parametry Dolní práh a Horní práh (větší nebo rovné dolní a menší neţ horní) a tón úrovně černé pro hodnoty pixelů mimo prahy.
21.21 Prahovací V obrázku se objeví pouze 2 tóny, tón úrovně bílé pro hodnoty pixelů větší nebo rovné prahu danému parametrem Dolní práh a tón úrovně černé pro hodnoty pixelů menší neţ Dolní práh.
21.22 Exponenciální Exponenciální škála v rozmezí hodnot
daných parametry Dolní práh a Horní práh.
21.23 Logaritmická Logaritmická škála v rozmezí hodnot
21.24 Uţivatelská
daných parametry Dolní práh a Horní práh.
32
ZODOP
Škála daná uţivatelem kreslenou funkcí. Funkci lze kreslit ve dvou reţimech. V prvním z nich zmáčkneme levé tlačítko myši a během jeho drţení kreslíme, ve druhém zmáčkneme klávesu Shift a klikneme levou myší ve vybraných bodech funkce. Mezi těmito body je potom funkce doplněna lineární interpolací.
21.24.1
Rámeček
V tomto rámečku se objevuje uţivatelem kreslená funkce. 21.24.2
I:
Úroveň, na kterou ukazuje myš. 21.24.3
F:
Hodnota funkce v úrovni, na kterou ukazuje myš. 21.24.4
Uloţit
Uloţit uţivatelem nakreslenou funkci do textového souboru. Doporučuje se uţívat soubory s příponou „.fun“. V případném hlášení o chybě při pokusu otevřít dialog pro zjištění jména souboru se můţe vyskytnout chybový kód (viz). 21.24.5
Přečíst
Přečíst uţivatelem nakreslenou funkci z textového souboru. V případném hlášení o chybě při pokusu otevřít dialog pro zjištění jména souboru se můţe vyskytnout chybový kód (viz). 21.24.6
Editor
Umoţní editovat hodnoty uţivatelem nakreslené funkce předtím uloţené v souboru. Při pokusu o spuštění vnějšího procesu s textovým editorem se v případném hlášení o chybě můţe vyskytnout chybový kód (viz). 21.24.7
Volba sloţky
Pokud se pracuje s barevným obrázkem v módu RGB a je zvolena práce s kaţdou barevnou sloţkou zvlášť (volba RGB v komboboxu RGB), objeví se zde kombobox, umoţňující volbu sloţky, se kterou se bude pracovat. Moţnosti jsou R – červená, G – zelená, B – modrá.
ZODOP 21.24.8
33
OK
Zrušit dialog o uţivatelem kreslené funkci, přičemţ tato funkce bude pouţita. 21.24.9
Zrušit
Zrušit dialog o uţivatelem kreslené funkci, přičemţ tato funkce nebude pouţita.
21.25 RGB Tento kombobox se objevuje jen při práci s barevnými obrázky v RGB módu. Je zde moţno zvolit, s jakým histogramem se v tom případě bude pracovat. Volí se z následujících moţností:
RGB – Pracuje se s kaţdou ze tří základních barev samostaně. Jsou zobrazeny tři barevné překrývající se histogramy a kaţdá operace je aplikována na kaţdou barevnou sloţku zvlášť.
R+G+B – pracuje se se součtem histogramů tří barevných sloţek.
Y – pracuje se s jasem. Obraz je převeden do souřadnic YHS, operace je provedena na jasové sloţce Y a obraz je převeden zpět do RGB.
R – pracuje se pouze s červenou sloţkou.
G – pracuje se pouze se zelenou sloţkou.
B – pracuje se pouze s modrou sloţkou.
21.26 Inverze Při potvrzení se zvolená škála bude pouţívat inverzně.
21.27 Vyhladit Histogram se zobrazí vyhlazený. Pouţije se třikrát filtr typu klouzavý průměr 3 hodnot.
21.28 Černá Úroveň černé bude tato hodnota. Hodnoty škály leţí mezi úrovní černé a úrovní bílé.
21.29 Bílá Úroveň bílé bude tato hodnota. Hodnoty škály leţí mezi úrovní černé a úrovní bílé.
21.30 Gama Převodní charakteristika obrazovky monitoru obvykle není lineární, ale přibliţně kvadratická I k U g , I je jas obrazovky, k převodní konstanta, U napětí katody, g koeficient s hodnotou přibliţně 2. Tento jev se kompenzuje tzv. korekcí gama
U U v ,
U v je vstupní napětí odpovídající hodnotě pixelu, je kompenzační koeficient gama, obvykle s hodnotou 0.5. Pokud je u daného monitoru tato hodnota jiná, pokud není dobře kompenzována nebo pokud by uţivatel chtěl zobrazit snímek s jinou hodnotou koeficientu gama, lze pouţít tuto funkci. Hodnota škály f pro daný index i je dána
i s f 255 , 255
s je stará hodnota koeficientu gama, implicitně 0.5, takţe pro tuto hodnotu je škála lineární. Nová hodnota koeficientu musí být větší nebo rovna 0.2 a menší nebo rovna 1. 21.31 Měřítko
34
ZODOP
Pokud bude v tomto editačním okénku hodnota s, hodnoty histogramu se zobrazí v rozmezí 0 aţ 1024s pixelů v jednotlivých úrovních. Vodorovná čára mříţky bude vţdy po čtvrtině nejbliţší niţší mocniny dvou k hodnotě 1024s. Např. pro s=3 bude rozsah histogramu 3072 a čáry budou po 512.
21.32 Měřítko dvakrát zmenšit Měřítko histogramu se dvakrát zmenší.
21.33 Měřítko dvakrát zvětšit Měřítko histogramu se dvakrát zvětší.
21.34 Měřítko vodorovně Počet úrovní, které se zobrazí najednou v rámečku.
21.35 Měřítko vodorovně dvakrát zmenšit Vodorovné měřítko histogramu se dvakrát zmenší.
21.36 Měřítko vodorovně dvakrát zvětšit Vodorovné měřítko histogramu se dvakrát zvětší.
21.37 Obnovit Histogram aktuálního obrazu se znovu spočítá a vykreslí.
21.38 Pozice Pokud je měřítko vodorvně malé, nevejdou se všechny úrovně do rámečku. Posuvnou lištou v dolní části rámečku s histogramem je moţno vybrat, které úrovně se budou zobrazovat. V tomto editačním poli je pak nejniţší zobrazovaná pozice. Je moţné ho vyplnit i z klávesnice.
21.39 Volba sloţky Tento kombobox se objeví pouze u obrazů ve 24-bitovém RGB módu a umoţňuje zadat, se kterou sloţkou se bude pracovat. Při volbě RGB (implicitně) se zobrazí součet histogramů sloţek, při volbě Y se zobrazí histogram jasu, při obou volbách se operace provedou na všech třech sloţkách. Při volbě R, G nebo B se zobrazí histogram pouze červené, zelené nebo modré sloţky a operace se provádějí pouze na ní. Výsledek operací se objeví teprve po zmáčknutí tlačítka Provést.
21.40 Meze Barva levého barevného tlačítka vlevo od tohoto editačního okénka se pouţije jako úroveň černé a barva pravého barevného tlačítka vlevo od tohoto editačního okénka se pouţije jako úroveň bílé.
21.41 Levé barevné tlačítko Zde definovaná barva je barva svislé čáry definující hodnotu parametru Dolní práh. Pomocí parametru meze ji lze také pouţít jako barvu úrovně černé.
21.42 Pravé barevné tlačítko Zde definovaná barva je barva svislé čáry definující hodnotu parametru Horní práh. Pomocí parametru meze ji lze také pouţít jako barvu úrovně bílé.
21.43 Mříţka Při potvrzení se pod kresbou histogramu objeví mříţka. Vzdálenost čar vodorovně je 32 úrovní, svisle viz měřítko.
21.44 Zamknout Při potvrzení je vzdálenost parametru Dolní práh a Horní práh pevně daná a při změně jednoho z parametrů se druhý nastaví tak aby byla zachována.
21.45 Soubory
ZODOP
35
Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na zvolených souborech se provede předvolená úprava histogramu. Pokud zvolíte před zmáčknutím tohoto tlačítka tlačítko optimální histogram, počítá se pro kaţdý soubor histogram znovu a z něj se určuje optimální přepočet histogramu. Zpracování jednoho souboru přibliţně odpovídá činnosti při zmáčknutí tlačítka provést. Vpravo od tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
21.46 Editor Histogram se zapíše do textového souboru „histo.tmp“ a zavolá se textový editor umoţňující editaci tohoto souboru. Při pokusu o spuštění vnějšího procesu s textovým editorem se v případném hlášení o chybě můţe vyskytnout chybový kód (viz).
21.47 Šedá Do zdrojového obrazu se vloţí lineární šedotónová paleta pro černobílé snímky.
21.48 OK Ukončit dialog o histogramu, přičemţ zvolená škála bude pouţita.
21.49 Provést Hodnoty v obrázku se změní podle zvolené škály a obrázku bude vrácena původní škála tak, ţe vzhled obrazu zůstane podle nové škály. Ovšem změny hodnot se provedou pouze ve vybrané oblasti.
21.50 Ukončit Ukončit dialog o histogramu, přičemţ zvolená škála nebude pouţita.
21.51 Min. Minimální hodnota pixelu v obrázku.
min g (i, j ) , i, j
g (i, j ) je hodnota indexu v bodě (i, j ) , hodnoty i, j jdou přes vybranou oblast.
21.52 Max. Maximální hodnota pixelu v obrázku.
max g (i, j ) , i, j
g (i, j ) je hodnota indexu v bodě (i, j ) , hodnoty i, j jdou přes vybranou oblast.
21.53 Střed. h. Střední hodnota pixelů v obrázku.
1 1 255 g ( i , j ) i h(i) , A i, j A i 0 g (i, j ) je hodnota indexu v bodě (i, j ) , hodnoty i, j jdou přes vybranou oblast, A je její plocha, h(i) je histogram.
21.54 Standard. o. Odhad standardní odchylky pixelů v obrázku od střední hodnoty
1 ( g (i, j ) ) 2 A 1 i, j
.
1 255 (i ) 2 h(i) , A 1 i 0
g (i, j ) je hodnota indexu v bodě (i, j ) , hodnoty i, j jdou přes vybranou oblast, A je její plocha, h(i) je histogram.
36
ZODOP
21.55 Median Median hodnot pixelů v obrázku.
x y , 2 x A A x max x : 1 max x : h(i ) , 2 i , j:g (i , j ) x 2 i 0
x A A y max x : 1 max x : h(i ) , 2 i , j:g (i , j ) x 2 i 0 g (i, j ) je hodnota indexu v bodě (i, j ) , hodnoty i, j jdou přes vybranou oblast, A je její plocha, h(i) je histogram.
21.56 Opt. práh Optimální práh vypočtený Otsuovou metodou (N. Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9: 62–66.). Tento práh t je úroveň jasu, při které nastává maximum výrazu
b2 (t ) 1 (t )2 (t )(1 (t ) 2 (t )) 2 , kde 1 (t ) je procento podprahových pixelů, 2 (t ) je procento nadprahových pixelů, 1 (t ) střední hodnota podprahových pixelů a 2 (t ) je střední hodnota nadprahových pixelů.
je
22. Úprava palety Dialog zajišťující úpravy palety, tedy barevné vyhledávací tabulky. Většina operací má smysl pouze pro obrazy v indexových barvách. Jediná operace, která se provede i na obrazu ve 24-bitovém formátu je převod na černobílý (tlačítko Jas). Takto vypadá dialogové okno:
22.1 pole tlačítek barev Toto pole tlačítek obsahuje pro kaţdý index jedno tlačítko mající barvu odpovídající příslušnému indexu. Klikneme-li na něj levou myší, objeví se dialog pro volbu barvy umoţňující zadání nové barvy pro příslušný index. V editačních okéncích I, Č, Z a M se objevuje index odpovídající tlačítku a obsah červené, zelené a modré v příslušné barvě. 22.1.1
Pozice
Pokud je zdrojový obraz 16-bitový, je v tomto poli index první zobrazené barvy a je moţné zde vyplnit jiný začátek zobrazené části palety. Pokud má zdrojový obraz jinou hloubku, je zde vţdy nula.
ZODOP
37
22.2 I Index barvy odpovídající tlačítku barvy na něţ ukazuje myš.
22.3 Č Obsah červené v barvě odpovídající tlačítku barvy na něţ ukazuje myš.
22.4 Z Obsah zelené v barvě odpovídající tlačítku barvy na něţ ukazuje myš.
22.5 M Obsah modré v barvě odpovídající tlačítku barvy na něţ ukazuje myš.
22.6 Šedá Objeví se paleta pro černobílé snímky. Délka implicitně odpovídá hloubce obrazu, ale je moţné v políčcích Počátek a Délka nastavit kratší.
22.7 Masky Objeví se paleta pro obrázek, kde různé bity indexu určují jednu ze tří základních barev. Délka implicitně odpovídá hloubce obrazu, ale je moţné v políčcích Počátek a Délka nastavit kratší, nevhodně stanovený počátek však můţe porušit maskovací charakter palety. Ze zadané délky se nejprve spočte nejbliţší niţší mocnina dvou a její exponent se vydělí třemi. Tím dostaneme počet bitů na jednu barvu. Pokud je zbytek po dělení jedna, je přebytečný bit pouţit pro zelenou barvu, pokud je zbytek dva, jsou přebytečné bity pouţity pro zelenou a červenou barvu. Pokud délka není mocnina dvou, je zbytek palety vyplněn stupnicí šedi. Pro 8-bitové obrázky s délkou palety 256 tak vznikne paleta, kde 3 nejvýznamnější bity indexu jsou 3 nejvýznamnější bity červené sloţky, 3 prostřední bity indexu jsou 3 nejvýznamnější bity zelené sloţky a 2 nejméně významné bity indexu jsou 2 nejvýznamnější bity modré sloţky, tzv. paleta 3-3-2. Podobně pro 16-bitové obrázky s délkou palety 65536 vznikne paleta 5-6-5.
22.8 Stejné masky Objeví se paleta podobná paletě Masky, s tím rozdílem, ţe pro kódování všech tří základních barev je pouţit stejný počet bitů, takţe pro 8-bitové obrázky s dělkou palety 256 vznikne paleta 2-2-2 a pro 16bitové obrázky s délkou palety 65536 vznikne paleta 5-5-5.
22.9 Systémová
38
ZODOP
Objeví se paleta s rovnoměrně rozdělenými černobílými a barevnými tóny. Délka implicitně odpovídá hloubce obrazu, ale je moţné v políčcích Počátek a Délka nastavit kratší. Ze zadané délky se nejprve spočte třetí odmocnina a zaokrouhlí se dolu. To je maximální počet úrovní jedné ze tří základních barev. Začátek palety je vyplněn stupnicí šedi. Pro 8-bitové obrázky s dělkou palety 256 tak vznikne paleta s rovnoměrně rozdělenými 40 černobílými a 216 barevnými tóny (6 úrovní na barvu), pro 16bitové obrázky s délkou palety 65536 vznikne paleta s rovnoměrně rozdělenými 1536 černobílými a 64000 barevnými tóny (40 úrovní na barvu).
22.10 Spektrální Objeví se paleta přiřazující snímku pseudobarvy podle spektra (několika málo indexům téţ černou a barvy blízké černé). Paleta má pevnou délku 256 barev.
22.11 Teplotní Objeví se paleta vhodná pro infračervené snímky. Tato paleta se čte ze souboru „thermo.lut“ v adresáři uvedeném v inicializačním souboru. Paleta má pevnou délku 256 barev.
22.12 Tónová Objeví se paleta se 16 tóny v různých jasech a sytostech. Tato paleta se čte ze souboru „hue.lut“ v adresáři uvedeném v inicializačním souboru. Pokud rozdělíte barevný obraz na YHS (viz kap. 25, Rozdělit na YHS) a přiřadíte komponentě H tuto paletu, získáte obraz, kde kaţdá barva byla změněna na barvu se stejným tónem jako původní, ale s maximálním jasem a sytostí. Paleta má pevnou délku 256 barev.
22.13 Pastelová Objeví se paleta s pastelovými barvami. Tato paleta se čte ze souboru „pastel.lut“ v adresáři uvedeném v inicializačním souboru. Paleta má pevnou délku 256 barev.
22.14 Země Objeví se paleta vhodná pro snímky Země. Tato paleta se čte ze souboru „earth.lut“ v adresáři uvedeném v inicializačním souboru. Paleta má pevnou délku 256 barev.
22.15 Náhodná Objeví se náhodná paleta. Červené, zelené a modré sloţky barev se vyplní nezávislými realizacemi náhodné (pseudonáhodné) proměnné s rovnoměrným rozdělením od 0 do 255. Vyplní se jimi část palety od indexu Počátek v délce Délka.
22.16 Kopírovat Část palety počínaje indexem Počátek v délce dané parametrem Délka je zkopírována do úseku počínaje parametrem Délka části / Cíl.
22.17 Přesunout Část palety počínaje indexem Počátek v délce dané parametrem Délka je přesunuta do úseku počínaje parametrem Délka části / Cíl. Barvy v původním úseku jsou nahrazeny černou.
22.18 Zaměnit Část palety počínaje indexem Počátek v délce dané parametrem Délka je vzájemně zaměněna za část palety počínaje indexem Délka části / Cíl.
22.19 Rozšíření Paleta je rozšířena tak, ţe počet barev daný parametrem Délka části / Cíl je roztaţen na počet daný parametrem Délka. Vzniklé mezery jsou doplněny lineární interpolací. Rozšiřování začíná indexem Počátek. Pokud tedy příslušným tlačítkem vytvoříte nějakou paletu s pevnou délkou 256 barev a zachováte implicitní hodnoty pro 16-bitový obrázek Počátek=0, Délka=65536 a Délka části / Cíl=256, vznikne po zmáčknutí tlačítka Rozšíření verze palety pro 16-bitový obrázek.
22.20 Opakování
ZODOP
39
Paleta je rozdělena na části, které jsou vyplněny barvou na začátku části. Části na sebe plynule navazují, první začíná indexem Počátek, délku jedné části udává parametr Délka části / Cíl a délku celého zpracovávaného úseku udává parametr Délka.
22.21 Interpolace Paleta je rozdělena na části, které jsou vyplněny barvami získanými lineární interpolací mezi barvou na začátku části a barvou na začátku následující části. Pokud úsek přesahuje paletu, uvaţuje se jako poslední interpolační barva poslední barva palety. Části na sebe plynule navazují, první začíná indexem Počátek, délku jedné části udává parametr Délka části / Cíl a délku celého zpracovávaného úseku udává parametr Délka.
22.22 Počátek Index na začátku úseku operace s paletou.
22.23 Délka Délka úseku operace s paletou.
22.24 Délka části / Cíl Délka části úseku operace s paletou. Při přesunovacích operacích (Kopírovat, Přesunout a Zaměnit) index na začátku cílového úseku operace.
22.25 počet úrovní Sníţení počtu úrovní na zvolenou hodnotu. Radiotlačítko pracuje stejně jako tlačítko Opakování při zadání parametrů Počátek = 0, Délka = 256 a Délka části / Cíl = 256/Zvolený počet úrovní. Tyto parametry jsou také tímto radiotlačítkem nastavovány. Chcete-li zkoušet podobu obrázku při různém počtu úrovní, doporučuje se před kaţdým dalším zmáčknutím radiotlačítka s počtem úrovní zmáčknout tlačítko Zpět, protoţe jinak by nebylo moţné počet úrovní zvýšit na původní hodnotu.
22.26 Přečíst Čtení palety ze souboru. V současné době jsou podporovány 2 formáty souborů s paletou s těmito příponami: „.lut“ binární paleta „.pal“ textová paleta. Binární paleta je uloţena binárně, vţdy 3 po sobě jdoucí bajty udávají hodnoty červené, zelené a modré sloţky příslušné barvy, takţe paleta délky 256 zabírá 768 bajtů. V textové paletě po hlavičce následuje délka palety hexadecimálně a dekadicky a na dalších řádcích hodnoty červené, zelené a modré sloţky příslušné barvy uloţené znakově (ASCII). Hodnoty v tomto souboru je moţné podle potřeby editovat. Je také moţné přečíst paletu z obrazu ve formátu, který paletu obsahuje. V současné době jsou k dispozici formáty s těmito příponami: „.tif“ formát TIFF „.bmp“ formát BMP pro bitmapy ve Windows „.gif“ formát GIF Viz téţ Formátové zásuvné moduly. V případném hlášení o chybě při pokusu otevřít dialog pro zjištění jména souboru se můţe vyskytnout chybový kód (viz).
22.27 Uloţit Zápis palety do souboru. Jsou podporovány stejné formáty palety jako při čtení, tedy v současné době 2 formáty s těmito příponami: „.lut“ binární paleta „.pal“ textová paleta. V případném hlášení o chybě při pokusu otevřít dialog pro zjištění jména souboru se můţe vyskytnout chybový kód (viz).
40
ZODOP
22.28 Zpět Vrátí zpět paletu, která byla před poslední operací.
22.29 Seřadit Seřadí část palety od indexu Počátek v délce Délka podle kritérií uvedených v kombinovaných editačních okéncích pod tlačítkem. Pokud jsou dvě barvy stejné podle prvního kritéria, pouţije se druhé, pokud jsou stejné i podle druhého, pouţije se třetí. Paletu lze seřadit podle jasu Y, tónu H, sytosti S, obsahu červené R, zelené G nebo modré B. Hodnoty R, G a B jsou uloţeny v paletě, výpočet jasu, tónu a sytosti viz kap. Rozdělit na YHS (25).
22.30 Seřadit 1) První kritérium, podle kterého se řadí barvy při zmáčknutí tlačítka Seřadit.
22.31 Seřadit 2) Druhé kritérium, podle kterého se řadí barvy při zmáčknutí tlačítka Seřadit.
22.32 Seřadit 3) Třetí kritérium, podle kterého se řadí barvy při zmáčknutí tlačítka Seřadit.
22.33 Invertovat Obrátit pořadí barev v části palety od indexu Počátek v délce Délka.
22.34 Uţít novou Na začátku dialogu se uloţí paleta zdrojového obrázku. Při volbě této funkce se pro kaţdý index najde v nové paletě index barvy, která je nejbliţší příslušné barvě v původní paletě. Vyhodnocuje se v RGB prostoru podle Euklidovské vzdálenosti. Poté se ve vybrané oblasti zdrojového obrazu vymění indexy za nově nalezené. Výsledkem je obraz s novou paletou, ale s barvami co nejpodobnějšími původním.
22.35 Uţít starou Na začátku dialogu se uloţí paleta zdrojového obrázku. Při volbě této funkce se pro kaţdý index najde v původní paletě index barvy, která je nejbliţší příslušné barvě v nové paletě. Vyhodnocuje se v RGB prostoru podle Euklidovské vzdálenosti. Poté se ve vybrané oblasti zdrojového obrazu vymění indexy za nově nalezené. Výsledkem je obraz se starou paletou, ale s barvami co nejpodobnějšími barvám, které měl obraz v nové paletě.
22.36 Jas Pro kaţdý index se najde jas Y barvy
Y 0.299R 0.587G 0.114B, vytvoří se černobílá paleta a ve vybrané oblasti zdrojového obrazu se vymění indexy za nalezené hodnoty jasu. Výsledkem je černobílý obraz odpovídající jasu původního.
22.37 Soubory Pod tlačítky Uţít novou a Jas jsou tlačítka Soubory. Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na zvolených souborech se provede operace podle tlačítka nad nimi, tedy buď Uţít novou nebo Jas. Mezi tlačítky se v okénku objevuje počet uţ zpracovaných souborů.
22.38 OK Zrušit dialog o úpravě palety, přičemţ nová paleta zůstane zachována.
22.39 Zrušit Zrušit dialog o úpravě palety, přičemţ obrazu se vrátí původní paleta.
ZODOP
41
23. Spojit Dialog spojí 3 černobílé obrazy v 8-bitovém formátu do jednoho ve 24-bitovém RGB formátu. Z případných obrazů v indexových barvách uvaţuje pouze indexy. Rozměry výsledku určí jako minimum rozměrů vstupů. Na začátku dialog prohledá otevřené obrazy a vyplní se prvními třemi černobílými 8-bitovými obrazy se stejnými rozměry jako vybraný, které nalezne. Pokud takové nejsou, vyplní se prvními třemi nalezenými obrazy, pokud nejsou ani ty, zůstane nevyplněn. Vstupní obrazy je moţno potom zadat dodatečně pomocí tlačítek <-Obraz. Je moţno zvolit, zda vstupní obrazy jsou povaţovány za sloţky RGB nebo YHS. Takto vypadá dialogové okno:
23.1 Č Jméno obrazu, který bude pouţit jako červený vstupní kanál. V případě volby YHS je zde jasový vstupní kanál. Vyplňuje se pomocí tlačítka <-Obraz vpravo za editačním okénkem.
23.2 Z Jméno obrazu, který bude pouţit jako zelený vstupní kanál. V případě volby YHS je zde vstupní kanál tónu. Vyplňuje se pomocí tlačítka <-Obraz vpravo za editačním okénkem.
23.3 M Jméno obrazu, který bude pouţit jako modrý vstupní kanál. V případě volby YHS je zde vstupní kanál sytosti. Vyplňuje se pomocí tlačítka <-Obraz vpravo za editačním okénkem.
23.4 A Pokud bude toto políčko vyplněno jménem obrazu, vytvoří se obraz s hloubkou 32 bitů. Tento obraz pak bude pouţit jako čtvrtý pomocný vstupní kanál, který se nepouţívá při zobrazení obrazu. Vyplňuje se pomocí tlačítka <-Obraz vpravo za editačním okénkem. Implicitně zůstává políčko prázdné a vytvoří se obraz s hloubkou 24 bitů.
23.5 Č<-obraz Vybraný obraz se pouţije jako červený vstupní kanál (jas).
23.6 Z<-obraz Vybraný obraz se pouţije jako zelený vstupní kanál (tón).
23.7 M<-obraz Vybraný obraz se pouţije jako modrý vstupní kanál (sytost).
23.8 A<-obraz Vybraný obraz se pouţije jako čtvrtý pomocný vstupní kanál.
23.9 RGB Při potvrzení tohoto radiotlačítka jsou vstupní obrazy povaţovány za sloţky červená (R), zelená (G) a modrá (B) výsledku.
42
ZODOP
23.10 YHS Při potvrzení tohoto radiotlačítka jsou vstupní obrazy povaţovány za sloţky jas (Y), tón (H) a sytost (S) výsledku. Tyto sloţky jsou napřed následujícím způsobem přepočteny do RGB a poté spojeny. Pokud je Y=0, je výsledkem černá (R=G=B=0), pokud je Y=255, je výsledkem bílá (R=G=B=255). V ostatních případech se pokračuje výpočtem směrnice v prostoru modré a červené rozdílové sloţky
k
(0.587 0114 . ) tan(h) (0.587 0114 . ) 3 (2 0.587 0.299) tan(h) 0.299) 3
, kde
h 2
H , 255
koeficientu pro přepočet modré na zelenou
gk
0114 . 0.299 k 0.587
a poměrného koeficientu jasu
yk
Y . Y 255
Sestaví se vektor
p 1 y k
gk k
gk yk k
1 k
yk k
a vektor převrácených hodnot
1 , i 1, 2, ..., 6, pi v případě, ţe k 0 , k nebo g k 0 je nutno určit vektory jinak pi
p 0 0 g k g k y k 1 y k 1 1 1 p 0 0 1 gk gk yk yk k : g k 0.299 / 0.587 p 1 y k g k g k y k 0 0 1 1 1 . p 1 0 0 . yk gk gk yk 1 yk g k 0: p 1 y k 0 0 k k 1 k p 1 0 0 k yk yk Pro další výpočet se pouţije buď maximum ze záporných prvků vektoru p nebo minimum z kladných prvků vektoru p . Rozhoduje se podle hodnoty tónu vzhledem k hranici k 0: g k 0114 . / 0.587
. 0.587 0114 h1 arctan 3 0.587 0114 . m
max
i 1, 2,..., 6
pi; pi 0h1 h h1
min
i 1, 2,..., 6
Výsledné řešení pak je
pi; pi 0
h h1
.
h h1
R Y (1 s p1m), G Y (1 s p3 m), B Y (1 s p5 m) , kde s je sytost
přepočtená do intervalu <0,1>:
ZODOP
43 s
S . 255
Při potvrzení tohoto radiotlačítka jsou vstupní obrazy povaţovány za sloţky jas (Y), tón (H) a sytost (S) výsledku. Tyto sloţky jsou napřed následujícím způsobem přepočteny do RGB a poté spojeny.
23.11 32 -> 24 Převede 32-bitový obraz na 24-bitový. Není tedy nutno rozkládat obraz na RGB, mazat čtvrtý kanál a znovu je spojovat. Dialog se poté zruší.
23.12 24 -> 32 Převede 24-bitový obraz na 32-bitový. Není tedy nutno rozkládat obraz na RGB, vytvářet čtvrtý kanál a znovu je spojovat, nicméně toto je nutné, pokud čtvrtý kanál nemá být prázdný. Dialog se poté zruší.
44
ZODOP
23.13 OK Provést spojení obrazů a zrušit dialog o něm.
23.14 Zrušit Zrušit dialog o spojení obrazů.
24. Rozdělit na RGB Rozdělí barevný obraz na 3 černobílé obrazy v 8-bitovém formátu vyjadřující jednotlivé barevné sloţky červenou, zelenou a modrou neboli RGB. Pokud je vstupní obraz v indexových barvách, obsahují výsledné obrazy hodnoty z palety odpovídající příslušnému indexu. Pokud byl vstupní obraz 32-bitový, objeví se ještě čtvrtý obraz s pomocným kanálem.
25. Rozdělit na YHS Rozdělí barevný obraz na 3 černobílé obrazy v 8-bitovém formátu vyjadřující jednotlivé barevné sloţky v souřadnicích YHS, neboli jas, tón a sytost. Pokud je vstupní obraz v indexových barvách, obsahují výsledné obrazy hodnoty z palety odpovídající příslušnému indexu. Pokud byl vstupní obraz 32-bitový, objeví se ještě čtvrtý obraz s pomocným kanálem. Ve zvolených souřadnicích je sytost volena tak, aby se pro kaţdý tón pohybovala v celém intervalu <0,255> , coţ je výhodné pro práci s ní, nevýhodou je poměrně obtíţný přepočet zpět do RGB. Sloţky jas Y, tón H a sytost S se získají ze sloţek červené R, zelené G a modré B následovně: Jas: Tón:
Y 0.299 R 0587 . G 0114 . B,
u 2R G B v (G B) 3 v h arctan u 0 u v h arctan u0 u h je potom přepočteno do intervalu 0, 2 , tzn. pokud je záporné, připočte se 2 . V případě u 0 je pro v 0 h 0 jinak h . Jako výsledek se pouţije hodnota H
255 h 2
Sytost:
Y R R Y Y G G Y Y B B Y S 255 max , , , , , , 255 Y Y 255 Y Y 255 Y Y pokud je Y=0 nebo Y=255, je sytost nulová. V případě potřeby je moţné dodat program s jinými koeficienty jasu červené, zelené a modré (standardně 0.299, 0.587 a 0.114). Součet koeficientů jasu by však pro korektnost výpočtu měl být roven jedné.
ZODOP
45
26. RGB->Index Dialog převede obraz ve 24-bitovém RGB formátu na 8-bitový obraz v indexových barvách.
26.1 Systémová paleta Pouţije se paleta s pravidelně rozmístěnými černobílými a barevnými odstíny, umoţňující rychlý převod. Při implicitním počtu 256 barev paleta obsahuje 40 černobílých a 216 barevných odstínů.
26.2 Adaptivní Vytvoří se paleta obsahující nejčastější barvy ve vstupním snímku. Je moţné zvolit další parametry převodu: Počet výsledných barev, Počet rozlišovaných úrovní vstupů a Dithering. Pokud je ve vstupním obrazu vybraná oblast, uvaţují se pouze barvy vyskytující se v této oblasti. Údaj o počtu barev nalezených v obrazu, který se objevuje dole v dialogu, se vztahuje k nastavenému počtu úrovní vstupu.
26.3 barev Počet barev ve výsledné paletě. Implicitně 256. Pokud je v obrazu nalezeno méně barev, obsahuje paleta pouze barvy nalezené v obrazu. Pokud je zadáno více barev neţ 256, vytvoří se 16-bitový obraz.
26.4 úrovní vstupů Počet rozlišovaných úrovní jednotlivých sloţek vstupního obrazu. Implicitně 64, coţ je hodnota, při které se v naprosté většině obrazů nalezne dostatek barev a zároveň je moţno pouţít rychlejší algoritmus převodu. Pokud je při této hodnotě nalezeno málo barev, je moţné se pokusit nastavením vyšší hodnoty (128 nebo 256) nalézt v obrazu více barev.
26.5 Dithering Při počtu úrovní vstupů menším nebo rovném 64 je moţno povolit dithering, tzn. pokud nelze určitý pixel převést dostatečně přesně, změní se okolní pixely tak, ţe výsledný obraz při pohledu z dálky vypadá přesněji převedený.
26.6 Zákaznická Při převodu se pouţije paleta nahraná ze zvoleného souboru. Je moţné pouţít soubor s binární paletou s příponou „.lut“ nebo s textově uloţenou paletou s příponou „.pal“. Jméno souboru se objeví v editačním okénku vpravo. Počet barev, do kterých se převádí, závisí na délce palety v souboru.
26.7 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a obrazy ve zvolených souborech se převedou do indexových barev podle parametrů zvolených v dialogu. Protoţe se ukládá ve stejném formátu ze kterého se četlo, musí pouţitý formát souborů umoţnit uloţení jak vstupních obrazů v RGB, tak výstupních v indexových barvách. Počet formátů je tím značně limitován. Mezi tlačítky se v okénku objevuje počet uţ zpracovaných souborů.
26.8 OK
46
ZODOP
Provést převod obrazu a zrušit dialog o něm.
26.9 Zrušit Zrušit dialog o převodu obrazu.
27. Index-> RGB Převede obraz v indexových barvách na obraz ve 24-bitovém RGB formátu.
28. Soubory Index-> RGB Objeví se dialog pro volbu souborů a zvolené soubory se převedou z indexových barev do 24-bitového RGB formátu.
29. Zabalit / Rozbalit Změna počtu bitů na pixel. Nelze pouţít pro větší počet bitů na pixel neţ 16.
29.1 Počet bitů na pixel Ţádaný počet bitů na pixel můţe být 1, 2, 4, 8 nebo 16.
29.2 Určit nejvyšší pouţitý bit Nejvyšší pouţitý bit v obrazu s větším počtem bitů na pixel (bez ohledu na to, zda je vstupní nebo výstupní). Pokud se počet bitů na pixel zmenšuje, je vhodné ho určit tlačítkem Určit nejvyšší pouţitý bit. Můţe být v rozsahu 0 aţ 15.
29.3 Určit nejvyšší pouţitý bit Tímto tlačítkem lze určit, který nejvyšší bit je ve vstupním obrazu skutečně pouţit. Pokud potom tlačítkem OK převedete obraz na niţší počet bitů na pixel, odříznou se pouze méně významné bity a přitom daný rozsah hodnot bude vyuţit optimálně.
29.4 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a obrazy ve zvolených souborech se převedou na jiný počet bitů na pixel podle parametrů zvolených v dialogu. Mezi tlačítky se v okénku objevuje počet uţ zpracovaných souborů.
29.5 OK Provést nastavenou změnu počtu bitů na pixel.
29.6 Zavřít
ZODOP
47
Zrušit dialog o změně počtu bitů na pixel.
30. Profil Tento dialog vykresluje profily a jejich gradienty (tj. diference profilů) do obrazového okna. Vykreslí se informace z horního krajního řádku a levého krajního sloupce vybraného obdélníku (viz výběr obdélníku).
30.1 Jas (gradient) Pokud je potvrzeno kontrolní tlačítko Jas nebo Jas a Gradient současně, tak po zmáčknutí tlačítka Provést se objeví toto editační okénko se souřadnicí a jasem pixelu pod kurzorem ovládaným myší. Pokud je potvrzeno pouze kontrolní tlačítko Gradient, objeví se v editačním okénku souřadnice a gradient pixelu. V obou případech musí být potvrzeno právě jedno z tlačítek Horizontální a Vertikální.
30.2 Jas Bude se vykreslovat jas dané řádky či sloupce. Jas
kde
I:
I (i) 0.299R(i) 0.587G(i) 0.114B(i) , i je souřadnice.
30.3 Gradient Bude se vykreslovat gradient dané řádky či sloupce. Gradient
G:
G(i ) I (i ) I (i 1) , kde
I je jas, i je souřadnice.
30.4 Horizontální Bude se vykreslovat horizontální profil, tj. profil řádky. Svislý rozměr obrazového okna bude změněn na 300 pixelů klientské plochy.
30.5 Vertikální Bude se vykreslovat vertikální profil, tj. profil sloupce. Vodorovný rozměr obrazového okna bude změněn na 300 pixelů klientské plochy.
30.6 Provést Vykreslit vyznačené funkce.
30.7 Uzavřít Uzavřít dialog o kreslení profilů.
30.8 Editor
48
ZODOP
Vyznačené funkce budou zapsány do textového souboru „profil.tmp“ a bude zavolán textový editor umoţňující jejich prohlíţení, editaci nebo vyuţití v jiných programech. V souboru jsou po hlavičce údaje zapisovány v pořadí souřadnice, jas a gradient. Při pokusu o spuštění vnějšího procesu s textovým editorem se v případném hlášení o chybě můţe vyskytnout chybový kód.
31. Konvoluční filtrace Dialogové okno pro zadání parametrů konvoluční filtrace se vyvolá volbou Konvoluční filtrace v poloţce menu Nástroje - Filtry.
Skládá se z následujících ovládacích prvků:
31.1 Načíst uţivatelský Načte se uţivatelský filtr s diskového souboru a stane se aktivním filtrem
31.2 Seznam s předdefinovanými filtry Obsahuje filtry dodávané s programem.
31.3 Maska Číslo masky m , která se zobrazí v levé části dialogu 31.4 Okraje Způsob chování na okrajích. Jsou k dispozici tyto moţnosti:
g(i , j ) o rozměrech c r pro i 0 je g(0, j ) , pro i c je g(c 1, j ) , pro j 0 je g(i ,0) , pro j r je g(i , r 1)
Opakovat okraje - hodnota obrazu
Periodické -
g(i , j ) g(i mod c, j mod r )
Zrcadlové -
g(i , j ) g( (i c) mod(2c) c 05 . 0.5, ( j r ) mod(2r ) r 0.5 0.5)
Nulami -
g(i , j ) 0 pro i 0 , i c , j 0 , nebo j r .
Úplný výsledek - okraje nulové, ale výsledek je zvětšen na rozměry obsahuje všechny pixely dotčené konvolucí. (s je rozměr masky)
c s 1 r s 1 , takţe
ZODOP
49
Nedotčený vnitřek - výsledek je zmenšen na rozměry pixely nedotčené okrajovým jevem.
c s 1 r s 1 , takţe obsahuje pouze
31.5 Typ filtru t Způsob, jakým se vypočte výsledná hodnota pro daný obrazový element z dílčích výsledků filtrování jednotlivými maskami. Můţe být následující: 1 “MAXIMUM ABS. VALUE”, max m
hm (i , j )
hm2 (i , j )
2 “SQUARE ROOT OF SQUARE SUM”,
m
3 “SUM ABSOLUTE VALUE”,
hm (i, j)
m 4 “MAXIMUM MASK OUTPUT”, max hm (i , j ) m 5 “MAXIMUM MASK OUTPUT TO 0”, max{ max hm (i,
j ),0}
m
6 “MAX(|MSK1|,|MSK2|)-|MSK3|”, max{max{ h1 (i , 7 “PRODUCT OF MASKS TO 0”,
j ) , h2 (i , j )} h3 (i , j ) ,0}
max{hm (i, j),0} m
8 “MSK1/(NORM OF MASKS)”, h1 (i ,
j ) / f 1 (i , j ) i, j
9 “PIXEL - NORM OUTPUT”, g (i ,
j ) h1 (i , j ) / f 1 (i , j ) i, j
10 “MSK1/NORM + ABS”; h1 (i ,
j) / n a
31.6 Přesnost výpočtu Volbou byte, či float se určuje přesnost, ve které se provádějí výpočty. Byte značí, ţe hodnota pro kaţdý obrazový element se převádí do přesnosti byte bezprostředně po jejím výpočtu a to tak, ţe hodnoty menší neţ nula se nahradí nulou a hodnoty větší neţ 255 se nahradí touto hodnotou. Float značí, ţe převod v do rozsahu 0 - 255 se provede aţ po dokončení výpočtu na celém obraze a to takto
255(v min) / (max min) , min a max značí minimální a maximální hodnotu v . Při min=max se postupuje jako při Byte.
31.7 Rozměr Rozměr pouţité masky s .
31.8 Abs Absolutní člen pouţité masky
a (Formát souboru masky)
31.9 Norm Normalizační konstanta pouţité masky
n (Formát souboru masky)
31.10 Provést Provede se filtrace s pouţitím zvolené masky. Konvoluce snímku podle vzorce
hm (i, j ) kde d ( s 1) / 2, přesnosti výpočtu.
h
g s m -tou maskou f m se provede
h
f m (k , l ) g (i k , j l ) ,
k d l d
h s / 2, s je velikost masky. Výsledná hodnota se určí podle typu filtru a
50
ZODOP
31.11 Ukončit Uzavře se dialog.
31.12 Editor Vyvolá se editor (notepad) s textovým formátem pouţité masky. Při pokusu o spuštění vnějšího procesu s textovým editorem se v případném hlášení o chybě můţe vyskytnout chybový kód.
31.13 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na obrazech ve zvolených souborech se provede konvoluční filtrace podle parametrů zvolených v dialogu. Nad tlačítkem se v okénku objevuje počet uţ zpracovaných souborů.
31.14 Formát souboru masky 1. řádek: jméno filtru, max. 30 znaků 2. řádek: s p t, kde s značí velikost masky s x s, p je počet masek a t je typ filtru 3. řádek, pouze pokud t=10: n a, kde n je hodnota, kterou se dělí výsledek, a je hodnota, která se přičítá k výsledku. Pro jiné hodnoty t je tento řádek vynechán. Na dalších řádcích jsou celočíselné hodnoty jednotlivých prvků masek.
31.15 Pole koeficientů Zde se zobrazí koeficienty ze střední části masky. Případná editace zde má platnost pouze do nejbliţší změny filtru nebo masky.
31.16 Seznam filtrů Zde je seznam předdefinovaných filtrů, před názvem filtru je jeho číslo: 31.16.1
Filtry typu první derivace
Skupina filtrů typu první derivace. Při pouţití pro detekci hran tyto filtry detekují hrany pouze v jednom směru kolmém ke směru filtru a to náběţnou hranu kladnými čísly, tedy směrem k bílé, zatímco sestupnou hranu zápornými čísly, tedy směrem k černé. Podélné hrany nedetekují. Přesný tvar masek 3x3 byl odvozen ze Sobelova gradientu (typ 1) a z Prewittova kompasového gradientu (typ 2). Další verze byly odvozeny z Prewittova gradientu. 1 Derivative north 1 4 Derivative north east 2 7 Derivative south east 1 10 Derivative south 2 13 Derivative west 1 16 Derivative north west 2
2 Derivative north 2 5 Derivative east 1 8 Derivative south east 2 11Derivative south west 1 14 Derivative west 2
3 Derivative north east 1 6 Derivative east 2 9 Derivative south 1 12Derivative south west 2 15 Derivative north west 1
33 Derivative horizontal 1 36 Derivative vertical 2
34 Derivative horizontal 2 86 First differential
35 Derivative vertical 1
31.16.2
Detektory hran typu kombinace masek první derivace
Skupina sloţitějších filtrů typu první derivace, které kombinují výsledky více masek a jsou schopny detekovat hrany ve všech směrech. Ke kombinaci masek se pouţívá buď odmocnina ze součtu kvadrátů, součet absolutních hodnot nebo maximum, drobné rozdíly jsou v chování v přítomnosti šumu. Masky větší neţ 3x3 obsahují i prvek průměrování, jsou proto odolnější vůči šumu. 41 3-level maxabs 3 x 3 44 3-level maxabs 9 x 9
42 3-level maxabs 5 x 5 45 5-level maxabs 3 x 3
46 Prewitt mean-sq 3 x 3 48 Prewitt mean-sq 5 x 5 50 Prewitt mean-sq 7 x 7 52 Prewitt mean-sq 9 x 9
47 Prewitt sumabs 3 x 3 49 Prewitt sumabs 5 x 5 51 Prewitt sumabs 7 x 7 53 Prewitt sumabs 9 x 9
54 Roberts mean-square 55 Roberts sumabs
43 3-level maxabs 7 x 7
ZODOP 56 Sobel mean-square
51 57 Sobel sumabs
58 Compass max 59 Kirsch max 60 Pyramid maxabs 5 x 5 61 Pyramid maxabs 7 x 7 62 Pyramid maxabs 9 x 9 63 Mean-square 31.16.3
70 Eberlain maxabs-sub-floor
Filtry typu druhá derivace
Skupina filtrů typu druhá derivace. Při pouţití pro detekci hran je výhodou, ţe vystačí s jedinou maskou pro detekci hran ve všech směrech. Ovšem v místě detekované hrany se objeví typická dvojice tmavé a světlé (černé a bílé) čáry, proto se někdy detekce dokončuje operací Průchod nulou (kapitola Chyba! Nenalezen zdroj odkazů.). Některé z nich lze pouţít i pro detekci čar a bodů. 17 Laplacian 1 20 Laplacian 4 67 Laplacian 7
18 Laplacian 2 64 Laplacian 5 71 Extended Laplacian
19 Laplacian 3 66 Laplacian 6 72 Two channel Laplacian – product
37 Vertical line detection 38 Horizontal line detection 39 1st diagonal detection 40 2nd diagonal detection 79 Normalizer 4 x 4 80 Normalizer 5 x 5 81 f-delsq(f) 82 Fyy simple 68 Kasvand - Laplacian ident 31.16.4
69 Kasvand line enhancement max-floor
Zaostření – součet obrazu s Laplaciánem
Skupina filtrů pokoušejících se zlepšit ostrost obrazu přičtením Laplaciánu, tzn. zdůrazněním vyšších frekvencí. Bohuţel se při tom také zesiluje šum. 21 Enhancement (small) 22 Enhancement (normal) 23 Enhancement (strong) 24 Enhancement (max) 25 Enhancement type 1 26 Enhancement type 2 27 Enhancement type 3 28 Enhancement type 4 31.16.5
Vyhlazení průměrováním
Skupina filtrů pokoušejících se potlačit šum vyhlazením pomocí průměrování, tedy různé typy klouzavých průměrů. Bohuţel se přitom také rozmazávají hrany. 29 Smoothing 1 32 Smoothing 4 74 Smoothing 5 x 5 a 78 Smoothing 6 x 6 31.16.6
30 Smoothing 2 73 Smoothing 4 x 4 a 76 Smoothing 5 x 5 b
31 Smoothing 3 75 Smoothing 4 x 4 b 77 Smoothing 2 x 2
Šablona objektu
84 Template of object 31.16.7
Marrovy filtry – kombinace druhé derivace a průměrování
Filtry (autoři Marr a Hildrith) určené pro detekci hran. Byly vytvořeny vzorkováním Laplaciánu rotační Gaussovy 2-D hustoty (jde tedy o filtry typu druhá derivace kombinované s průměrováním) s různou standardní odchylkou. Ta je uvedena v názvu filtru. Filtry s větší standardní odchylkou detekují pouze významnější hrany. Hrana je tam, kde výsledek filtrace prochází nulou, proto je vhodné detekci hran dokončit operací Průchod nulou (viz kapitola Chyba! Nenalezen zdroj odkazů..), tím se získá binární výsledek typu hrana ano-ne. 87 Marr 1/sqrt2, 5 x 5 88 Marr 1, 7 x 7 89 Marr sqrt2, 9 x 9 90 Marr 2, 11 x 11 91 Marr 2sqrt(2), 23 x 23 92 Marr 4, 31 x 31 93 Marr 4sqrt(2), 41 x 41 94 Marr 8, 53 x 53 95 Marr 8sqrt(2), 69 x 69 Seznam masek filtrů lze nalézt v dodatku B.
52
ZODOP
32. Pořádkové filtry Do funkce pořádkové filtry se přejde z menu nástroje výběrem poloţky menu pořádkové filtry. Objeví se dialogové okno které je uvedeno na následujícím obrázku.
32.1 Okolí čtvercové Tvar pouţitého okolí bude čtvercový.
32.2 Okolí kruhové Tvar pouţitého okolí bude přibliţně kruhový.
32.3 Velikost okolí Zadávání velikosti okolí v rozsahu 1 aţ polovina rozměru obrazu. Velikost je buď délka strany čtverce u čtvercového okolí nebo průměr kruhu u kruhového okolí. V případě sudé velikosti je okolí umístěno okolo pixelu nesymetricky.
32.4 Provést Spustí se nastavená filtrace na aktivní obraz.
32.5 Ukončit Uzavře se dialogové okno Pořádkové filtry.
32.6 Minimum Navolí se filtrace typu minimum. Hodnota obrazového elementu se nahradí minimální hodnotou na zvoleném okolí.
32.7 Maximum Navolí se filtrace typu maximum. Hodnota obrazového elementu se nahradí maximální hodnotou na zvoleném okolí.
32.8 Medián Navolí se filtrace typu medián. Hodnota obrazového elementu se nahradí mediánem na zvoleném okolí. V případě sudého počtu obrazových elementů v okolí je poţita větší ze dvou prostředních hodnot.
32.9 Min-Max Major Navolí se filtrace typu Min-Max. Hodnota obrazového elementu se nahradí hodnotou rozdílu maxima a minima na zvoleném okolí
pixel max min
ZODOP
53
32.10 Min < val < Max Navolí se filtrace typu Min-Max. Hodnota obrazového elementu se nahradí výrazem:
pixel min
pro
pixel min pixel max
pixel max
pro
pixel min pixel max
32.11 Šum Navolí se filtrace typu šum. Hodnota obrazového elementu se nahradí výrazem:
kde
val
pixel pixel
pro
pixel median val
pixel median
pro
pixel median val
je číselná hodnota zadaná v editačním okénku.
32.12 Horní Navolí se filtrace typu hornofrekvenční. Hodnota obrazového elementu se nahradí výrazem:
pixel pixel
pro
pixel median val
pixel median
pro
pixel median val
kde val je číselná hodnota zadaná v editačním okénku.
32.13 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na obrazech ve zvolených souborech se provede pořádková filtrace podle parametrů zvolených v dialogu. Vedle tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
33. Lokální ekvalizace histogramu Druh filtrace, kdy se nová hodnota pixelu určuje na základě vyhodnocení histogramu v okolí pixelu.
33.1 Okolí kruhové Pouţije se přibliţně kruhové okolí.
33.2 Okolí čtvercové
54
ZODOP
Pouţije se čtvercové okolí.
33.3 Poloměr Poloměr pouţitého okolí r . V případě čtvercového okolí je pak délka strany minimálně 1 a maximálně [( w 1) / 2] , kde mimo tyto meze se objeví hlášení o chybě.
2 r 1 . r můţe být
w je vodorovný rozměr obrazu. Při zadání hodnoty
33.4 Optimalizace histogramu 1 Optimalizace histogramu je zde totéţ co ekvalizace, protoţe za optimální se povaţuje histogram co nejrovnoměrnější. Nová hodnota pixelu p se zde určuje jako
p
u s 1 s h(i ) h( s) A i 0 u
kde
h(i ) je hodnota histogramu okolí pixelu pro hodnotu i s je stará hodnota pixelu, u je maximální hodnota pixelu (255),
A je počet pixelů okolí. Stará hodnota se tedy nahradí hodnotou kumulativního histogramu upravenou tak, aby hodnota konstantního obrazu zůstala zachována. Tento typ filtrace se hodí pro zvýraznění detailů snímku, ovšem v plochách s přibliţně konstantním jasem zesiluje šum.
33.5 Optimalizace histogramu 2 Optimalizace histogramu je zde totéţ co ekvalizace, protoţe za optimální se povaţuje histogram co nejrovnoměrnější. Nová hodnota pixelu p se zde určuje jako
p
u s 1 1 h(i) h( s) A i 0 2
kde
h(i ) je hodnota histogramu okolí pixelu pro hodnotu i s je stará hodnota pixelu, u je maximální hodnota pixelu (255),
A je počet pixelů okolí. Stará hodnota se tedy nahradí hodnotou kumulativního histogramu upravenou tak, aby hodnota konstantního obrazu byla polovina maximální, tedy 128. Tento typ filtrace se hodí pro zvýraznění detailů snímku, ovšem v plochách s přibliţně konstantním jasem zesiluje šum.
33.6 Optimalizace histogramu 3 Optimalizace histogramu je zde totéţ co ekvalizace, protoţe za optimální se povaţuje histogram co nejrovnoměrnější. Nová hodnota pixelu p se zde určuje jako
p kde
u s 1 h(i) A i 0
ZODOP
55
h(i ) je hodnota histogramu okolí pixelu pro hodnotu i s je stará hodnota pixelu, u je maximální hodnota pixelu (255),
A je počet pixelů okolí. Stará hodnota se tedy nahradí hodnotou kumulativního histogramu upravenou tak, aby hodnota konstantního obrazu byla nahrazena nulou. Tento typ filtrace se hodí pro zvýraznění detailů snímku, ovšem v plochách s přibliţně konstantním jasem zesiluje šum.
33.7 Vyrovnání střední hodnoty Zjednodušený typ filtrace, kdy se lokální histogram neroztahuje, ale pouze posouvá. Nová hodnota pixelu p se zde určuje jako
1 A p s s(i ) u / 2 A i 1 kde
s(i ) je hodnota i - tého pixelu okolí s je stará hodnota pixelu, u je maximální hodnota pixelu (255), A je počet pixelů okolí. Ke staré hodnotě se tedy přičte takové číslo, aby střední hodnota okolí byla uprostřed rozsahu hodnot pixelu. Tento typ filtrace se hodí jako příprava před prahováním snímku s nerovnoměrným jasem pozadí.
33.8 Provést Provést zvolenou filtraci.
33.9 Ukončit Ukončit dialog o ekvalizaci histogramu.
33.10 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na obrazech ve zvolených souborech se provede lokální ekvalizace histogramu podle parametrů zvolených v dialogu. Vedle tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
34. Fourierova transformace Dialogové okno zajišťuje několik funkcí týkajících se Fourierovy transformace. Při filtraci pomocí spektra je nejprve nutno vstupní obraz převést do plovoucí čárky, provést přímou Fourierovu transformaci, vytvořit vhodný filtr a vynásobit s ním vytvořené spektrum (filtrace s typem filtrace *). Výsledek je uloţen do stejného souboru jako spektrum, proto chcete-li filtrovat tentýţ obraz vícekrát, je vhodné uschovat spektrum před filtrací do jiného souboru (např. pomocí tlačítek spektrum <-> filtr a filtrace s typem filtrace =). Po filtraci je nutno provést zpětnou Fourierovu transformaci a převod do pevné čárky. Implicitně jsou soubory se spektrem potom smazány, protoţe Fourierova transformace (přímá i zpětná) ukládá výsledek do stejných souborů jako byl vstup.
56
ZODOP
Pro vlastní výpočet transformace je pouţit software z Massachussets Institute of Technology, autoři Matteo Frigo a Steven G. Johnson. Zde je dialogové okno:
34.1 převod i->f Převod vstupních dat z formátu jednobajtového celého čísla bez znaménka na formát osmibajtového komplexního čísla v plovoucí čárce.
34.2 přímá FFT Výpočet přímé Fourierovy transformace. Výsledek odpovídá vzorci
1
M 1 N 1
k m ln 2 i M N
a mn e MN m0 n 0 k 0,, M 1; l 0,, N 1,
Ak l kde
i 1, a jsou vstupní data A je výsledné spektrum M , N jsou rozměry vodorovně a svisle zaokrouhlené na nejbliţší vyšší mocniny dvou. Tedy v prvním pixelu souboru spectrum.sp bude uloţena hodnota odpovídající nulové frekvenci, v posledním pixelu hodnota odpovídající vzorkovací frekvenci - 1. Data v plovoucí čárce jsou ve tvaru 4 bajty reálná část následovaná 4 bajty imaginární části. Čísla jsou ve formátu, který pouţívá překladač jazyka C pro čísla typu float. Pouţívá se algoritmus pro rychlou Fourierovu transformaci.
34.3 podlouhlé tlačítko vlevo nahoře Podlouhlé tlačítko vlevo nahoře zajišťuje funkci tlačítek převod i->f a přímá FFT současně.
ZODOP
57
34.4 spektrum<->filtr Vzájemně vymění soubor se spektrem a soubor s filtrem.
34.5 doplnění Způsob doplnění vstupních dat na rozměr nejbliţší vyšší mocniny dvou můţe být nulami, zrcadlením (pouţije se implicitně), periodickým prodlouţením, střední hodnotou dat, opakováním krajního řádku a sloupce, shlazením k nule - podle funkce kosinus, shlazením ke střední hodnotě - podle funkce kosinus. Pouţívá se při funkci vytvořit doplněný obrázek.
34.6 vytvořit doplněný obrázek Rozměry vstupních dat jsou doplněny na rozměr daný parametry rozměry doplněného obrazu, doplněná data se uloţí do nového obrazu a ten je pouţit pro následující výpočet.
34.7 rozměry doplněného obrázku Obraz bude doplněn na tyto rozměry. Mohou být v rozmezí od jedné do trojnásobku rozměru zdrojového obrazu. Nesmějí také přesáhnout maximální povolený rozměr obrazu. Pokud budou rozměry menší neţ rozměry zdrojového obrazu, bude ze zdrojového obrazu vyříznut střed.
34.8 spektrum Jméno souborů se spektrem (pokud bude „spektrum“, budou data uloţena v souboru spektrum.sp).
34.9 výběr spektra Výběr jména existujících souborů se spektrem.
34.10 visualizace Visualizce spektra (převod z formátu osmibajtového komplexního čísla v plovoucí čárce na formát jednobajtového celého čísla bez znaménka). Data jsou přerovnána tak, ţe hodnota odpovídající nulové frekvenci se zobrazí doprostřed výstupního snímku (při sudých rozměrech o půl pixelu vlevo nahoru od prostředku). Upozornění: při visualizaci logaritmického spektra po filtraci pásmovým nebo směrovým filtrem či jejich kombinací obvykle nevyjde spektrum příliš názorně. Je to způsobeno tím, ţe nulové hodnoty filtru a hodnoty blízké nule velmi zvětší při filtraci dynamický rozsah spektra a to pak nelze rozumně zobrazit. Řešením můţe být omezení zobrazovaného rozsahu na původní úroveň. Postup je tento: visualisuje se logaritmické spektrum před filtrací, při tom se zobrazí rozsah spektra číselně (jeho minimum a maximum). Při visualizaci spektra po filtraci je pak třeba tyto původní hodnoty vyplnit (alespoň přibliţně) do parametrů min a max a zvolit typ hodnot vstupu úrovně vstupu.
34.11 visualizace spektra nebo filtru Moţno zvolit visualizaci spektra nebo filtru.
34.12 Typ visualizace: logaritmická - logaritmus amplitudového, amplitudová, fázová, reálné části, imaginární části.
34.13 min Číslo, které udává, jaká hodnota vstupu se transformuje na úroveň 0 výstupu.
58
ZODOP
34.14 max Hodnota vstupu, která se transformuje na úroveň 255 výstupu.
34.15 Hodnoty vstupu se uvaţují jako % - nalezne se minimum a maximum vstupních dat a hodnoty min a max jsou v procentech rozsahu minimum - maximum, plný rozsah dostaneme, pokud bude min=0 a max=100, úrovně šedi - nalezne se minimum a maximum vstupních dat a hodnoty min a max jsou v počtu úrovní šedi rozsahu minimum - maximum, plný rozsah dostaneme, pokud bude min=0 a max=255. Jinak se bude na úroveň 0 výstupu transformovat hodnota, která by se při plném rozsahu transformovala na úroveň min, a na úroveň 255 výstupu hodnota, která by se při plném rozsahu transformovala na úroveň max, úrovně vstupu - na úroveň 0 výstupu se bude transformovat hodnota vstupu rovnající se parametru min a na úroveň 255 výstupu hodnota vstupu rovnající se parametru max.
34.16 filtrace Násobení spektra filtrem. Lze pouţít i ke sčítání a přiřazení.
34.17 podlouhlé tlačítko vlevo uprostřed Podlouhlé tlačítko vlevo uprostřed zajišťuje funkce tlačítek tvorba filtru a filtrace současně.
34.18 filtr Jméno souborů s filtrem (pokud bude „filtr“, budou data uloţena v souboru filtr.sp).
34.19 výběr filtru Výběr jména existujících souborů s filtrem.
34.20 typ filtrace násobení, spektrum:=spektrum*filtr, sčítání, spektrum:=spektrum+filtr, = kopírování, spektrum:=filtr.
34.21 tvorba filtru Generování filtru.
34.22 typ filtru Můţe se generovat filtr: ţádný pásmový směrový Gaussův exponenciální derivační import filtru konstantní komplementární násobený -1 násobený sqrt(-1) převrácená hodnota kmplexně sdruţený
34.23 pásmový filtr Vypočte se absolutní hodnota frekvence
ZODOP
59
f f v u2 v 2 , u, v jsou relativní frekvence vodorovně a svisle v rozmezí od -0.5 do 0.5, pro f d sd bude hodnota filtru g 0 , pro d sd f d sd bude shlazení filtru podle funkce sinus tak, ţe pro f d bude g 0.5 , pro
d sd f h sh bude g 1 ,
pro
h sh f h sh bude shlazení filtru podle funkce sinus tak, ţe pro f h bude g 0.5 ,
pro
f h sh bude g 0 . d sd h sh .
Zadání je korektní, pokud
34.24 parametry pásmového filtru dolní mez = d (implicitně 0), ohlazení = sd (ohlazení dolní meze - implicitně 0), horní mez = h (implicitně 0.25), ohlazení = sh (ohlazení horní meze - implicitně 0.25), vzork.frek. = f v (vzorkovací frekvence - implicitně 1).
34.25 směrový filtr Vypočte se fáze
1 j
arctan(v / u),
u, v jsou relativní frekvence vodorovně a svisle, u v rozmezí od -0.5M do 0.5M, v v rozmezí od -0.5N do 0.5N,
M,N jsou rozměry snímku, pro d sd bude hodnota filtru
g 0,
pro
d sd d sd bude shlazení filtru podle funkce sinus tak, ţe pro d bude g 0.5 ,
pro
d sd h sh bude g 1 ,
pro
h sh h sh bude shlazení filtru podle funkce sinus tak, ţe pro h bude g 0.5 ,
pro
h sh
bude
g 0.
Zadání je korektní, pokud
h sh (d sd ) / j a pokud d sd h sh .
34.26 parametry směrového filtru dolní mez = d (implicitně -45), ohlazení = sd (ohlazení dolní meze - implicitně 22.5), horní mez = h (implicitně 45), ohlazení = sh (ohlazení horní meze - implicitně 22.5), jednotka = j (jednotka úhlu), můţe být r=rad=radian=radián,
j 1
p=pi=pí ( radiánů,
j )
d=deg=degree=s=stupen=stupeň=° (
j / 180 ),
60
ZODOP g=grad (
j / 200 ),
číslo, udávající velikost jednotky úhlu v radiánech. Lze pouţít i velká písmena. (implicitně °)
34.27 Gaussův filtr Hodnota filtru
ge
1 f vf 2
2
.
34.28 parametry Gaussova filtru stand.odch.= (standardní odchylka - implicitně 0.25), vzork.frek.=
v f (vzorkovací frekvence - implicitně 1).
34.29 exponenciální filtr Hodnota filtru
ge
f vf s
34.30 parametry exponenciálního filtru strmost= s (implicitně 0.36) vzork.frek.= v f (vzorkovací frekvence - implicitně 1). 34.31 derivační filtr Vypočte se absolutní hodnota frekvence
f f v u2 v 2 , u, v jsou frekvence vodorovně a svisle v rozmezí od -0.5 f v do 0.5 f v , f v je vzorkovací frekvence, implicitně f v 1. Hodnota filtru g ( 2 (cf i (au bv))) n Implicitní hodnoty parametrů jsou a 1 , b 0 , c 0 , n 1 , coţ vede na první derivaci vodorovně.
34.32 parametry derivačního filtru 1.směr.cos= a (1. směrový kosinus - implicitně 1), 2.směr.cos= b (2. směrový kosinus - implicitně 0), 3.směr.cos= c (3. směrový kosinus - implicitně 0), stupeň der.= n (stupeň derivace - implicitně 1), vzork.frek.= v f (vzorkovací frekvence - implicitně 1). 34.33 import filtru Z označeného obrázku se vytvoří filtr, 0 se konvertuje na hodnotu d , 255 na hodnotu, h , implicitně je d 0 , h 1 . Filtr je na rozměr nejbliţší vyšší mocniny dvou doplněn hodnotou o (implicitně 0).
ZODOP
61
34.34 parametry importu filtru vst.0-> = d (hodnota, na kterou se konvertuje vstupní 0 - implicitně 0), vst.255-> = h (hodnota, na kterou se konvertuje vstupní 255 - implicitně 1), okraje= o (hodnota doplněná na okrajích - implicitně 1).
34.35 konstantní filtr Vytvoří se filtr vyplněný hodnotou
v (implicitně 0),
34.36 parametr konstantního filtru vyplnit= v (hodnota, kterou se filtr vyplní - implicitně 0). 34.37 komplementární filtr Vytvoří se komplement filtru daného editačním okénkem filtr. Hodnota filtru g: 1 g .
34.38 filtr násobený -1 Vytvoří se násobek filtru daného editačním okénkem filtr hodnotou -1 g: g .
34.39 filtr násobený sqrt(-1) Vytvoří se násobek filtru daného editačním okénkem filtr hodnotou sqrt(-1)
g: 1 g
34.40 převrácená hodnota filtru Vytvoří se převrácená hodnota filtru daného editačním okénkem filtr
g: 1 / g
zaokrouhlená do mezí
m, m . Implicitně je m 9 1018 .
34.41 parametr převrácené hodnoty filtru meze= m (mezní hodnota filtru). Implicitně je
m 9 1018 .
34.42 komplexně sdruţený filtr Vytvoří se komplexně sdruţená hodnota filtru daného editačním okénkem filtr imag ( g ) : imag ( g ) , tzn. filtr se záporně vzatou imaginární částí.
34.43 zpětná FFT Výpočet zpětné Fourierovy transformace. Výsledek odpovídá vzorci
1
M 1 N 1
k m ln 2 i M N
a mn e MN m0 n 0 k 0,, M 1; l 0,, N 1,
Ak l kde
i 1, a je vstupní spektrum A je výsledný obrázek M , N jsou rozměry vodorovně a svisle zaokrouhlené na nejbliţší vyšší mocniny dvou.
62
ZODOP
Pouţívá se algoritmus pro rychlou Fourierovu transformaci.
34.44 převod f->i Převod výsledku z formátu osmibajtového komplexního čísla v plovoucí čárce do formátu celého čísla 0 - 255 a visualizace výsledku.
34.45 podlouhlé tlačítko vlevo dole Podlouhlé tlačítko vlevo dole zajišťuje funkci tlačítek převod f->i a zpětná FFT současně.
34.46 po výpočtu smazat soubory v pohyblivé čárce Při potvrzení budou po převodu f->i smazány soubory se spektrem v pohyblivé řádové čárce.
34.47 výsledek Typ vizualizovaného výsledného snímku můţe být logaritmický - logaritmus amplitudového, amplitudový, fázový, reálná část, imaginární část.
34.48 min Číslo, které udává, jaká hodnota vstupu se transformuje na úroveň 0 výstupu.
34.49 max Hodnota vstupu, která se transformuje na úroveň 255 výstupu.
34.50 typ hodnot dat Hodnoty vstupu se uvaţují jako % - nalezne se minimum a maximum vstupních dat a hodnoty min a max jsou v procentech rozsahu minimum - maximum, plný rozsah dostaneme, pokud bude min=0 a max=100, úrovně šedi - nalezne se minimum a maximum vstupních dat a hodnoty min a max jsou v počtu úrovní šedi rozsahu minimum - maximum, plný rozsah dostaneme, pokud bude min=0 a max=255. Jinak se bude na úroveň 0 výstupu transformovat hodnota, která by se při plném rozsahu transformovala na úroveň min, a na úroveň 255 výstupu hodnota, která by se při plném rozsahu transformovala na úroveň max, úrovně vstupu - na úroveň 0 výstupu se bude transformovat hodnota vstupu rovnající se parametru min a na úroveň 255 výstupu hodnota vstupu rovnající se parametru max. Implicitně se uloţí reálná část v rozsahu 0 - 255, tzn. výsledek reálná část, min=0, max=255 úrovně vstupu.
34.51 vstupní obrázek Jméno souboru, ze kterého byl získán obrázek.
34.52 rozměry Editační okénko udávající rozměry vstupního obrázku. Pokud je provedena funkce zpracovávající označený zdrojový obrázek, jsou rozměry přečteny z něj, jinak je nutno je vyplnit.
34.53 Údaje o prováděné operaci Na třetí řádku odspodu se vypisují zprávy o výpočtu. Úplně dole se zobrazuje, kolik procent z činnosti uvedené ve zprávě je jiţ hotovo.
34.54 Převody dat různých formátů K dispozici jsou 4 druhy převodů mezi pevnou a plovoucí řádovou čárkou:
ZODOP
63
visualizace spektra a filtru, při které jsou data přerovnána tak, aby pixel odpovídající nulové frekvenci byl uprostřed výstupního obrázku (o půl pixelu vpravo dole), převod i->f, při kterém data nejsou přerovnávána, převod f->i, opačný převod, při kterém data nejsou přerovnávána, import filtru, převod opačný k visualizaci, při kterém jsou data přerovnána.
34.55 Záznam o spektru Pokud některá z funkcí vytvoří nový soubor s daty ve formátu s plovoucí čárkou, vytvoří k němu i soubor stejného jména s příponou „.log“ obsahující funkce a parametry, které měnily data v souboru. Toto tlačítko ukáţe tento log soubor pro soubor daný editačním okénkem spektrum.
34.56 Záznam o filtru Pokud některá z funkcí vytvoří nový soubor s daty ve formátu s plovoucí čárkou, vytvoří k němu i soubor stejného jména s příponou .log obsahující funkce a parametry, které měnily data v souboru. Takto je moţné například zjistit parametry vygenerovaných filtrů. Toto tlačítko ukáţe log soubor pro soubor daný editačním okénkem filtr.
34.57 Ukončit Ukončit dialog o Fourierově transformaci.
34.58 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na obrazech ve zvolených souborech se provede filtrace předem připraveným filtrem. Pokud nebude ţadný filtr připravený nebo nebudou souhlasit jeho rozměry, vytvoří se nový podle parametrů zvolených v dialogu. Vedle tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
35. Měřítko Změna velikosti (rozlišovací schopnosti) obrazu. Takto vypadá dialogové okno
35.1 Šířka Poţadovaná šířka obrazu. Uţivatel si můţe zvolit, jakým způsobem se budou volit nové rozměry obrazu. Volba „pixelů“ znamená, ţe parametr udává rozměr v pixelech. Volba „%“ znamená, ţe hodnota parametru je v procentech stávajícího rozměru. Volba „Zvětšit/Zmenšit“ znamená, ţe parametr je ve tvaru zlomku. Např. hodnota „3/7“ znamená změnit rozměr na tři sedminy původního.
35.2 Výška Poţadovaná výška obrazu. Uţivatel si můţe zvolit, jakým způsobem se budou volit nové rozměry obrazu. Volba „pixelů“ znamená, ţe parametr udává rozměr v pixelech. Volba „%“ znamená, ţe
64
ZODOP
hodnota parametru je v procentech stávajícího rozměru. Volba „Zvětšit/Zmenšit“ znamená, ţe parametr je ve tvaru zlomku. Např. hodnota „3/7“ znamená změnit rozměr na tři sedminy původního.
35.3 Interpolace Zde lze vybrat typ pouţité interpolace. Při volbě „Nejbliţším sousedem LeadTools“, „Preference černé LeadTools“, „Bilineární+průměrování LeadTools“ nebo „Bikubická+průměrování LeadTools“ je pouţit algoritmus z knihovny LeadTools, při volbě „Průměrováním“, „Nejbliţším sousedem“, „Bilineární“ nebo „Bikubická“ je pouţit vlastní algoritmus programu ZODOP. Při volbě interpolace je důleţité si uvědomit jestli obrázek zvětšujeme nebo zmenšujeme. Při zmenšování je na výběr průměrování, kdy je vstupní obraz rozdělen na tolik obdélníků, kolik má výstupní obraz pixelů a z kaţdého obdélníku se pouţije aritmetický průměr hodnot a interpolace nejbliţším sousedem, kdy se z obdélníku pouţije jeden pixel jako vzorek. Bilineární a bikubická interpolace se při zmenšování chová podobně jako interpolace nejbliţším sousedem. Algoritmy pouţívající průměrování při zmenšování mají slovo „průměrování“ v označení v komboboxu. Interpolace "Preference černé LeadTools" se chová stejně jako „Nejbliţším sousedem LeadTools“ s výjimkou binárních obrazů s hloubkou 1 pixel, kdy pokud dílčí obdélník obsahuje černý bod, je výsledek černý, a tím se zachovají tenké černé čáry v obrazu. Při zvětšování se průměrování chová stejně jako interpolace nejbliţším sousedem, zajímavá je proto volba jen mezi interpolací nejbliţším sousedem, bilineární a bikubickou. Na přesné vzorce se podívejte do kapitoly 37.2, zde si můţete prohlédnout tzv. charakteristické funkce jednotlivých interpolací, tj. odezvy na jednotkový impulz. Můţete si je vyrobit také sami vytvořením malého tmavého obrázku (zde byl pouţit 5×5) s jedním bílým pixelem uprostřed a jeho velkým zvětšením (zde na 501×501) s příslušnou interpolací. Následující grafy vznikly jako průřezy těchto odezev: Interpolace nejbliţším sousedem pouţitá při volbách „Nejbliţším sousedem LeadTools“, „Preference černé LeadTools“, „Průměrováním“ a „Nejbliţším sousedem“:
Bilineární interpolace pouţité při volbách „Bilineární+průměrování LeadTools“ a „Bilineární“ mají charakteristické funkce velmi podobné, odchylka je maximálně 0.0174:
ZODOP
65
Bikubická interpolace:
Charakteristická funkce pouţitá při volbě „Bikubická“ je zobrazena plnou modrou čarou, charakteristická funkce pouţitá při volbě „Bikubická+průměrování LeadTools“ je zobrazena
66
ZODOP
čárkovaně. Liší se vodorovně (zelená) a svisle (červená). Na výsledný obraz se můţeme dívat jako na lineární kombinací vzájemně posunutých charakteristických funkcí. Na vodorovných osách grafů je vzdálenost v pixelech, na svislých je vliv pixelu uprostřed grafu na výsledek v dané vzdálenosti. Rozdíly mezi algoritmy z knihovny LeadTools a ZODOPu jsou poměrně malé, např. při zmenšování interpolací nejbliţším sousedem se při volbě „Nejbliţším sousedem LeadTools“ bere z kaţdého vstupního obdélníku levý dolní roh, při volbě „Nejbliţším sousedem“ se bere prostředek. Další drobné rozdíly jsou pokud součin změny velikosti a původního rozměru obrazu není celé číslo, např. zmenšujeme sedmkrát (volby 1/7 a „Zvětšit/Zmenšit“), původní rozměry jsou 18×18, 18/7=2.571428, po zaokrouhlení jsou nové rozměry 3×3. Při volbě „Nejbliţším sousedem“ se bere kaţdý sedmý pixel, tedy všechny kombinace souřadnic [3, 10, 17] vodorovně i svisle a při volbě „Nejbliţším sousedem LeadTools“ se pouţijí všechny kombinace souřadnic [0, 6, 12] vodorovně a [5, 11, 17] svisle, tzn. ţe se vlastně zmenšuje jen šestkrát, protoţe se napřed vypočtou nové rozměry a z nich se teprve počítá skutečný poměr zmenšení. Podobné to je i při jiných interpolacích. Další rozdíly jsou v rychlosti. Pokud pracujeme s obrazem v indexových barvách, je třeba dát pozor na to, ţe všechny interpolace kromě interpolace nejbliţším sousedem pouţívají i jiné hodnoty indexů neţ ty ze vstupního obrazu. Program tedy při pouţití jiné interpolace neţ nejbliţším sousedem na obraz v indexových barvách převede obraz do RGB módu, provede příslušnou změnu velikosti obrazu s jinou interpolací neţ nejbliţším sousedem a převede obraz zpět do indexových barev za pouţití původní palety. Při pouţití interpolace z LeadTools na 16-ti bitový obraz v indexových barvách se toto neděje automaticky, musíte proto napřed uloţit paletu do souboru (Nástroje – Bodové operace – Paleta – Uloţit), převést obraz do RGB módu (Nástroje – Bodové operace – Kanály – Index->RGB), provést příslušnou změnu velikosti obrazu (Nástroje – Geometrie – Měřítko – OK, interpolce „Bilineární+průměrování LeadTools“ nebo „Bikubická+průměrování LeadTools“) a převést obraz zpět do indexových barev (Nástroje – Bodové operace – Kanály – RGB->Index – Zákaznická – OK) za pouţití předem uloţené palety.
35.4 Zachovat poměr stran Při potvrzení poměr stran obrazu zůstane zachován. Z parametrů šířka a výška se uvaţuje ten, který byl nastaven. Pokud byly nastaveny oba, uvaţuje se šířka.
35.5 Provést Provede se zvolená transformace.
35.6 Ukončit Ukončit dialog o měřítku.
35.7 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na obrazech ve zvolených souborech se změní velikost obrazů podle parametrů zvolených v dialogu. Vedle tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
36. Transformace Jednoduché geometrické transformace obrazu, otočení, zrcadlení a střih. Takto vypadá dialogové okno
ZODOP
67
36.1 Otočení doleva Otočení obrazu doleva o 90°.
36.2 Otočení doprava Otočení obrazu doprava o 90°.
36.3 Zrcadlení Překlopení obrazu podle svislé osy.
36.4 Překlopení Překlopení obrazu podle vodorovné osy.
36.5 Otočení Otočení obrazu podle středu o úhel daný parametrem úhel v editačním okénku dole. Úhel je ve stupních, nemusí být celočíselný, kladná hodnota znamená otočení po směru hodinových ručiček, záporná proti směru hodinových ručiček. Data jsou doplněna aktuální barvou. Je moţné zvolit pouţitou interpolaci a způsob, jakým se určí rozměry výsledku.
36.6 Střih vodorovně Transformace zvaná někdy téţ úhyb. Úhel je daný parametrem úhel střihu vodorovně v editačním okénku vpravo vedle tohoto radiotlačítka. Úhel je ve stupních, nemusí být celočíselný. Rozměry výsledku se rovnají rozměrům obdélníka opsaného transformovanému obrazu. Data jsou doplněna aktuální barvou. Pouţívá se interpolace nejbliţším sousedem.
36.7 Střih svisle Transformace zvaná někdy téţ úhyb. Úhel daný parametrem úhel střihu svisle v editačním okénku vpravo vedle tohoto radiotlačítka. Úhel je ve stupních, nemusí být celočíselný. Rozměry výsledku se rovnají rozměrům obdélníka opsaného otočenému obrazu. Data jsou doplněna aktuální barvou. Pouţívá se interpolace nejbliţším sousedem.
36.8 Interpolace Zde lze vybrat typ pouţité interpolace. Můţe být nejbliţším sousedem, bilineární nebo bikubická. Uplatní se pouze u otáčení o obecný úhel, nikoli uţ u střihu.
36.9 Rozměry Zde lze vybrat způsob, jakým se určí rozměry výsledku. Lze vybrat ze dvou moţností, rozměry výsledku se rovnají buď rozměrům obdélníka opsaného otočenému obrazu nebo rozměrům původního obrazu a okraje jsou oříznuty. Uplatní se pouze u otáčení o obecný úhel, nikoli uţ u střihu.
36.10 Provést Provede se zvolená transformace.
36.11 Ukončit
68
ZODOP
Ukončit dialog o transformacích.
36.12 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na obrazech ve zvolených souborech se provede transformace podle parametrů zvolených v dialogu. Vedle tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
37. Geometrické transformace pomocí vlícovacích bodů Obecná geometrická transformace obrazu. Vstupní snímek je transformován tak, aby lícoval s referenčním snímkem. Jako vstupní je pouţit snímek označený jako zdrojový a jako referenční snímek označený jako druhý. Jako vstupní a referenční snímek můţe být pouţit stejný obrázek. Při transformaci obrazu v indexových barvách existují jistá omezení. Je vhodné volit interpolaci nejbliţším sousedem, při spojování vstupních a referenčních dat (tlačítko Spojit vst. s ref.) je nutno předem zajistit, aby referenční obraz měl stejnou paletu jako vstupní, a nelze pouţít volbu Smíchat jako způsob určení zdroje dat v překryvu. Parametry transformace jsou určovány pomocí vlícovacích bodů. Takto vypadá dialogové okno
37.1 Metoda Je moţné pouţít tyto metody: ( ( x, y) jsou souřadnice ve vstupním snímku, 37.1.1
Kopie
(u, v) v referenčním)
ZODOP
69
ux vy 37.1.2
Posunutí
u a0 x v b0 y 37.1.3
Podobnostní transformace
u a0 a1 x b1 y v b0 b1 x a1 y 37.1.4
Afinní transformace
u a0 a1 x a2 y v b0 b1 x b2 y 37.1.5
Projektivní transformace
u (a0 a1 x a2 y) /(1 c1 x c2 y) v (b0 b1 x b2 y) /(1 c1 x c2 y) 37.1.6
Inverzní kvadratická transformace
x a0 a1u a2 v a3u 2 a4 uv a5 v 2 y b0 b1u b2 v b3u 2 b4 uv b5 v 2 vyjádření pro u, v je moţné získat řešením příslušné rovnice 4. stupně. 37.1.7
Surf. spline (povrchově splajnová) transformace n
u a0 a1 x a 2 y f i ri 2 ln ri 2 i 1 n
v b0 b1 x b2 y g i ri 2 ln ri 2 i 1
kde
ri2 ( x xi ) 2 ( y yi ) 2 , i 1,2,..., n, n je počet vlícovacích bodů,
( xi , yi ) jsou souřadnice vlícovacích bodů ve vstupním obrázku. Výpočet parametrů transformací se provádí metodou nejmenších čtverců tak, aby průměrná odchylka na vlícovacích bodech byla minimální. Pokud vstupní obraz obsahuje údaje o dodatečných
70
ZODOP
souřadnicích, jsou tyto přepočteny do výstupního obrazu, pouze pokud je zvolena nějaká lineární metoda transformace, tzn. kopie, posunutí, podobnostní nebo afinní.
37.2 Interpolace Je moţné zvolit : 37.2.1
interpolaci nejbliţším sousedem,
kdy se jako hodnota mezi pixely vstupního obrázku uvaţuje
f ( x, y) f ([ x 0.5],[ y 0.5]) , [ x ] je celá část čísla x , 37.2.2
bilineární interpolaci,
kdy se jako mezipixelová hodnota uvaţuje
f ( x, y) (1 s x )(1 s y ) f ([ x],[ y]) s x (1 s y ) f ([ x] 1,[ y]) (1 s x ) s y f ([ x],[ y] 1) s x s y f ([ x] 1,[ y] 1)
,
kde
sx x [ x] , s y y [ y] , nebo 37.2.3
bikubickou interpolaci,
kdy se mezipixelová hodnota určí jako
f ( x, y) s y 3
sy 2
sy
s 3 x2 s 1 KZK T x , s x 1
kde
Zij f ([ x] j 1,[ y] i 1) , na okrajích obrazu je zopakován krajní řádek a sloupec, . 15 . 0.5 0.5 15 1 2.5 2 0.5 . K 0.5 0 0.5 0 1 0 0 0
37.3 Bod č. Pořadí vlícovacího bodu, který je právě vybírán.
37.4 vst.x, vst.y, ref.x, ref.y Souřadnice právě vybíraného vlícovacího bodu ve vstupním a v referenčním obrázku. Je moţno je zadat jednak pomocí myši, jednak přímo z klávesnice. Tato druhá moţnost slouţí především pro zadávání neceločíselných souřadnic. Pomocí myši se vlícovací body zadávají kliknutím levou myší na vstupní obrázek, najetím kurzorem na poţadovaný bod ve vstupním obrázku, stisknutím klávesy Ctrl a současným kliknutím levou myší. Poté se obdobným způsobem zadá odpovídající bod v referenčním obrázku.
ZODOP
71
37.5 vst.x, vst.y, ref.x, ref.y Souřadnice právě vybíraného vlícovacího bodu ve vstupním a v referenčním obrázku. Je moţno je zadat jednak pomocí myši, jednak přímo z klávesnice. Tato druhá moţnost slouţí především pro zadávání neceločíselných souřadnic. Pomocí myši se vlícovací body zadávají kliknutím levou myší na vstupní obrázek, najetím kurzorem na poţadovaný bod ve vstupním obrázku, stisknutím klávesy Ctrl a současným kliknutím levou myší. Poté se obdobným způsobem zadá odpovídající bod v referenčním obrázku.
37.6 Ovladač nahoru – dolu vedle souřadnic bodů Posunutí zobrazovaného vlícovacího bodu o jeden nahoru nebo dolu. Poslední je nový, dosud nezapsaný vlícovací bod.
37.7 Tlačítko x vedle souřadnic bodů Smazat zobrazovaný vlícovací bod.
37.8 Tlačítko <-> vedle souřadnic bodů Zapsat opravené souřadnice zobrazovaného vlícovacího bodu do souboru.
37.9 Zpracování v souboru Při potvrzení se výsledek uloţí přímo do souboru, nikoli do paměti. Je vhodné pouţít při obzvlášť velkých rozměrech výsledku. Výsledek si lze prohlédnout otevřením příslušného souboru jako typ holá data s nastavením vhodného zmenšení. Proto je také vhodné pouţít typ souboru „.raw“. Vstupní data se berou také ze souboru jako typ holá data, jeho jméno a rozměry se přečtou ze vstupního obrazu. Pokud rozměry nesouhlasí, opravte je v editačním okénku rozměry vstupního obrazu. V případném hlášení o chybě při pokusu otevřít dialog pro zjištění jména souboru se můţe vyskytnout chybový kód.
37.10 Velké okno V tomto okně se objevují indexy právě vybíraného vlícovacího bodu a jeho okolí 5 x 5. Pokud je prostřední index červený, vybírá se ze vstupního obrazu, pokud je modrý, vybírá se z referenčního obrazu.
37.11 Rozměry obrazů Rozměry vstupního a referenčního snímku nelze měnit, jsou zde pouze pro informaci, výjimka je při potvrzení radiotlačítka Zpracování v souboru. Rozměry výstupního snímku je moţné nastavit podle potřeby.
37.12 Koeficient odchylky Toto editační okénko se objevuje pouze kdyţ je zvolena povrchově splajnová transformace. Koeficient odchylky (lambda) vyjadřuje povolenou odchylku na vlícovacích bodech. Pro 0 je odchylka na vlícovacích bodech nulová (pouze numerická chyba výpočtu), pro se transformace blíţí afinní.
37.13 Barvy značek Při potvrzení se budou ve vstupním, referenčním a výstupním obrazu kreslit značky v místě vlícovacích bodů v aktuálním souboru. Jejich barvy odpovídají barvám tlačítek za tímto potvrzovacím tlačítkem. Kliknutím na barevné tlačítko lze barvu značek změnit.
37.14 Počet bodů Počet vlícovacích bodů zapsaných v souboru s vlícovacími body.
37.15 testovacích
72
ZODOP
Pokud do tohoto okénka zapíšeme číslo k, bude posledních k vlícovacích bodů povaţováno za testovací, tzn. nebudou pouţity pro výpočet parametrů transformace, ale pouze pro kontrolu její přesnosti.
37.16 Tolerance Výpočet parametrů transformace se provádí Gaussovou eliminací s úplným výběrem. Pokud je příslušná soustava rovnic špatně podmíněná, například kdyţ je zadán stejný vlícovací bod dvakrát, mohlo by to vést k nesmyslným výsledkům. Proto pokud je podmíněnost soustavy počítaná jako poměr posledního a prvního hlavního prvku menší neţ číslo v tomto okénku, transformace se neprovede. Pokud chcete transformaci provést vţdy, kdyţ výpočet dospěje k jakýmkoli výsledkům, zadejte 0.
37.17 Vybrat oblast dat ze vstupu Při potvrzení bude při výpočtu transformace ve výstupu vytvořena vybraná oblast zahrnující část obrazu, do které byla vloţena data ze vstupního obrazu. Vyjímkou je volba Smíchat v komboboxu Data v překryvu, kdy vybraná oblast zahrnuje pouze smíchaná data v překryvu.
37.18 Data v překryvu Zde je moţno zvolit, jak se při výpočtu transformace získají data v oblasti, kde se překrývají data ze vstupního a z referenčního obrazu v případě, ţe bylo potvrzeno tlačítko Spojit vst. s ref. Moţnosti: Ţádná Vstupní Referenční Rozdělit
- oblast překryvu bude vyplněna barvou pozadí - oblast překryvu bude vyplněna daty ze vstupního obrazu - oblast překryvu bude vyplněna daty z referenčního obrazu - oblast překryvu bude rozdělena na dvě části. Část bude vyplněna daty ze vstupního obrazu a část z referenčního.
Smíchat
- oblast překryvu bude vyplněna aritmetickým průměrem dat ze vstupního a referenčního obrazu. - oblast překryvu bude vyplněna váţeným průměrem dat ze vstupního a referenčního obrazu, kde váhy závisejí na vzdálenosti bodu od dat bez překryvu. Upozornění: algoritmus je podstatně pomalejší neţ u ostatních metod.
Pozvolně
37.19 Spojit vst. s ref. Při potvrzení budou při výpočtu transformace k datům ze vstupního obrazu připojena téţ data z referenčního obrazu. Toto potvrzovací tlačítko má vliv i na funkci tlačítka Rozměry výst., při jeho potvrzení budou do rozměrů výstupního obrazu zahrnuty i rozměry referenčního obrazu. Zdroj dat v oblasti, kde se překrývají data ze vstupního a referenčního obrazu je moţno zvolit v komboboxu Data v překryvu.
37.20 Dodatečný posun Pokud není toto tlačítko potvrzeno, jsou při výpočtu rozměrů výstupního obrazu tlačítkem Rozměry výst. stanoveny rozměry pouze od nuly k pravému a dolnímu kraji. Pokud padne část výstupního obrazu do oblasti záporných souřadnic, je při výpočtu transformace odříznuta, jinak je obraz naopak prodlouţen aţ k nule. Při potvrzení tohoto tlačítka jsou rozměry a dodatečný posun stanoveny tak, aby všechny kraje výstupního obrazu souhlasily s mezemi dat. Editační okénka s hodnotou posunu lze vyplnit také přímo bez tlačítka Rozměry výst. Dodatečný posun je přičten k souřadnicím výstupu. Nevýhodou je, ţe potom nelze kontrolovat kvalitu registrace pomocí tlačítka výst <-> ref..
37.21 Zápis vlícovacího bodu Pokud je vybrán nový vlícovací bod, je zapsán do souboru. Téhoţ lze dosáhnout kliknutím pravou myší.
37.22 Smazat vlícovací body Soubor s vlícovacími body je smazán a výběr můţe začít znovu.
37.23 Editace vlícovacích bodů
ZODOP
73
Je zavolán textový editor, pomocí kterého lze editovat soubor s vlícovacími body. Má tento formát: První řádka: inkm i interpolace:
0 nejbliţším sousedem 1 bilineární 2 bikubická
n počet vlícovacích bodů, vyjma testovacích bodů, pokud je záporné, jsou na dalším řádku rozměry a počet vlícovacích bodů je -n. k počet testovacích bodů : k > 0 : kontroluje se přesnost na vlícovacích i testovacích bodech, k = 0 : kontroluje se na vlícovacích bodech, k = -1: nekontroluje se, k < -1: kontroluje se na -1-k testovacích bodech m metoda :
0 kopie
1 posunutí 2 podobnostní transformace 3 afinní transformace 4 projektivní transformace 6 kvadratická transformace 11 surface spline transformace Pokud je n < 0 je na dalším řádku rx ry ox oy rx a ry jsou rozměry referenčního obrazu vodorovně a svisle, pokud je alespoň jeden z nich nulový, jsou ignorovány, ox a oy jsou rozměry výstupního obrazu vodorovně a svisle. Údaje z této řádky jsou pouţity pouze pro inicializaci dialogu, nejsou obnovovány podle nastavení dialogu. Na dalších n nebo –n řádcích je: u v x y poznámka kde u x-ová souřadnice vlícovacího bodu ve vstupním obrázku, v y-ová souřadnice vlícovacího bodu ve vstupním obrázku, x x-ová souřadnice vlícovacího bodu v referenčním obrázku a y y-ová souřadnice vlícovacího bodu v referenčním obrázku. Na dalších k nebo -1-k řádcích jsou souřadnice testovacích bodů. Při pokusu o spuštění vnějšího procesu s textovým editorem se v případném hlášení o chybě můţe vyskytnout chybový kód.
37.24 vst.<->ref. Obsah okna se vstupním a referenčním snímkem je vzájemně zaměněn. Je moţné pouţít pro kontrolu odchylek mezi nimi.
37.25 výst<->ref.
74
ZODOP
Obsah okna s výstupním a referenčním snímkem je vzájemně zaměněn. Je moţné pouţít pro kontrolu kvality výsledku.
37.26 Nový vst. Tlačítko Nový vst. (Nový vstupní obraz) způsobí, ţe obraz označený jako zdrojový se stane novým vstupním obrazem pro geometrické transformace. Pokud ţádný obraz není označen jako zdrojový, je pouze uvolněn starý vstupní obraz z vazeb ke geometrickým transformacím.
37.27 Nový ref. Tlačítko Nový ref. (Nový referenční obraz) způsobí, ţe obraz označený jako zdrojový se stane novým referenčním obrazem pro geometrické transformace. Pokud ţádný obraz není označen jako zdrojový, je pouze uvolněn starý referenční obraz z vazeb ke geometrickým transformacím.
37.28 Vlícovací body v Jméno souboru s vlícovacími body.
37.29 Výběr Výběr souboru s vlícovacími body ze souborů na disku. V případném hlášení o chybě se můţe vyskytnout chybový kód.
37.30 Provést Provést transformaci. Máte-li pochybnosti o přesnosti transformace, odpovězte na dotaz „Pokračovat ?“ Zrušit a podívejte se na záznam o transformaci, který je v tu chvíli hotov. Pokud je v pořádku, zmáčkněte tlačítko „Provést“ znovu. Transformaci lze přerušit klávesou Pause.
37.31 Ukončit Ukončit dialog o geometrických transformacích.
37.32 Záznam o transformaci Objeví se nové okno se protokolem o transformaci. Ten je uloţen v souboru se stejným jménem jako má soubor s vlícovacími body, pouze typ souboru je „.pro“. Jsou v něm uvedena jména a rozměry vstupního a výstupního snímku, souřadnice těţiště vlícovacích bodů ve vstupním snímku, metoda transformace a interpolace, podmíněnost soustavy rovnic pro výpočet koeficientů transformace, koeficienty transformace a odchylky na vlícovacích bodech. Koeficienty transformace jsou uvedeny ve tvaru, který je skutečně při výpočtu pouţit. U odchylek na vlícovacích bodech je uvedeno číslo vlícovacího bodu, jeho souřadnice ve vstupním a v referenčním snímku, souřadnice ve vstupním snímku, odkud se vezme hodnota výsledku na vlícovacím bodu a odchylka na vlícovacím bodu. Na konec je uvedena průměrná odchylka na vlícovacích bodech. Pokud bylo zvoleno pouţití testovacích bodů, jsou uvedeny zvlášť.
38. Snímání V submenu Snímat jsou následující funkce:
38.1 Vybrat zařízení TWAIN Vybrat zařízení připojené k počítači pomocí rozhraní TWAIN, které se bude pouţívat v následném snímání. Typická zařízení jsou scannery a kamery.
38.2 Snímat pomocí TWAIN Snímat pomocí zařízení připojeného k počítači pomocí rozhraní TWAIN. Typická zařízení jsou scannery a kamery. Jedno volání této funkce umoţňuje získat jeden snímek. Funkci lze volat, pouze kdyţ je nějaké takové zařízení k počítači opravdu připojeno.
38.3 Snímat okno Po zvolení této funkce a zmáčknutí nastavené horké klávesy (viz Nastavit snímání z obrazovky, implicitně F11) se z obrazovky sejme okno, které je právě aktivní a vytvoří se z něj nový obraz.
ZODOP
75
38.4 Snímat klientskou plochu Po zvolení této funkce a zmáčknutí nastavené horké klávesy (viz Nastavit snímání z obrazovky, implicitně F11) se z obrazovky sejme klientská plocha okna, které je právě aktivní a vytvoří se z ní nový obraz.
38.5 Snímat celou obrazovku Po zvolení této funkce a zmáčknutí nastavené horké klávesy (viz Nastavit snímání z obrazovky, implicitně F11) se sejme obsah celé obrazovky a vytvoří se z něj nový obraz.
38.6 Snímat okno pod kurzorem Po zvolení této funkce a zmáčknutí nastavené horké klávesy (viz Nastavit snímání z obrazovky, implicitně F11) se z obrazovky sejme okno, které je právě pod kurzorem a vytvoří se z něj nový obraz.
38.7 Snímat plochu Po zvolení této funkce a zmáčknutí nastavené horké klávesy (viz Nastavit snímání z obrazovky, implicitně F11) se na obrazovce se objeví kříţový kurzor a malé okno, pomocí nichţ je moţno nakreslit plochu zadaného tvaru (viz Nastavit snímání plochy, implicitně obdélník), která se potom sejme a vytvoří se z ní nový obraz.
38.8 Snímat objekt Po zvolení této funkce a zmáčknutí nastavené horké klávesy (viz Nastavit snímání z obrazovky, implicitně F11) se na obrazovce se objeví zvolený kurzor (viz Nastavit snímání objektu, implicitně šipka) a kliknutím myší na zvolený objekt se tento sejme a vytvoří se z něj nový obraz.
38.9 Snímat tvar kurzoru Po zvolení této funkce a zmáčknutí nastavené horké klávesy (viz Nastavit snímání z obrazovky, implicitně F11) se z obrazovky sejme aktuální tvar kurzoru a vytvoří se z něj nový obraz.
38.10 Nastavit snímání z obrazovky Zde je moţné zvolit některé parametry snímání z obrazovky, jako je pouţitá horká klávesa, zpoţdění snímání, počet nasnímaných obrazů a interval mezi nimi.
38.11 Nastavit snímání plochy Zde je moţné zvolit některé parametry snímání plochy z obrazovky, zejména tvar snímané plochy.
38.12 Nastavit snímání objektu Zde je moţné zvolit některé parametry snímání plochy z obrazovky, zejména tvar kurzoru.
38.13 Snímat zdroj z EXE Snímat obrazy připojené jako zdroje k souboru typu .exe. Lze snímat bitmapy, ikony a kurzory.
38.14 Konec snímání z obrazovky Touto funkcí je moţné předčasně ukončit nedokončené snímání.
39. Spustit makro Program umoţňuje vytvořit soubor s posloupností příkazů, které se vykonají na jedno zavolání. Tato posloupnost se nazývá makro. Po volbě Spustit makro v hlavním menu se objeví tento dialog:
76
ZODOP
Viz také formát souboru s makrem.
39.1 Výběr makra Tímto tlačítkem je moţno zvolit soubor s makrem pomocí dialogu pro volbu souborů.
39.2 Editace makra Zavolá se textový editor, který umoţní provést změny ve zvoleném makru.
39.3 Spustit Spustí se zvolené makro.
39.4 Krokovat Zvolené makro se spustí v reţimu krokování, tzn., ţe před zpracováním kaţdého příkazu se objeví okno s dotazem, zda má být proveden. Odpověď OK znamená provést příkaz a přejít k dalšímu, odpověď Storno předčasně ukončí makro.
39.5 Zavřít Zavřít dialog o makrech.
39.6 Zpracovává se makro Jméno souboru se zvoleným makrem. Je moţno ho zde vyplnit, nejlépe včetně cesty, nebo zvolit pomocí tlačítka Výběr makra.
39.7 Funkce Jméno právě zpracovávané funkce.
39.8 Podfunkce U sloţitějších funkcí se zde objevuje hodnota nejdůleţitějšího parametru nebo jiné bliţší určení právě zpracovávané funkce.
39.9 Pořadí průchodu cyklem Pokud makro obsahuje funkci Seznamy, objeví se zde pořadí právě zpracovávaného prvku seznamu. Mimo platnost funkce Seznamy zůstává toto políčko prázdné.
39.10 Formát souboru s makrem Makro je tvořeno posloupností příkazů. Kaţdý příkaz začíná jménem funkce, po kterém můţe, ale nemusí, následovat buď jeden argument v kulatých závorkách nebo více argumentů oddělených čárkami. Některé argumenty mohou být vynechány. Pokud za příkazem nebo na začátku řádky je znak
ZODOP
77
lomeno „/‟, je zbytek řádky povaţován za komentář a při zpracování makra se neuvaţuje. Rovněţ zbytek řádky za znakem konec závorky „)‟ je povaţován za komentář. Kaţdý příkaz je na samostatné řádce, ale příliš dlouhé příkazy je moţno rozdělit na více řádek tak, ţe na konci dílčí řádky uprostřed příkazu se umístí znak lomeno „/‟, po kterém tentokrát nesmí následovat komentář. Řádku nelze rozdělit uprostřed argumentu. Existuje limit na celkovou délku řádky po sloučení všech dílčích řádek jednoho příkazu, v současné době to je 16384 znaků. Na začátku řádky, za jménem funkce, před a za argumentem a na konci řádky můţe být libovolný počet znaků mezera nebo tabulátor, které budou ignorovány. Makro skončí, pokud bude dosaţeno konce souboru a při nalezení prázdné řádky nebo funkce KonecMakra. Rozlišují se argumenty dvou základních typů a to typ řetězec, který je uzavřen do uvozovek, a typ jiný, který není. Rozlišují se však pouze tehdy, kdyţ slouţí pro vyhledávání poloţky v komboboxu nebo listboxu, kde řetězec znamená přesné znění poloţky tak jak se objevuje v příslušném dialogu, zatímco jiný argument se chápe jako číslo vyjadřující číslo poţadované řádky. V ostatních případech se typ nerozlišuje a je moţné pouţít oba, jediný rozdíl je v tom, ţe u argumentu typu řetězec se počáteční mezery po znaku uvozovky nevynechávají. Argumenty většinou slouţí k náhradě zadávání parametrů funkce z dialogu, je proto moţné rozlišit druh argumentu podle toho jaký typ prvku dialogu nahrazuje. Kromě jiţ zmíněné volby poloţky v komboboxu nebo listboxu to mohou to být názvy různých druhů tlačítek nebo čísla či řetězce, které se normálně vyplňují do editačních okének. Pokud argument začíná znakem kancelářské a „@‟, znamená název seznamu, ze kterého se teprve vybírá skutečně pouţitá hodnota argumentu, viz funkci Seznamy. Funkce můţe mít neomezený počet argumentů, ale většinou je počet omezen a jeho překročení způsobí chybové hlášení a předčasné ukončení makra. Některé argumenty mohou být povinné, ty jsou zpravidla na začátku seznamu argumentů, po nich následují nepovinné argumenty. Ty lze vynechat, a to buď tak, ţe se seznam skutečných argumentů zkrátí, nebo tak, ţe v seznamu skutečných argumentů následují dvě čárky po sobě. Místo vynechaných argumentů se pouţijí implicitní hodnoty. Nelze však vynechat poslední argument před koncem závorky. Délka jednoho argumentu je omezena, v současné době to je 255 znaků. Při rozpoznávání jmen funkcí i naprosté většiny argumentů se ignoruje jak rozdíl mezi velkými a malými písmeny, tak rozdíl mezi písmeny s háčkem, čárkou či krouţkem a jejich protějšky bez znaménka. Je tedy moţné pouţít jak česká písmena v kódu Windows CP1250, tak kódování ASCII. Rozlišují se zpravidla pouze u jmen souborů. Pokud je funkce volatelná také z menu, bylo její jméno vytvořeno zpravidla vynecháním jiných znaků neţ písmen z řetězce v menu. Existují však také funkce, jejichţ pouţití má smysl pouze v makru, a jiné, která vyţadují příliš velkou interaktivní spolupráci s uţivatelem a které lze volat pouze přímo, mimo makro. Pokud je výsledkem nějaké operace nový obraz, stává se automaticky zdrojovým a je implicitně pouţit jako vstup následující operace. Pokud je někdy nutné porušit lineární zřetězení operací, kdy vstupem operace je výsledek předchozí operace, je to moţné pomocí funkcí OznačitObraz, ZdrojZnačka, VýsledekZnačka a VýsledekZdroj. Nyní následuje abecední seznam jmen funkcí v hlavním programu, které jsou k dispozici vţdy, na rozdíl od funkcí v zásuvných modulech. Je zde obsaţen pouze popis argumentů funkcí a velmi stručný popis činnosti. Podrobnější popis je nutno hledat v nápovědách k interaktivním verzím těchto funkcí. AlfaKanálObraz AritmLogOperace BarvaPozadí ČástečněObnovitZDisku ČástečněZpět Fourier Histogram InverzeVybranéOblasti Kaskáda Komentář KonecMakra KonecSeznamů
78
ZODOP
Konvoluce KopieObrazu KopieVybranéOblasti KouzelnáHůlka LokálníEkvalizaceHistogramu Lupa Měřítko Mozaika NastaveníStrany NovýObraz Obnovit ObnovitZDisku ObrazAlfaKanál Otevřít OznačitObraz Paleta PořádkovýFiltr Seznamy Tisk Transformace Uloţit UloţitJako VlícovacíBody Vloţit VloţitDoNového VloţitVybranouOblast VybratObdélník VybratVše Vyjmout Vymazat VýsledekZdroj VýsledekZnačka ZavřítObraz ZavřítVše ZdrojZnačka Následující funkce jsou k dispozici pouze pokud je dostupný příslušný zásuvný modul. IndexRGB JasAKontrast OtevřítMapu PokusnýObraz PrůchodNulou PřidatŠum RGBIndex RozdělitNaRGB RozdělitNaYHS Spojit ZabalitRozbalit Funkce volatelné také z menu jsou dále v souboru seřazeny podle pořadí v menu.
39.11 Seznamy Tento příkaz umoţňuje definovat seznamy hodnot argumentů jiných příkazů. Má minimálně 1 argument, maximální počet argumentů není omezen. Argument začínající znakem „@‟ (kancelářské a neboli zavináč), znamená jméno seznamu, ostatní argumenty tvoří obsah seznamu. První argument je vţdy jméno seznamu, pak mohou následovat argumenty definující jeho obsah, po nich můţe následovat jméno dalšího seznamu atd. Prvky seznamu mohou být buď vyjmenovány jako jednotlivé argumenty, nebo mohou obsahovat definici cyklu uzavřenou mezi znaky „#‟ se dvěma nebo třemi číselnými parametry oddělenými dvojtečkou „:‟. Dva parametry znamenají počáteční a koncový stav, přičemţ krok je vţdy 1, tři parametry znamenají
ZODOP
79
počáteční stav, počet opakování a krok. U prvního parametru se uvaţuje i počet číslic, který je moţno zvýšit doplněním nulami zleva. Prvek seznamu pak bude v případě potřeby téţ doplněn nulami na minimální počet znaků. Pokud potřebujete, aby se cyklus pouţil u jednoho prvku vícekrát, definije se jen poprvé, dlaší výskyty se nahradí pouze jedním znakem „#‟. O tom, zda prvky seznamu budou typu řetězec nebo ne, rozhoduje, zda první argument definující obsah seznamu je uzavřen do uvozovek. Například příkaz Seznamy(@vstup,C:\images\i#01:100#\s#.bmp,@vystup,“v#1:100:2#“) definuje 2 seznamy, seznam „vstup‟ obsahuje celkem 100 prvků, a to „C:\images\i01\s01.bmp„ aţ „C:\images\i01\s01.bmp„, dále „C:\images\i10\s10.bmp„ aţ „C:\images\i99\s99.bmp„ a „C:\images\i100\s100.bmp„. Prvky nebudou typu řetězec. Seznam „vystup„ obsahuje také 100 prvků, a to „v1.bmp„, „v3.bmp„ aţ „v9.bmp„, „v11.bmp„ aţ „v99.bmp„ a „v101.bmp„ aţ „v199.bmp„ (s krokem 2), prvky budou typu řetězec. Při zpracování příkazu se pro kaţdý seznam vytvoří soubor se stejným jménem jako seznam a s příponou „.tmp„, do kterého se uloţí prvky seznamu, vţdy na kaţdou řádku jeden. Pokud jméno seznamu obsahuje typ souboru oddělený tečkou, bude po skončení makra zachován, v opačném případě bude smazán. Pokud však takovýto soubor existuje před spuštěním makra, bude nový obsah přidán na konec, proto je nutné makro, které takto vytváří soubor se seznamem, pustit jen jednou a před dalším spuštěním soubor se seznamem smazat, jinak bude neustále přibývat prvků seznamu. Další moţností je připravit si tento soubor předem a v příkazu Seznamy definovat jen jeho jméno. Takové makro pak můţe být voláno opakovaně bez omezení. Vzniklý seznam implicitně není typu řetězec, pokud je nutné, aby byl, musí se k němu přidat jako jediný prvek prázdný řetězec, např. Seznamy(@trvaly.txt,““) . Soubory se seznamy jsou umístěny do pracovního adresáře, pokud volíte makro tlačítkem Výběr makra, je to stejný adresář, ve kterém je soubor s makrem. Proto je také nutné, aby do tohoto adresáře byl moţný zápis. Posloupnost příkazů za příkazem Seznamy aţ do příkazu KonecSeznamů je pak prováděna opakovaně pro kaţdý prvek seznamu. Argumenty těchto příkazů ve tvaru znak „@‟ následovaný jménem seznamu (stejný tvar jako v příkazu Seznamy) jsou při kaţdém průchodu nahrazeny aktuálním prvkem seznamu. Pokud je seznamů více, rozhoduje o počtu průchodů cyklem seznam s nejmenším počtem prvků. Příkaz Seznamy nelze vnořovat, tzn. mezi dvěma příkazy Seznamy musí být v makru právě jeden příkaz Konec Seznamů, podobně po posledním příkazu Seznamy.
39.12 KonecSeznamů Konec posloupnosti příkazů, pro kterou platí příkaz Seznamy. Ze seznamů definovaných předchozím příkazem Seznamy se přečte další prvek. Pokud v některém seznamu uţ další prvek není, pokračuje se dalším příkazem po příkazu KonecSeznamů, jinak se pokračuje dalším příkazem po předchozím příkazu Seznamy. Bez argumentů.
39.13 KonecMakra Makro ukončí své provádění. Bez argumentů.
39.14 OznačitObraz Označit aktuální zdrojový obraz značkou. 1 argument: celé číslo od 1 do 32767. Argument je povinný. Toto číslo bude přiřazeno zdrojovému obrazu jako značka, pomocí které je moţno se na něj později odvolávat.
39.15 ZdrojZnačka Obraz s danou značkou bude označen jako zdrojový. 1 argument:
80
ZODOP
celé číslo od 1 do 32767. Argument je povinný. Značka poţadovaného obrazu. Musí existovat obraz označený touto značkou.
39.16 DruhýZnačka Obraz s danou značkou bude označen jako druhý. 1 argument: celé číslo od 1 do 32767. Argument je povinný. Značka poţadovaného obrazu. Musí existovat obraz označený touto značkou.
39.17 DruhýZdroj Zdrojový obraz bude označen zároveň jako druhý. Bez argumentů
39.18 ZastavovacíBod Provádění makra se přeruší a objeví se okno s dotazem, zda pokračovat krokováním. Odpověď Ano znamená přejít do reţimu krokování, odpověď Ne znamená pokračovat normálně mimo reţim krokování a odpověď Storno předčasně ukončí makro. 1 argument: nezáporné celé číslo - pořadí průchodu cyklem. Pokud je příkaz Zastavovací bod mezi příkazy Seznamy a KonecSeznamů, přeruší se makro teprve při průchodu cyklem s pořadím rovným argumentu. Implicitně se zastaví vţdy.
39.19 ZavřítObraz Zavřít zdrojový obraz. Bez argumentů.
39.20 NovýObraz Vytvoří se nový obraz vyplněný barvou pozadí. 3 argumenty: 1. řetězec s módem obrazu. Můţe být:
2.
„Šedý“ – černobílý obraz v 8-bitovém módu „RGB“ – barevný obraz ve 24-bitovém módu RGB celé číslo - vodorovný rozměr (šířka) obrazu
3.
celé číslo - svislý rozměr (výška) obrazu
Implicitně jsou parametry stejné jako při minulém volání. Po spuštění programu (nikoli makra !) jsou „Šedý“,128,128.
39.21 Otevřít Otevřít obraz z diskového souboru. 2 argumenty: 1. Jméno souboru s obrazem. Tento argument je povinný. 2.
Jméno filtru formátu, který se má pouţít jako první. Implicitně se pouţije pořadí filtrů jako v seznamu filtrů v dialogu pro otevření obrazu. Pokud máte více zásuvných modulů pro čtení poţadovaného formátu, můţete zadáním řetězce z tohoto komboboxu určit modul, který se bude pokoušet otevřít obraz jako první.
Obrazy ve formátu Holá data je nutno otvírat pomocí předem připraveného siz souboru, jinak makro uvízne na dotazu po rozměrech obrazu.
39.22 Uloţit Uloţit obraz do původního souboru.
ZODOP
81
Bez argumentů. Pokud byl zdrojový obraz vytvořen jako nový, uvízne makro na dotazu po novém jménu. Chcete-li ukládat nové obrazy, je proto lépe pouţít příkaz UloţitJako.
39.23 UloţitJako Uloţit obraz do diskového souboru pod novým jménem. 2 argumenty: 1. Nové jméno souboru. Tento argument je povinný. 2.
Jméno filtru formátu, který se má pouţít jako první. Implicitně se pouţije pořadí filtrů jako v seznamu filtrů v dialogu pro uloţení obrazu. Pokud máte více zásuvných modulů pro zápis poţadovaného formátu, můţete zadáním řetězce z tohoto komboboxu určit modul, který se bude pokoušet uloţit obraz jako první.
39.24 ObnovitZDisku Přečíst znovu ze souboru zdrojový obraz. Bez argumentů.
39.25 NastaveníStrany Nastavení velikosti a umístění obrazu na stránce při následném tisku. 8 argumentů: 1. Rozlišení obrazu vodorovně nebo šířka obrazu (podle 3. argumentu). 2.
Rozlišení obrazu svisle nebo výška obrazu (podle 3. argumentu).
3.
Jednotka předchozích 2 argumentů. Pokud je to jednotka rozlišení (řetězcový argument „dpi“, „1/cm“, „1/mm“ nebo „1/pt“, číselný -1 aţ -4), jsou první 2 argumenty chápány jako rozlišení, pokud je to jednotka délky (řetězcový argument „cm“, „mm“, „inch“ nebo „pt“, číselný 1 aţ 4), jsou první 2 argumenty chápány jako velikost.
Implicitně, pokud je zadán alespoň jeden z prvních dvou argumentů, je rozlišení vodorovně i svisle stejné, jinak je pouţito implicitní hustoty při tisku (viz funkce O aplikaci v hlavním menu). Pokud se však obraz nevejde na aktuální stránku, je pouţito takové rozlišení, aby se právě vešel. Implicitní jednotka je dpi. 4.
Počátek vodorovně. Můţe být buď jeden z řetězců
„Vlevo“ – Obraz zcela vlevo „Vpravo“ – Obraz zcela vpravo „Střed“ – Obraz uprostřed nebo číslo v plovoucí čárce udávající vzdálenost. Počátek svisle. Můţe být buď jeden z řetězců „Nahoře“ – Obraz zcela nahoře „Dole“ – Obraz zcela dole „Střed“ – Obraz uprostřed nebo číslo v plovoucí čárce udávající vzdálenost. 5.
Jednotka předchozích dvou argumentů, pokud byly zadány číselně. Můţe být zadán buď řetězcový argument „cm“, „mm“, „inch“ nebo „pt“ nebo číselný 1 aţ 4. Implicitně je poloha vodorovně i svisle uprostřed, implicitní jednotka je cm. 7. Rozlišení tiskárny vodorovně 8. Rozlišení tiskárny svisle Implicitně je pouţito údajů z driveru, pokud je zadáno rozlišení vodorovně, je rozlišení svisle implicitně stejné. 6.
39.26 Tisk Tisk zdrojového obrazu na aktuální tiskárně. 5 argumentů: 1. Počet kopií – celé číslo, implicitně jako při minulém tisku, po spuštění programu jedna 2.
Řetězec
82
ZODOP
3.
„Dělení“ – povoleno dělení obrazu na více stránek „Nedělení“ – dělení obrazu na více stránek není povoleno implicitně jako při minulém tisku, po spuštění programu Nedělení.
Řetězec
„Vše“ – tisk celého obrazu „Výběr“ – tisk pouze vybrané oblasti nebo celé číslo – počáteční stránka. Implicitně jako při minulém tisku, po spuštění programu Vše.
4.
celé číslo – koncová stránka. Bere se v úvahu pouze pokud i předchozí argument byl zadán číselně.
5.
Řetězec
„SeřaditKopie“ - Seřadit kopie „NeřaditKopie“ - Neseřadit kopie Ostatní parametry tisku, zejména formát papíru, jeho orientaci a pouţitou tiskárnu je nutno nastavit před spuštěním makra funkcí Nastavení tisku z hlavního menu.
39.27 ČástečněZpět V obdélníkové části obrazu vrátit zpět výsledek předchozí operace. 4 povinné celočíselné argumenty: 1. souřadnice levého kraje obdélníka 2.
souřadnice horního kraje obdélníka
3.
šířka obdélníka
4.
výška obdélníka
39.28 ČástečněObnovitZDisku V obdélníkové části obrazu obnovit obraz ze souboru. 4 povinné celočíselné argumenty: 1. souřadnice levého kraje obdélníka 2.
souřadnice horního kraje obdélníka
3.
šířka obdélníka
4.
výška obdélníka
39.29 Vyjmout Vyjmout vybranou oblast do schránky. Bez argumentů.
39.30 Kopírovat Kopírovat vybranou oblast do schránky. Bez argumentů.
39.31 Vymazat Vyplnit vybranou oblast aktuální barvou. Bez argumentů.
39.32 Vloţit Vloţit schránku do obrazu. Bez argumentů.
39.33 VloţitDoNového Vytvořit ze schránky nový obraz. Bez argumentů.
ZODOP
83
39.34 KopieObrazu Vytvořit kopii obrazu. Bez argumentů.
39.35 AktuálníBarva Změnit aktuální barvu. 4 celočíselné argumenty, z nichţ alespoň jeden musí být pouţit: 1. Index barvy pozadí u obrazu v indexových barvách. 2.
Červená sloţka barvy pozadí u obrazu ve 24-bitovém módu.
3.
Zelená sloţka barvy pozadí u obrazu ve 24-bitovém módu.
4.
Modrá sloţka barvy pozadí u obrazu ve 24-bitovém módu.
Implicitně zůstává příslušná sloţka beze změny.
39.36 Komentář Změnit komentář k obrazu. 1 povinný argument – nový komentář, maximálně 255 znaků.
39.37 Lupa Nastavit měřítko zobrazení obrazu. 3 argumenty: 1. Nové měřítko v % - celé číslo. Pokud první znak argumentu bude jeden ze znaků „+“, „-„, „*“ nebo „/“, přičte, odečte, vynásobí nebo vydělí se argumentem původní měřítko. 2.
Řetězec
„Vlevo“ – zůstane zachována poloha levého okraje obrazu v okně, „Vpravo“ – zůstane zachována poloha pravého okraje obrazu v okně, „Střed“ – zůstane zachována poloha středu obrazu v okně, nebo celé číslo udávající x-ovou souřadnici bodu, jehoţ poloha se má zachovat. Řetězec „Nahoře“ – zůstane zachována poloha horního okraje obrazu v okně, „Dole“ – zůstane zachována poloha dolního okraje obrazu v okně, „Střed“ – zůstane zachována poloha středu obrazu v okně, nebo celé číslo udávající y-ovou souřadnici bodu, jehoţ poloha se má zachovat. Implicitní hodnoty jsou 100,Střed,Střed. Pokud je však zadán pouze jeden nebo oba poslední argumenty, pouţijí se pro zbylé hodnoty z minulého volání. 3.
39.38 Obnovit Překreslit znovu obraz a pokud je to vhodné, změnit rozměry okna. Bez argumentů.
39.39 AritmLogOperace Aritmeticko – logické neboli dvouobrazové operace. 4 argumenty: 1. typ operace – povinný argument. Můţe být jeden z řetězců:
„Součet“ – součet „Rozdíl“ – rozdíl „Součin“ – součin „Podíl“ – podíl „Smíchat“ – lineární kombinace „And“ – logický součin „Or“ – logický součet „Xor“ – výhradní logický součet „Min“ – minimum „Max“ – maximum
84 2.
ZODOP Normalizační konstanta – číslo v plovoucí čárce Implicitně stejné jako při posledním volání (bez ohledu na zvolený typ operace !), na začátku programu 1.
3.
Řetězec
„Znaménko“ – hodnoty v obrázku se budou povaţovat za čísla se znaménkem v kódu posunutá nula. „BezZnaménka“ – hodnoty v obrázku se budou povaţovat za čísla bez znaménka. Implicitně stejné jako při posledním volání, na začátku programu BezZnaménka 4.
Řetězec
„Modulo“ – při přetečení se bude uvaţovat modulo výsledku. „Oříznout“ – při přetečení bude výsledek oříznut. Implicitně stejné jako při posledním volání, na začátku programu Oříznout.
39.40 Histogram Úprava histogramu obrazu. 11 argumentů: 1. typ škály, povinný argument, jeden z řetězců:
2.
„Lineární“ „LinearníParam“ – lineární mezi parametry Dolní práh a Horní práh „Periodická“ – perioda a posun dané parametry Dolní práh a Horní práh „Ekvalizace“ „Okno“ – 2 prahy – parametry Dolní práh a Horní práh „Práh“ – parametr Dolní práh „Exponenciální“ – mezi parametry Dolní práh a Horní práh „Logaritmická“ – mezi parametry Dolní práh a Horní práh „Uţivatelská“ – přečíst škálu ze souboru (5. Argument) „Šedá“ – lineární černobílá Řetězec
3.
„OK“ – provést pouze změnu palety, „Provést“ – přepočítat změny do hodnot v obrazu a nechat původní paletu Celé číslo – parametr Dolní práh
4.
Celé číslo – parametr Horní práh
5.
Jméno souboru se škálou
6.
Sloţka se kterou se pracuje u 24-bitových obrazů. Můţe být buď řetězec, nebo číslo v závorce:
7.
„RGB“, (0) – součet všech 3 sloţek „R“, (1) – červená sloţka „G“, (2) – zelená sloţka „B“, (3) – modrá sloţka „Y“, (4) – jas Řetězec
8.
„Invertovat“ „NeInvertovat“ Celé číslo – parametr Černá
9.
Celé číslo – parametr Bílá
10. Číslo v plovoucí čárce – nová hodnota parametru gama 11. Řetězec
„Vyhladit“ – vyhladit získaný histogram „Nevyhladit“ – získaný histogram pouţít bez úprav
ZODOP
85
Implicitně je 2. Argument OK, 7. Argument NeInvertovat a 5. Argument je pro uţivatelskou škálu povinný. Ostatní parametry stejné jako při předchozím volání, na začátku programu (nikoli makra !) je Dolní práh 0, Horní práh 255, RGB, Černá 0, Bílá 255, gama 0.5 a Nevyhladit.
39.41 Paleta Změna palety. 9 argumentů: 1. Typ operace, povinný argument, jeden z řetězců:
2.
„Šedá“ – typ nové palety. „Systém“ – typ nové palety. „Masky“ – typ nové palety. „Stejné“ – typ nové palety. „Spektrální“ – typ nové palety. „Teplotní“ – typ nové palety. „Tónová“ – typ nové palety. „Pastel“ – typ nové palety. „Země“ – typ nové palety. „Náhodná“ – náhodná paleta od Počátek v délce Délka „Opakování“ – opakování hodnoty na začátku části, parametry Počátek, Délka a Délka části / Cíl „Interpolace“ – lineární interpolace uvnitř částí, parametry Počátek, Délka a Délka části / Cíl „Rozšíření“ – rozšíření části na celou paletu, parametry Počátek, Délka a Délka části / Cíl „Kopírovat“ – kopírovat část palety od Počátek v délce Délka do Délka části / Cíl „Přesunout“ – přesunout část palety od Počátek v délce Délka do Délka části / Cíl „Zaměnit“ – zaměnit části palety od Počátek a od Délka části / Cíl v délce Délka „Jas“ – změnit obraz na černobílý v 8-bitovém módu „UţítNovou“ – přepočítat indexy do nové palety. Starou paletu je nejprve nutno označit operací OznačitStarou, pak paletu změnit a zavolat tuto operaci. „UţítStarou“ – přepočítat indexy do staré palety. Starou paletu je nejprve nutno označit operací OznačitStarou, pak paletu změnit a zavolat tuto operaci. „Přečíst“ – přečíst paletu ze souboru (6. argument). „Uloţit“ – uloţit paletu do souboru (6. argument). „Seřadit“ – seřadit paletu od Počátek v délce Délka podle kriterií v 7. aţ 9. argumentu. „Invertovat“ – obrátit pořadí barev od Počátek v délce Délka. „NastavitBarvu“ – parametry Počátek, Délka a Délka části / Cíl pouţít jako sloţky RGB pro nastavení barvy v paletě na indexu Index. „ZmenšitÚrovně“ – zmenšit počet úrovní na 2^Index v části palety od Počátek v délce Délka. „OznačitStarou“ – současnou paletu označit jako starou pro operace UţítNovou a UţítStarou. Celé číslo – parametr Počátek
3.
Celé číslo – parametr Délka
4.
Celé číslo – parametr Délka části / Cíl
5.
Celé číslo – parametr Index
6.
Jméno souboru s paletou, povinný argument pro operace Přečíst a Uloţit.
7.
První kriterium při řazení palety
8.
Druhé kriterium při řazení palety
9.
Třetí kriterium při řazení palety
Jako 7. aţ 9. argument lze pouţít buď jeden z následujících řetězců nebo číslo uvedené v závorce: „ničeho“ (0) „jasu“ (1) „tónu“ (2)
86
ZODOP
„sytosti“ (3) „červené“ (4) „zelené“ (5) „modré“ (6) Implicitní hodnoty jsou stejné jako při minulém volání, na začátku programu je to počínaje 2. argumentem 0, 256, 16, 0, ,“jasu“, „tónu“ a „sytosti“. Implicitní stará paleta je paleta typu Systém.
39.42 Konvoluce Filtrace obrazu pomocí konvoluce. 4 argumenty: 1. Typ filtru – buď číslo filtru nebo řetězec s přesným názvem předdefinovaného filtru, viz poznámka 1. 2.
Typ okrajů – buď jeden z následujících řetězců nebo číslo v závorce
3.
„Opakovat okraje“ (0) „Periodické“ (1) „Zrcadlové“ (2) „Nulami“ (3) „Úplný výsledek“ (4) „Nedotčený vnitřek“ (5) Řetězec
4.
„Byte“ – výsledek není přepočten do rozsahu minimum – maximum „Float“ – výsledek je přepočten do rozsahu minimum – maximum Jméno souboru s uţivatelským filtrem. Při pouţití tohoto argumentu má uţivatelský filtr přednost před filtrem v 1. argumentu.
Poznámka 1: Je povinné pouţít buď 1. nebo 4. argument. Implicitní hodnoty 2. a 3. argumentu jsou stejné jako při minulém volání, na začátku programu „Opakovat okraje“ a Byte. Moţné hodnoty 1. argumentu: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
„Derivative north 1“ „Derivative north 2“ „Derivative north east 1“ „Derivative north east 2“ „Derivative east 1“ „Derivative east 2“ „Derivative south east 1“ „Derivative south east 2“ „Derivative south 1“ „Derivative south 2“ „Derivative south west 1“ „Derivative south west 2“ „Derivative west 1“ „Derivative west 2“ „Derivative north west 1“ „Derivative north west 2“ „Laplacian 1“ „Laplacian 2“ „Laplacian 3“ „Laplacian 4“ „Laplacian 5“ „Laplacian 6“ „Laplacian 7“ „Extended Laplacian“ „Two chanel Laplacian - product“ „Enhancement (small)“ „Enhancement (normal)“ „Enhancement (strong)“ „Enhancement (maximum)“ „Enhancement type 1“
ZODOP 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90.
„Enhancement type 2“ „Enhancement type 3“ „Enhancement type 4“ „Smoothing 1“ „Smoothing 2“ „Smoothing 3“ „Smoothing 4“ „Smoothing 2 x 2“ „Smoothing 4 x 4 a“ „Smoothing 4 x 4 b“ „Smoothing 5 x 5 a“ „Smoothing 5 x 5 b“ „Smoothing 6 x 6“ „Derivative horizontal 1“ „Derivative horizontal 2“ „Derivative vertical 1“ „Derivative vertical 2“ „Vertical line detection“ „Horizontal line detection“ „1st diagonal detection“ „2nd diagonal detection“ „3-level maxabs 3 x 3“ „3-level maxabs 5 x 5“ „3-level maxabs 7 x 7“ „3-level maxabs 9 x 9“ „5-level maxabs 3 x 3“ „Prewitt mean-square 3 x 3“ „Prewitt sumabs 3 x 3“ „Prewitt mean-square 5 x 5“ „Prewitt sumabs 5 x 5“ „Prewitt mean-square 7 x 7“ „Prewitt sumabs 7 x 7“ „Prewitt mean-square 9 x 9“ „Prewitt sumabs 9 x 9“ „Roberts mean-square“ „Roberts sumabs“ „Sobel mean-square“ „Sobel sumabs“ „Compass max“ „Kirsch max“ „Pyramid maxabs 5 x 5“ „Pyramid maxabs 7 x 7“ „Pyramid maxabs 9 x 9“ „Mean-square“ „Kasvand - Laplacian identitty“ „Kasvand line enhancement max-floor“ „Eberlain maxabs-sub-floor“ „Normalizer 4 x 4“ „Normalizer 5 x 5“ „f-delsq(f)“ „Fyy simple“ „Template of object“ „First differential“ „Marr 1/sqrt(2) 5 x 5“ „Marr 1 7 x 7“ „Marr sqrt(2) 9 x 9“ „Marr 2 11 x 11“ „Marr 2sqrt(2) 23 x 23“ „Marr 4 31 x 31“ „Marr 4sqrt(2) 41 x 41“
87
88
ZODOP
91. „Marr 8 53 x 53“ 92. „Marr 8sqrt(2) 69 x 69“
39.43 PořádkovýFiltr Filtrace pomocí pořádkového filtru. 4 argumenty: 1. Typ filtru – řetězec
2.
„Medián“ – mediánová filtrace. „Maximum“ – filtrace typu maximum z okolí „Minimum“ – filtrace typu minimum z okolí „MaxMinMajor“ – filtrace typu maximum-minimum „MaxValMin“ – filtrace typu bliţší z maxima, minima. „Šum“ – mediánová filtrace pouze při nadprahových hodnotách, práh je 4. argument. „Horní“ – mediánová filtrace pouze při podprahových hodnotách, práh je 4. argument. Velikost okolí – celé číslo.
3.
Typ okolí
4.
„Kruh“ – kruhové okolí. „Čtverec“ – čtvercové okolí. Celé číslo – parametr práh filtru Šum a Horní. Implicitní hodnoty jsou stejné jako při minulém volání, na začátku programu je to Medián, 5, Kruh, 0.
39.44 LokálníEkvalizaceHistogramu Práce s Lokálním histogramem. 3 argumenty: 1. Typ operace – řetězec
2.
„Histogram1“ – ekvalizace histogramu (zachovává konstantní plochy) „Histogram2“ – ekvalizace histogramu (na konstantní ploše 128) „Histogram3“ – ekvalizace histogramu (na konstantní ploše 0) „StředníHodnota“ – vyrovnání střední hodnoty. Poloměr okolí – celé číslo.
3.
Typ okolí
„Kruh“ – kruhové okolí. „Čtverec“ – čtvercové okolí. Implicitní hodnoty jsou stejné jako při minulém volání, na začátku programu je to Histogram1, 5, Kruh.
39.45 Fourier Fourierova transformace. 24 argumentů: 1. Typ operace, povinný argument, jeden z řetězců:
2.
„if“ – převod z pevné do plovoucí čárky. „dFFT“ – přímá Fourierova transformace. „Visualizace“ – visualizace spektra nebo filtru. „TvorbaFiltru“ – vytvoření filtru. „Filtrace“ – provedení filtrace. „iFFT“ – inverzní Fourierova transformace. „fi“ – převod z plovoucí do pevné čárky. „ifdFFT“ – převod z pevné do plovoucí čárky a přímá Fourierova transformace. „iFFTfi“ – inverzní Fourierova transformace a převod z plovoucí do pevné čárky. „TvorbaFiltruFiltrace“ – vytvoření filtru a provedení filtrace. „ZaměnitSF“ – zaměnit spektrum a filtr. „Doplnění“ – bude vytvořen obraz doplněný na rozměry dané parametry lc a lr Jméno souboru se spektrem
ZODOP 3.
Jméno souboru s filtrem
4.
Typ doplnění – buď jeden z následujících řetězců nebo číslo v závorce
5.
„nulami“ (0) „zrcadlením“ (1) „periodickým prodlouţením“ (2) „střední hodnotou“ (3) „opakováním krajního řádku a sloupce“ (4) „shlazením k nule“ (5) „shlazením ke střední hodnotě“ (6) Typ filtru – buď jeden z následujících řetězců nebo číslo v závorce
6.
„ţádný“ (0) „pásmový“ (1) „směrový“ (2) „Gaussův“ (3) „exponenciální“ (4) „derivační“ (5) „import filtru“ (6) „konstantní“ (7) „komplementární“ (8) „násobený -1“ (9) „násobený sqrt(-1)“ (10) „převrácená hodn.“ (11) Číslo v plovoucí čárce – parametr lc
7.
Číslo v plovoucí čárce – parametr lr
8.
Číslo v plovoucí čárce – parametr hc
9.
Číslo v plovoucí čárce – parametr hr
89
10. Číslo v plovoucí čárce – parametr vf, v případě, ţe typ filtru je směrový, můţe být téţ jeden z řetězců „pí“ nebo „p“ (ekvivalent 3.141592653589793), „deg“, „degree“, „d“, „°“, „stupeň“ nebo „s“ (ekvivalent 3.141592653589793/180), „grad“ nebo „g“ (ekvivalent 3.141592653589793/200), „rad“ nebo „radián“, „r“ (ekvivalent 1). Parametry lc, lr, hc, hr a vf mají různý význam podle typu filtru. 11. Typ filtrace – buď jeden z následujících řetězců nebo číslo v závorce „*“ (1): spektrum=spektrum*filtr „+“ (2): spektrum=spektrum+filtr „=“ (3): spektrum=filtr 12. Visualizace – buď jeden z následujících řetězců nebo číslo v závorce „spektra“ (0) „filtru“ (1) 13. Visualizovaná sloţka – buď jeden z následujících řetězců nebo číslo v závorce „logaritmická“ (1) „amplitudová“ (2) „fázová“ (3) „reálné části“ (4) „imaginární části“ (5) 14. Číslo v plovoucí čárce – Dolní mez visualizace 15. Číslo v plovoucí čárce – Horní mez visualizace 16. Jednotka mezí visualizace – buď jeden z následujících řetězců nebo číslo v závorce „%“ (1) „úrovně šedi“ (2) „úrovně vstupu“ (3) 17. Sloţka převáděná na celá čísla – buď jeden z následujících řetězců nebo číslo v závorce
90
ZODOP
„logaritmický“ (1) „amplitudový“ (2) „fázový“ (3) „reálná část“ (4) „imaginární část“ (5) 18. Číslo v plovoucí čárce – Dolní mez převodu na celá čísla 19. Číslo v plovoucí čárce – Horní mez převodu na celá čísla 20. Jednotka převodu na celá čísla – buď jeden z následujících řetězců nebo číslo v závorce „%“ (1) „úrovně šedi“ (2) „úrovně vstupu“ (3) 21. Řetězec „Doplnění“ – bude vytvořen obraz doplněný na nejbliţší vyšší mocninu 2 „NeDoplnění“ – nebude vytvořen obraz doplněný na nejbliţší vyšší mocninu 2 22. Řetězec „Smazat“ – po výpočtu smazat soubory v plovoucí čárce „NeSmazat“ – po výpočtu nemazat soubory v plovoucí čárce 23. Celé číslo – Šířka obrazu 24. Celé číslo – Výška obrazu. Implicitní hodnoty stejné jako při posledním volání, po spuštění programu (nikoli makra !) jsou počínaje 2. argumentem „spektrum“, „filtr“, „zrcadlením“, „pásmový“, 0.0, 0.0, 0.25, 0.25, 1.0, „*“, „spektra“, „logaritmická“, 0, 100, „%“, „reálná část“, 0, 255, „úrovně vstupu“, „NeDoplnění“ a „Smazat“. Implicitní hodnoty 23. a 24. argumentu jsou rozměry zdrojového obrazu při poslední operaci „if“ nebo „ifdFFT“, tedy převodu obrazu do plovoucí čárky. Pokud je první operace jiná, je třeba tyto argumenty zadat.
39.46 Měřítko Změnit rozměry obrazu. 5 argumentů: 1. Nový rozměr vodorovně – řetězec obsahující číslo v plovoucí čárce (pokud je jednotka rozměru vodorovně „Pixelů“, musí být číslo celé) nebo poměr dvou celých čísel 2.
Nový rozměr svisle – řetězec obsahující číslo v plovoucí čárce (pokud je jednotka rozměru svisle „Pixelů“, musí být číslo celé) nebo poměr dvou celých čísel
3.
Řetězec
4.
„PoměrStran“ – pokud byl zadán právě jeden z předchozích dvou argumentů, dopočítá se druhý tak, aby poměr stran zůstal zachován. Pokud byly zadány oba, výška se ignoruje a dopočítá se ze šířky. „NePoměrStran“ – dopočet se neprovede, nezadané rozměry zůstanou beze změny. Jednotka rozměru vodorovně – buď jeden z následujících řetězců nebo číslo v závorce
5.
„Pixelů“ (0) „%“ (1) „Zvětšit/Zmenšit“ (2) Jednotka rozměru svisle – buď jeden z následujících řetězců nebo číslo v závorce
6.
„Pixelů“ (0) „%“ (1) „Zvětšit/Zmenšit“ (2). Pouţitá interpolace – buď jeden z následujících řetězců nebo číslo v závorce
„Průměrováním“ (0) „Nejbliţším sousedem“ (1) „Bilineární“ (2) „Bikubická“ (3) „Nejbliţším sousedem LeadTools“ (4) „Preference černé LeadTools“ (5) „Bilineární+průměrování LeadTools“ (6) „Bikubická+průměrování LeadTools“ (7).
ZODOP
91
Implicitně jako při minulém pouţití, po spuštění programu PoměrStran, Pixelů a Průměrováním.
39.47 Transformace Jednoduché geometrické transformace obrazu. Druh transformace, povinný argument, jeden z řetězců: „Doleva“ – otočení doleva o 90 stupňů. „Doprava“ – otočení doprava o 90 stupňů. „Zrcadlení“ – zrcadlení. „Překlopení“ – překlopení. „Otočení“ – otočení o obecný úhel. „VodorovnýStřih“ „SvislýStřih“ 2. Reálné číslo - úhel otočení nebo střihu. 3. Pouţitá interpolace – buď jeden z následujících řetězců nebo číslo v závorce 1.
4.
„Nejbliţším sousedem“ (0) „Bilineární“ (1) „Bikubická“ (2). Rozměry při otočení - buď jeden z následujících řetězců nebo číslo v závorce
„Opsaný obdélník“ (0) „Zachovat“ (1). Implicitně jako při minulém pouţití, po spuštění programu 0, Nejbliţším sousedem a Opsaný obdélník.
39.48 VlícovacíBody Geometrická transformace určená vlícovacími body. 12 argumentů: 1. Jméno souboru s vlícovacími body, povinný argument. 2.
Řetězec „Rozměry“ – rozměry výstupního obrazu budou zjištěny pomocí přímé transformace, nebo celé číslo – šířka výstupního obrazu.
3.
Řetězec „DodatečnýPosun“ – pokud bude při přímé transformaci mít část výstupního obrazu záporné souřadnice, bude i tato část zahrnuta do výsledku, řetězec „BezDodatečnéhoPosunu“ (implicitně), nebo celé číslo – výška výstupního obrazu.
4.
Metoda – buď jeden z následujících řetězců nebo číslo v závorce
5.
„kopie“ (0) „posunutí“ (1) „podobnostní“ (2) „afinní“ (3) „projektivní“ (4) „inverzní kvadratická“ (6) „povrchově splajnová“ (11) Interpolace – buď jeden z následujících řetězců nebo číslo v závorce
6.
„nejbliţším sousedem“ (0) „bilineární“ (1) „bikubická“ (2) Číslo v plovoucí čárce – parametr lambda (koeficient odchylky), pouze pokud metoda je „povrchově splajnová“.
7.
Číslo v plovoucí čárce – parametr tolerance.
8.
Řetězec „Spojit“ – ve výsledku budou spojena data ze vstupního a z referenčního obrazu, řetězec „Nespojit“ – pouze ze vstupního (implicitně). Jiný řetězec bude chápán jako jméno vstupního souboru při práci v souboru a parametry 9 – 11 pak jako upřesnění této práce.
9.
Způsob spojení dat – buď jeden z následujících řetězců nebo číslo v závorce nebo při práci v souboru jméno výstupního souboru
92
ZODOP
„Ţádná“ (0) „Vstupní“ (1) „Referenční“ (2) „Rozdělit“ (3) implicitně „Smíchat“ (4) „Pozvolně“ (5) 10. Celé číslo – dodatečný posun vodorovně, při práci v souboru šířka vstupního obrazu. 11. Celé číslo – dodatečný posun svisle, při práci v souboru výška vstupního obrazu. 12. Řetězec „Výběr“ – Ve výstupním obrazu bude vytvořena vybraná oblast zahrnující data ze vstupního obrazu, pokud 8. parametr bude „Spojit“ a 9. „Smíchat“ (4) nebo „Pozvolně“ (5), pak vybraná oblast bude zahrnovat pouze data kombinovaná ze vstupního i referenčního obrazu. Řetězec „BezVýběru“ – vybraná oblast nebude vytvořena (implicitně). Pokud nejsou uvedeny argumenty 2 aţ 5, zjišťují se ze souboru s vlícovacími body. Pokud rozměry výstupu nejsou ani tam, jsou implicitně stejné jako vstupu. 6. a 7. argument jsou implicitně stejné jako při minulém volání, po spuštění programu je lambda=0 a tolerance=10^-16.
39.49 VybratVše Vybraná oblast se zruší a následné operace se budou provádět na celém obrazu. Bez argumentů.
39.50 VybratObdélník Vybrat oblast pomocí souřadnic. 6 argumentů, první 4 celočíselné povinné: 1. souřadnice levého kraje obdélníka 2.
souřadnice horního kraje obdélníka
3.
šířka obdélníka
4.
výška obdélníka
5.
Řetězec začínající jedním ze znaků
6.
+ nová vybraná oblast se sjednotí se stávající – nová vybraná oblast se odečte od stávající x nová vybraná oblast se přidá ke stávající a překryv se odečte 0 nová vybraná oblast přepíše stávající (implicitně). Řetězec určující tvar vybrané oblasti „Obdélník“ (implicitně) „OblýObdélník“ „Elipsa“
39.51 KouzelnáHůlka Určit vybranou oblast metodou růstu oblasti. 4 argumenty: 1. Celé číslo – x-ová souřadnice počátečního bodu. 2.
Celé číslo – y-ová souřadnice počátečního bodu.
3.
Celé číslo – citlivost kouzelné hůlky.
4.
Řetězec začínající jedním ze znaků
+ nová vybraná oblast se sjednotí se stávající – nová vybraná oblast se odečte od stávající 0 nová vybraná oblast přepíše stávající. Implicitní hodnoty jsou stejné jako při posledním volání, argumenty 1, 2 a 4 lze změnit pouze voláním této funkce z makra. Po spuštění programu jsou hodnoty nastaveny na 0, 0, 51, „0“.
39.52 VloţitVybranouOblast Vloţit tvar vybrané oblasti do zdrojového obrazu.
ZODOP
93
Bez argumentů.
39.53 InverzeVybranéOblasti Invertovat vybranou oblast. Bez argumentů.
39.54 KopieVybranéOblasti Tvar vybrané oblasti bude překopírován ze zdrojového do výsledného obrazu. Bez argumentů.
39.55 AlfaKanálObraz Vytvoří se nový obraz, ve kterém vybraná oblast bude vyznačena bíle a zbytek černě. Bez argumentů.
39.56 ObrazAlfaKanál Ve výsledném obrazu bude tvar vybrané oblasti určen podle zdrojového obrazu prahováním. 1 celočíselný argument: práh. Pokud nebude zadán a zdrojový obraz nebude binární, uvízne makro na dotazu po tomto prahu.
39.57 Kaskáda Seřadit všechny otevřené obrazy do kaskády. Bez argumentů.
39.58 Mozaika Seřadit všechny otevřené obrazy do mozaiky. Bez argumentů.
39.59 ZavřítVše Zavřít všechny obrazy, přičemţ dotazy po uloţení budou potlačeny. Bez argumentů. Následující funkce jsou zajišťovány pomocí zásuvných modulů, takţe jsou k dispozici, jen pokud je k dispozici příslušný zásuvný modul.
39.60 JasAKontrast Změna jasu a kontrastu obrazu neboli práce s konstantou. 3 argumenty: 1. Číslo v plovoucí čárce – parametr jas (implicitně 0). 2.
Číslo v plovoucí čárce – parametr kontrast (implicitně 1).
3.
Řetězec
„OK“ – provést pouze změnu palety (implicitně), „Provést“ – přepočítat změny do hodnot v obrazu a nechat původní paletu. Je třeba alespoň jeden argument skutečně zadat. Pozn. Pro barevné obrazy v RGB módu je nutno zadat 3. argument „Provést“, jinak příkaz nemá ţádný vliv. Pro barevné obrazy v indexových barvách je naopak lépe zvolit „OK“ a změny přepočítat příkazem Paleta, např. takto: Paleta(OznačitStarou) JasAKontrast(-50,1.5,“OK“) Paleta(UžítStarou) Volit svobodně mezi „OK“ a „Provést“ tedy má smysl pouze pro černobílé obrazy.
39.61 PokusnýObraz
94
ZODOP
Vytvořit pokusný obraz. Bez argumentů.
39.62 RozdělitNaRGB Rozdělit obraz v RGB módu na 3 nové obrazy, obsahující červenou, zelenou a modrou sloţku. 3 celočíselné argumenty. Pokud jsou zadány, pouţijí se jako značky pro nově vzniklé obrazy.
39.63 RozdělitNaYHS Rozdělit obraz v RGB módu na 3 nové obrazy, obsahující sloţky jas, tón a sytost. 3 celočíselné argumenty. Pokud jsou zadány, pouţijí se jako značky pro nově vzniklé obrazy.
39.64 Spojit Spojit 3 černobílé (8-bitové) obrazy do jednoho barevného v RGB módu. 4 argumenty: První 3 jsou celočíselné značky vstupních obrazů, 4. argument je jeden z řetězců: „RGB“ – vstupní obrazy jsou povaţovány za sloţky červenou, zelenou a modrou. (implicitně) „YHS“ – vstupní obrazy jsou povaţovány za sloţky jas, tón a sytost. Pokud nebudou vstupní obrazy nalezeny, dojde k chybě, takţe první 3 argumenty jsou povinné.
39.65 IndexRGB Převod obrazu z 8-bitových indexových barev do 24-bitového RGB módu. Bez argumentů.
39.66 RGBIndex Převod obrazu ze 24-bitového RGB módu do 8-bitových indexových barev. 4 argumenty: 1. typ palety, jeden z řetězců:
2.
„Systém“ – systémová paleta (implicitně), „Adaptivní“ – paleta podle četnosti barev v obrazu, „Zákaznická“ – paleta ze souboru. V případě adaptivní palety celé číslo – parametr počet barev (implicitně 256), jinak jméno souboru s paletou.
3.
Parametr počet úrovní vstupů – buď jeden z následujících řetězců nebo číslo v závorce
4.
„8“, (3) „16“, (4) „32“, (5) „64“, (6 – implicitně) „128“, (7) „256“, (8) Řetězec
„Dithering“ – pro počet úrovní vstupu menší nebo roven 64 se pouţije dithering „BezDitheringu“ – nepouţije se dithering (implicitně). V případě typu palety Systém se ostatní argumenty ignorují, při Zákaznická je argument se jménem souboru povinný a při Adaptivní se uvaţují všechny argumenty.
39.67 ZabalitRozbalit Změna počtu bitů na pixel. 2 argumenty: 1. Výsledný počet bitů na pixel. Můţe být 1, 2, 4 nebo 8. Implicitně 8. 2.
Nejvyšší pouţitý bit – buď číslo 0 aţ 7 nebo řetězec „NejvyššíPouţitýBit“, který můţe být následován znaménkem + nebo – a číslicí 0 aţ 7. Implicitně 0.
Pokud je ve druhém argumentu pouţit řetězec „NejvyššíPouţitýBit“, je určeno, který nejvyšší bit je ve vstupním obrazu skutečně pouţit a k výsledku se přičte nebo od něj odečte případná číselná
ZODOP
95
hodnota. Vstupní obraz nesmí mít více neţ 8 bitů na pixel, jinak je nutno napřed pouţít funkci RGBImdex.
39.68 PrůchodNulou Testuje průchody hodnot v obrazu nulou (v kódu posunutá nula). 1 celočíselný argument – minimální strmost signálu při průchodu nulou (implicitně 1).
39.69 PřidatŠum Přidat do obrazu Šum. 3 argumenty: 1. číslo v plovoucí čárce – standardní odchylka šumu (implicitně 32). 2.
Rozloţení šumu
3.
„Gaussův“ – Gaussovo (implicitně) „Rovnoměrný“ – Rovnoměrné typ šumu
„Náhodný“ – pokaţdé jiný (implicitně) „Definovaný“ – pokaţdé stejný.
39.70 OtevřítMapu Otevřít mapu sloţenou ze čtverců. 11 argumentů: 1. Řetězec s číslem mapy – povinný argument. 2.
Soubor s vlícovacími body pro otočení mapy, implicitně se nevytvoří.
3.
řetězec
4.
„TFW“ – vytvoří se soubor se jménem stejným jako soubor s vlícovacími body, pouze s příponou ‚.tfw„, obsahující údaje nutné pro správné odečítání souřadnic funkcí Souřadnice. „BezTFW“ – tento soubor se nevytvoří (implicitně) Tfw soubor otočené mapy obsahující údaje nutné pro správné odečítání souřadnic funkcí Souřadnice. Implicitně se nevytvoří.
5.
Zmenšení – celé číslo (implicitně 1).
6.
Zvětšení – celé číslo (implicitně 1).
7.
Levý okraj výřezu – celé číslo (implicitně levý okraj mapy).
8.
Horní okraj výřezu – celé číslo (implicitně horní okraj mapy).
9.
Šířka výřezu – celé číslo (implicitně přes celou mapu).
10. Výška výřezu – celé číslo (implicitně přes celou mapu). 11. Adresář se čtverci (implicitně jako při minulém volání). 12. Soubor se seznamem čtverců (implicitně jako při minulém volání). 13. Soubor se seznamem vrcholů (implicitně jako při minulém volání). Poznámka: Zatímco parametry 1 aţ 10 nemají vliv na volání funkce z menu, parametry 11 aţ 13 se zapisují do inicializačního souboru a v případě chybného zadání je pak nutno zavolat funkci z menu a zadat je správně, proto buďte při jejich zadávání v makru opatrní. Příklad: otevritmapu(12-41-18,c:\mapa\mapa.vli,tfw,c:\mapa\mapao.tfw,3,2) vlicovacibody(c:\mapa\mapa.vli) ulozitjako(c:\mapa\mapao.tif)
96
ZODOP
Předpokládá se, ţe adresář se čtverci, soubor se seznamem čtverců a soubor se seznamem vrcholů je nastaven od minulého volání funkce pomocí dialogu a je moţno tyto údaje získat z inicializačního souboru. Prvním příkazem se vytvoří obraz s neotočenou mapou 12-41-18 dvakrát zvětšený a třikrát zmenšený, tedy v měřítku 2/3 původního, soubor s vlícovacími body a tfw soubory neotočené i otočené mapy. Druhým příkazem se mapa otočí podle údajů v souboru s vlícovacími body a třetím příkazem se otočená mapa uloţí na disk a zároveň přejmenuje. Jméno otočené mapy se musí od jména tfw souboru otočené mapy lišit pouze příponou.
40. Funkce pracující s vybranou oblastí Některé funkce umoţňují pracovat pouze s částí obrazu zvanou „vybraná oblast“ (angl. selection). V jednoduchém rastrovém obrazu můţe můţe mít vybraná oblast jakýkoli tvar, kterýkoli pixel do ní můţe buď patřit nebo nepatřit a existuje řada způsobů, jak oblast vybrat. Naproti tomu ve vektorovém a vícevrstvém obrazu můţe být vybraná oblast pouze obdélníková a jediná operace, která s ní pracuje, je vytvoření rastrové verze vybrané oblasti.
40.1 Vybrat vše Vybraná oblast bude zahrnovat celý obraz (implicitní stav po vytvoření nového obrazu). Paměť pro uloţení tvaru vybrané oblasti bude uvolněna.
40.2 Vybrat dialogem Dialog zajišťující několik způsobů výběru oblasti. Pokud bude zmáčknuto tlačítko pevný počátek a alespoň jedno z tlačítek pevný rozměr, 1 řádek nebo 1 sloupec, provede se výběr při potvrzení tlačítkem OK, jinak se provede při zadání chybějících parametrů myší přímo v obrázku. Pokud při provedení akce byla zmáčknuta klávesa Shift, přidá se nová oblast k původní, při zmáčknutí klávesy Ctrl se nová oblast odkrojí od původní, při zmáčknutí obou kláves se nová oblast přidá k původní, ale
překryv se od ní odečte, jinak se původní oblast přepíše novou. Takto vypadá dialogové okno
40.2.1
pevný počátek
Při potvrzení bude mít vybraný obdélník pevný počátek daný parametry první řádek a první sloupec. 40.2.2
první řádek
Souřadnice horního okraje vybraného obdélníku. 40.2.3
první sloupec
Souřadnice levého okraje vybraného obdélníku. 40.2.4
pevný rozměr
ZODOP
97
Při potvrzení bude mít vybraný obdélník pevný rozměr daný parametry počet sloupců a počet řádků. 40.2.5
počet sloupců
Počet sloupců (šířka) vybraného obdélníku. 40.2.6
počet řádků
Počet řádků (výška) vybraného obdélníku. 40.2.7
Obdélník
Vybere se oblast ve tvaru obdélníka. 40.2.8
Oblý obdélník
Vybere se oblast ve tvaru obdélníka s kulatými rohy. Poloosa elipsy v rohu je 1/6 rozměru obdélníka. 40.2.9
Elipsa
Vybere se oblast ve tvaru elipsy. 40.2.10
1 řádek
Vybraný obdélník bude obsahovat pouze jeden řádek. 40.2.11
1 sloupec
Vybraný obdélník bude obsahovat pouze jeden sloupec. 40.2.12
OK
Vybrat zadaný obdélník. Pokud zbývají některé parametry neurčené, je nutno je zvolit pomocí myši a jejího levého tlačítka přímo v obraze. 40.2.13
Zrušit
Zrušit dialog o výběru obdélníku.
40.3 Vybrat obdélník Při tomto způsobu volby klikněte levou myší na obraz, najeďte kurzorem pomocí myši v obrazu na poţadovaný roh obdélníku (většinou levý horní), klikněte levým tlačítkem myši, najeďte na protilehlý roh (většinou pravý dolní) a opět klikněte levým tlačítkem myši. Pokud na konci akce byla zmáčknuta klávesa Shift, přidá se nová oblast k původní, při zmáčknutí klávesy Ctrl se nová oblast odkrojí od původní, jinak (téţ při zmáčknutí obou kláves) se původní oblast přepíše novou.
40.4 Vybrat oblý obdélník Při tomto způsobu volby oblého obdélníka klikněte levou myší na obraz, najeďte kurzorem pomocí myši v obrazu na poţadovaný roh opsaného obdélníku (většinou levý horní), klikněte levým tlačítkem myši, najeďte na protilehlý roh (většinou pravý dolní) a opět klikněte levým tlačítkem myši. Pokud na konci akce byla zmáčknuta klávesa Shift, přidá se nová oblast k původní, při zmáčknutí klávesy Ctrl se nová oblast odkrojí od původní, při zmáčknutí obou kláves se nová oblast přidá k původní, ale překryv se od ní odečte, jinak se původní oblast přepíše novou.
40.5 Vybrat elipsu Při tomto způsobu volby elipsy klikněte levou myší na obraz, najeďte kurzorem pomocí myši v obrazu na poţadovaný roh opsaného obdélníku (většinou levý horní), klikněte levým tlačítkem myši, najeďte na protilehlý roh (většinou pravý dolní) a opět klikněte levým tlačítkem myši. Pokud na konci akce byla zmáčknuta klávesa Shift, přidá se nová oblast k původní, při zmáčknutí klávesy Ctrl se nová oblast odkrojí od původní, při zmáčknutí obou kláves se nová oblast přidá k původní, ale překryv se od ní odečte, jinak se původní oblast přepíše novou.
40.6 Obecný tvar Kreslení oblasti obecného tvaru. Najeďte myší nad obraz, zmáčkněte levé tlačítko myši a nakreslete oblast poţadovaného tvaru. Je téţ moţné zmáčknout klávesu Alt, myš pak kreslí úsečky a kaţdé kliknutí levou myší znamená začátek nové úsečky. Pokud drţíte levou myš zmáčknutou, kreslí se jako bez Alt. Pokud na konci akce byla zmáčknuta klávesa Shift, přidá se nová oblast k původní, při
98
ZODOP
zmáčknutí klávesy Ctrl se nová oblast odkrojí od původní, jinak (téţ při zmáčknutí obou kláves) se původní oblast přepíše novou.
40.7 Kouzelná hůlka Klikněte myší na vybraný pixel a do vybrané oblasti budou zahrnuty ty pixely, jejichţ hodnota indexu leţí v daném tolerančním pásmu a které sousedí hranou s některým z pixelů dříve zahrnutých do nové oblasti. V případě obrazů v RGB módu musí být hodnoty všech 3 kanálů v daném tolerančním pásmu. Pokud na konci akce byla zmáčknuta klávesa Shift, přidá se nová oblast k původní, při zmáčknutí klávesy Ctrl se nová oblast odkrojí od původní, jinak (téţ při zmáčknutí obou kláves) se původní oblast přepíše novou. Po dvojitém kliknutí je moţné nastavit toleranční pásmo (viz Nastavení citlivosti kouzelné hůlky).
40.8 Nastavení citlivosti kouzelné hůlky Zde je moţné nastavit toleranční pásmo rovna c t a zároveň menší nebo rovna zkoumaný pixel zahrnut do oblasti.
t kouzelné hůlky. Pokud bude hodnota pixelu i větší nebo c t , kde c je hodnota pixelu, na který bylo kliknuto, bude
40.9 Zobrazit / skrýt vybranou oblast Zde je moţné vybrat, zda vybraná oblast bude zobrazena ve zdrojovém obrazu pohyblivě a v ostatních nepohyblivě (animovaná vybraná oblast), ve všech obrazech bez pohybu (statická vybraná oblast) nebo se nebude zobrazovat vůbec (skrýt vybranou oblast). Překreslování velkých vybraných oblastí trvá někdy dlouho a tento čas je moţné ušetřit vypnutím překreslování hranic vybrané oblasti.
40.10 Vloţit vybranou oblast Vloţit tvar vybrané oblasti ze schránky do zdrojového obrazu, pokud obojí existuje.
40.11 Inverze vybrané oblasti Po této akci budou do vybrané oblasti patřit ty body, které do ní předtím nepatřily a nebudou do ní patřit ty body, které do ní předtím patřily. Pokud není vybrána ţádná oblast, nic se neprovede (stav, kdy všechny body obrazu patří do vybrané oblasti je povaţován za stejný se stavem, kdy ţádný bod nepatří do vybrané oblasti).
40.12 Kopie vybrané oblasti Tvar vybrané oblasti je zkopírován z obrazu označeného jako zdrojový do obrazu označeného jako druhý. Při různých rozměrech obrazů se kopíruje levý horní roh opsaného obdélníka na levý horní roh a vybraná oblast je případně oříznuta na poţadovaný rozměr.
40.13 Alfa kanál -> obraz Pokud je v označeném obraze vybraná nějaká oblast, je vytvořen nový obraz, ve kterém body patřící do oblasti budou bílé (úroveň 255) a body nepatřící do oblasti budou černé (úroveň 0).
40.14 Obraz -> alfa kanál Ze zdrojového obrazu je vytvořena vybraná oblast v obraze označeném jako druhý (dvojitý klik pravou myší). Pokud vstupní obraz obsahuje pouze hodnoty 0 a 255 (obě), je z hodnot 255 vytvořena vybraná oblast, pokud obsahuje i jiné hodnoty, je oprahován a práh je zjišťován dotazem. U barevných snímků se prahuje jas. Pokud bude stejný obraz označen jako druhý i jako zdrojový, můţeme získat touto funkcí oblast vybranou oprahováním tohoto obrazu.
41. Okna 41.1 Kaskáda Uspořádá obrazová okna do tvaru připomínajícího kaskádu (stupňovitý vodopád). Příliš velká okna přitom zmenší. Ikonizovaná okna jsou restaurována.
41.2 Mozaika
ZODOP
99
Vyplní obrazovými okny vymezenou plochu. Přitom změní jejich rozměry tak, aby se nepřekrývala, ale vyplnila plochu s co nejmenšími mezerami. Ikonizovaná okna jsou restaurována.
41.3 Uspořádej ikony Ikony ikonizovaných obrazových oken jsou uspořádány do řádků a sloupců.
41.4 Zavřít vše Zavřít všechna obrazová okna. U obrazů, na kterých byla provedena sloţitější operace, se objeví dotaz, zda mají být uloţeny do souboru.
41.5 Minimalizovat vše Vytvořit ze všech obrazových oken ikony.
41.6 Obnovit vše Obnovit původní velikost a polohu všech ikon představujících obrazy.
41.7 Seznam obrazů Seznam obrazových oken. Okno s potvrzovací značkou je označeno jako zdrojové. Při zvolení jiného okna bude tento zaměřen a stane se zdrojovým.
42. Nápověda 42.1 Manuál Otevře se tento manuál s nápovědou.
42.2 O aplikaci Objeví se některé základní informace o tomto programu.
43. Výkonné zásuvné moduly Výkonné zásuvné moduly jsou zásuvné moduly určené pro vykonávání nějaké funkce na rozdíl od formátových, určených k otvírání a ukládání souborů. Jsou volané z menu. V současné době jsou k dispozici tyto výkonné zásuvné moduly: Zásuvný modul Pokusný obrázek Vloţit text Vloţit čáru Vloţit ikonu Úpravy vektorových obrazů Vícevrstvý obraz Souřadnice Jas a kontrast Hlavní komponenty Přidat šum Vyváţení bílé Průchod nulou Fázová korelace Detekce rohů Animovaný gif Porovnání obrazů Kreslení grafů
v souboru pokusob.dll text.dll lines.dll icons.dll editvector.dll layers.dll coord.dll const.dll komponen.dll noise.dll whitebalance.dll zerocros.dll phasecor.dll corners.dll gif89a.dll compare.dll graphs.dll
pomocné soubory
Lines.txt, Linesold.txt
Coord.txt
100
ZODOP
Nyní následují manuály jednotlivých zásuvných modulů.
44. Pokusný obrázek Je vytvořen zkušební obrázek. Má rozměry 100 x 100 a je vyplněn funkcí
16 sin r f 255 1 / 2 , kde r (i 50) 2 ( j 50) 2 . r 100
45. Vloţit text Zásuvný modul pro vkládání textu do obrazu. Po zapsání textu do příslušného editačního okna se text nejprve objevuje v obrazu jako samostatná vrstva, jejíţ polohu je moţné nastavit myší. Po potvrzení tlačítkem OK se text zapíše do obrazových dat. Zde je příslušný dialog:
45.1 Vybrat font Závolá se systémový dialog pro volbu fontu. Kromě tvaru písma je zde moţno zvolit i velikost, tučnost, sklon, přeškrtnutí, podtrţení, barvu a skript (jazykovou verzi). Velikost, tučnost a barvu je moţno zvolit i v hlavním dialogu, ostatní vlastnosti pouze zde. Jméno vybraného fontu a zvolený skript jsou pro informaci zobrazeny v hlavním dialogu.
45.2 Barva písma a pozadí Tlačítkem Barva písma je moţno zvolit barvu textu. Pokud je aktivní obraz ve 24-bitovém RGB módu nebo ţádný obraz není otevřen, objeví se systémový dialog pro volbu barvy. Pokud je aktivní obraz v indexových barvách nebo je černobílý, objeví se dialog pro volbu barvy z palety. Obě barvy jsou uloţeny v různých proměnných a změna jedné nemá vliv na druhou. Barvu písma je moţné zvolit i v systémovém dialogu pro volbu fontu, ovšem s menší přesností. Pokud uţivatel změní barvu zde, změní se obě tyto proměnné. Aktuální barva platná pro aktivní obraz je zobrazena v obdélníku vedle tlačítka. Tlačítkem Barva pozadí je zavolán dialog pro volbu aktuální barvy, která je poté pouţita jako barva pozadí. Implicitně je však pozadí průhledné a barva pozadí se uplatní pouze kdyţ potvrzovací pole Průhledné pozadí není potvrzeno. Aktuální barva pozadí platná pro aktivní obraz je zobrazena v obdélníku vedle tlačítka. Tlačítkem Barva písma<->barva pozadí se vymění obě barvy navzájem.
45.3 Velikost
ZODOP
101
Zde je moţné nastavit velikost písma. Velikost je udávána v tiskových bodech. Při přepočtu na pixely jsou brány v úvahu údaje, které má systém o pouţitém monitoru, údaje o velikosti monitoru však nemusí vţdy odpovídat skutečnosti. Další nepřesnosti vznikají při zaokrouhlování na celé pixely, proto přesnou velikost písma v pixelech je nutné zjistit pokusem. Velikost je moţné nastavit i při výběru fontu příslušným systémovým dialogem, v tom pípadě je výhodou při výběru rastrového fontu, ţe v seznamu jsou jen velikosti, které jsou k dispozici.
45.4 Tučnost Zde je moţno zvolit tučnost písma, tedy tloušťku čar. Tučnost má kromě volby "Implicitní" 9 stupňů: "Čárové", "Zvlášť tenké", "Tenké", "Normální", "Střední", "Polotučné", "Tučné", "Zvlášť tučné" a "Těţké". Implicitní hodnota je "Normální". Nutno ovšem upozornit, ţe ne pro všechny fonty jsou k dispozici všechny tučnosti. Všestranné fonty mívají zpravidla 4 tučnosti, ostatní fonty ještě méně. Můţe se vám proto stát, ţe pokud změníte tučnost pouze o jeden stupeň, vzhled písma se nezmění. Pouţije se tučnost nejbliţší zvolené, která je často pro oba stupně stejná. Tučnost je moţné volit i při výběru fontu systémovým dialogem, ovšem pouze ve dvou stupních: "Normální" a "Tučné".
45.5 Vkládaný text Do tohoto editačího okna se vpisuje vkládaný text. Zde se objevuje v systémovém fontu pro dialogy (zpravidla MS Sans Serif), v obrazu pak ve zvoleném fontu. Toto editační okno je moţné vyplnit také ze souboru tlačítkem Text ze souboru.
45.6 Text ze souboru V editačním okénku vedle tlačítka je moţné vyplnit název souboru a tlačítkem Text ze souboru pak zkopírovat text z tohoto souboru. Soubor lze zvolit také tlačítkem Výběr souboru. Dlouhé soubory není moţné zkopírovat celé, pouţije se prvních 64 kB.
45.7 Poloha textu V editačních okéncích počátek vodorovně a svisle se objevuje posunutí levého horního rohu textu oproti levému hornímu rohu obrazu v pixelech. Polohu je moţné změnit buď tak, ţe zde vyplníme číselné údaje, nebo kliknutím levou myší do obrazu a následným pohybem.
45.8 Přidat font Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souboru. Po výběru souboru s fonty program umoţní pouţívat fonty v něm obsaţené. Při úspěchu se objeví zpráva o počtu přidaných fontů následovaná jejich seznamem. Při neúspěchu se objeví jedno z následujících chybových hlášení: "Nebyl přidán ţádný font. Pravděpodobně špatná syntaxe souboru." - soubor se nepodařilo dekódovat. "Nebyl přidán ţádný font. Pravděpodobně font stejného jména uţ v systému je." - fonty stejného jména uţ v systému jsou a nebylo by moţné nově přidané fonty volit a pouţívat, ţádné fonty proto nebyly přidány.
45.9 Odebrat font Po zmáčknutí tohoto tlačítka se objeví dialog se seznam souborů s fonty, které byly dříve přidány. Z tohoto souboru vyberte myší soubory s fonty, které chcete odebrat. Pomocí kláves Ctrl a Shift je moţné vybrat i více souborů najednou. Pokud je seznam prázdný, nebyly přidány ţádné fonty, které by bylo moţno odebrat. Informace o souborech s přidanými fonty jsou uchovávány v souboru ZODOP32.ini, proto pro správnou funkci tohoto tlačítka je nutné zachovat tento soubor neporušený.
45.10 OK Text je zkopírován do obrazových dat a dialog o vkládání textu do obrazu je uzavřen.
45.11 Zavřít Zavřít dialog o vkládání textu do obrazu aniţ by text byl vloţen.
46. Vloţit čáru Dialog umoţňující vloţit do obrazu čáru. Zde je dialogové okno:
102
ZODOP
46.1 Typ čáry Zde je moţno zvolit typ vkládané čáry (plná, čárkovaná, tečkovaná či různým způsobem čerchovaná). Seznam typů čar je vytvořen podle údajů v souboru ‚lines.txt„ dodávaném spolu se zásuvným modulem, který můţe být změněn (tlačítko Editor).
46.2 Kreslit křivky nebo úsečky Zde je moţno zvolit vkládání křivky přesně sledující pohyb myši v obrazu při stisknutém levém tlačítku nebo vkládání úsečky spojující bod, kde bylo stisknuto levé tlačítko s bodem, kde bylo toto tlačítko puštěno. Pokud v okamţiku stisknutí levého tlačítka byla současně stisknuta klávesa Shift na klávesnici, bude fáze čáry navazovat tam, kde skončilo minulé kreslení, jinak se začne fáze počítat znovu od nuly. Např. zvolíte-li typ čáry čerchovaná se střídající se dlouhou a krátkou čárkou, bude kreslení bez Shiftu vţdy začínat dlouhou čárkou a se Shiftem tam, kde skončilo minulé kreslení, tedy skončilo-li mezerou mezi dlouhou a krátkou čárkou, bude se začínat krátkou čárkou.
46.3 Tloušťka čáry Zde je moţno zvolit tloušťku vkládané čáry v pixelech.
46.4 Obraz do paměti Tímto tlačítkem je moţno uloţit do paměti stávající stav obrazu a později se k němu vrátit tlačítkem Obraz z paměti. Implicitně je zdrojový obraz uloţen do paměti při volání tohoto dialogu a kdykoli je kliknutím levou myší zaměněn zdrojový obraz za jiný.
46.5 Obraz z paměti Tímto tlačítkem je moţno vrátit stav obrazu uloţený v paměti tlačítkem Obraz do paměti. Implicitně je zdrojový obraz uloţen do paměti při volání tohoto dialogu a kdykoli je kliknutím levou myší zaměněn zdrojový obraz za jiný.
46.6 Zavřít Zavřít dialog o kreslení čar do obrazu.
46.7 Barva Zde je moţno zavolat dialog pro volbu aktuální barvy, která určuje barvu kreslené čáry. Nezapomeňte, ţe pro 8-bitové obrazy v indexových barvách platí parametr Index, zatímco pro 24-bitové RGB obrazy platí parametry Č, Z a M.
46.8 Editor Umoţní editovat soubor, podle kterého je vytvořen seznam typů čar (viz Formát souboru se seznamem typů čar). Změny se projeví aţ při novém volání dialogu pro kreslení čar.
46.9 Formát souboru se seznamem typů čar
ZODOP
103
Na kaţdé řádce je vţdy na začátku seznam nezáporných celých čísel oddělených mezerami. Znamenají střídavě délku čárky a délku mezery v pixelech při tloušťce čáry 1. Při větší tloušťce je tato pouţita jako jednotka délky. Pokud je počet čísel lichý, tzn. první i poslední číslo znamená délku čárky, je tato sjednocena a kreslena jako jedna čárka. Rozdíl můţete zjistit porovnáním plné čáry se seznamem čísel 1, kdy ke sjednocení dojde, a se seznamem čísel 1 0, kdy ke sjednocení nedojde, při větší tloušťce (min. 4). Při úpravách tohoto souboru mějte na paměti, ţe čáry jsou zaokrouhlovány do rastru obrazů a není je moţno vykreslit přesně. Pokud se mezera má objevit v obrazu i v případě šikmých čar tloušťky 1, musí být vzhledem k vlastnostem pravoúhlého rastru dlouhá alespoň 2. Za posledním číslem v seznamu čísel následuje středník ‚;„ (bez mezery !) a za ním slovní (případně znakový) popis daného typu čáry, který se objeví v příslušném komboboxu pro volbu typu čáry. Popis končí s koncem řádky a má omezenou délku (v současné době na 64 znaků).
47. Vloţit ikonu Dialog Vkládání ikon do obrazu umoţňuje přečíst ikonu ze souboru a vloţit ji do obrazu. Ikona se vkládá myší najetím kurzorem na místo ve zdrojovém obrazu, kam má být ikona vloţena a kliknutím levým tlačítkem myši. Přesněji, na pixel obrazu, kam bylo kliknuto, je vloţen prostřední pixel ikony, v případě sudých rozměrů ikony pixel posunutý o 0.5 k pravému dolnímu kraji.
47.1 Počet ikon v souboru Počet ikon ve zvoleném souboru.
47.2 Ikona číslo Pořadí ikony ve zvoleném souboru. Ikony jsou číslovány podle skutečného umístění v souboru bez ohledu na rozdělení do skupin. Pokud toto pořadí vyplníte ručně, je nutné zobrazit zvolenou ikonu tlačítkem Obnovit.
47.3 Tlačítko < Zmenšit pořadí ikony o jednu. Nelze nastavit pořadí menší neţ 1.
47.4 Tlačítko > Zvětšit pořadí ikony o jednu. Nelze nastavit pořadí větší neţ počet ikon v souboru, pokud nějaké ikony obsahuje.
47.5 Vzhled Zobrazení zvolené ikony.
47.6 Výběr souboru výběr souboru s ikonou pomocí dialogu. Ikony je moţné získat buď z aplikačního souboru typu „.exe“, dynamické knihovny „.dll“ nebo ze speciálního ikonového souboru „.ico“. Na začátku je automaticky zvolen tento zásuvný modul „icons.dll“.
47.7 Obnovit
104
ZODOP
Znovu zobrazit zvolenou ikonu. To je uţitečné, např. kdyţ číslo ikony v editačním okénku vyplníte ručně.
47.8 Přidat barvy Pokud je obraz černobílý nebo v indexových barvách s chudou paletou neobsahující barvy podobné barvám z ikony, je moţné tímto tlačítkem přidat některé barvy z ikony do palety obrazu. Lze to však provést pouze v případě, kdy paleta obsahuje nevyuţité barvy, které se nevyskytují v obrazu, nebo pokud obsahuje více stejných barev. Počet skutečně přidaných barev se objeví v dolní části dialogu. Toto tlačítko je nutné pouţít po zvolení obrazu i vkládané ikony, ale před jejím skutečným vloţením do obrazu. Na dříve vloţené ikony nemá přidání barev vliv.
47.9 Zrušit Zrušit dialog o vkládání ikon do obrazu.
48. Úpravy vektorových obrazů Tento zásuvný modul zpřístupňuje některé úpravy vektorových obrazů zajišťované knihovnou Leadtools. Pouţívá tento dialog :
48.1 3D volby Objeví se dialog knihovny LeadTools pro zpřístupnění moţností nastavení třírozměrného promítání:
Osvětlení. Zde je moţno (někdy) nastavit zobrazení vektorového obrazu, jako by byl osvětlen zvnějšku.
Pouţít osvětlení. Při potvrzení bude pouţito osvětlení.
Okolní barva. Barva pouţitá pro osvětlení.
Mnohoúhelníkový mód. Způsob zobrazení mnohoúhelníků. Můţe být:
Body - Kreslí se pouze hrany mnohoúhelníků a čáry.
Čáry - Kreslí se jako drátové rámce.
Vyplnit - Kreslí se vyplněné mnohoúhelníky.
Vyplnit a vţdy zobrazit rastr - Kreslí se vyplněné mnohoúhelníky a vţdy se kreslí rastrové objekty.
Ok - potvrdit nastavené hodnoty parametrů a zavřít dílčí dialog.
ZODOP
Zrušit - Nastavit všechny parametry na původní hodnoty a zavřít dílčí dialog.
Náhled - při potvrzení se zde objevuje zmenšený náhled na nastavené změny.
105
48.2 Kamera Objeví se dialog knihovny LeadTools pro zpřístupnění moţností nastavení třírozměrného promítání:
Theta - úhel otočení kolem osy Z.
Fí - úhel odklonu od osy Z.
Vzdálenost - vzdálenost mazi kamerou a objektem.
Perspektiva - pokud je toto políčko potvrzeno, pouţívá se perspektivní promítání, jinak se pouţívá paralelní promítání.
Původní - nastavit všechny parametry na původní implicitní hodnoty.
Ok - potvrdit nastavené hodnoty parametrů a zavřít dílčí dialog.
Zrušit - nastavit všechny parametry na původní hodnoty a zavřít dílčí dialog.
Náhled - při potvrzení se zde objevuje zmenšený náhled na nastavené změny.
48.3 Posunutí Objeví se dialog knihovny LeadTools pro zpřístupnění moţností nastavení třírozměrného promítání:
Theta - úhel otočení kolem osy Z.
+X, -X, +Y, -Y, +Z, -Z - posunutí v jednotlivých osách.
Původní - nastavit všechny parametry na původní implicitní hodnoty.
Ok - potvrdit nastavené hodnoty parametrů a zavřít dílčí dialog.
Zrušit - nastavit všechny parametry na původní hodnoty a zavřít dílčí dialog.
Náhled - při potvrzení se zde objevuje zmenšený náhled na nastavené změny.
48.4 Otočení Objeví se dialog knihovny LeadTools pro zpřístupnění moţností nastavení třírozměrného promítání:
+X, -X, +Y, -Y, +Z, -Z - otáčení kolem příslušné osy.
Původní - nastavit všechny parametry na původní hodnoty.
Ok - potvrdit nastavené hodnoty parametrů a zavřít dílčí dialog.
Zrušit - nastavit všechny parametry na původní hodnoty a zavřít dílčí dialog.
Náhled - při potvrzení se zde objevuje zmenšený náhled na nastavené změny.
48.5 Změna měřítka Objeví se dialog knihovny LeadTools pro zpřístupnění moţností nastavení třírozměrného promítání:
+X, -X, +Y, -Y, +Z, -Z - změna měřítka v příslušné ose.
All - všechny. Při potvrzení se změna měřítka nastavuje ve všech osách najednou.
Původní - nastavit všechny parametry na původní hodnoty.
Ok - potvrdit nastavené hodnoty parametrů a zavřít dílčí dialog.
Zrušit - nastavit všechny parametry na původní hodnoty a zavřít dílčí dialog.
Náhled - při potvrzení se zde objevuje zmenšený náhled na nastavené změny.
48.6 Nastavit vybírání Objeví se dialog knihovny LeadTools pro zpřístupnění moţností úpravy objektů. Vlastnosti jsou rozděleny do několika záloţek:
106
ZODOP
General - všeobecné. Zde je moţné nastavit:
Selected - vybrán. Při potvrzení je objekt vybrán pro potřeby knihovny LeadTools.
Ok - potvrdit nastavené hodnoty parametrů a zavřít dílčí dialog.
Cancel - zrušit. Nastavit všechny parametry na původní hodnoty a zavřít dílčí dialog.
48.7 Úprava objektu Aby bylo moţno upravovat nějaký objekt, musí být napřed vybrán. To se dělá kliknutím na něj levou myší tak, aby se vybírací test vyhodnotil kladně. To je signalizováno potvrzením potvrzovacího pole "Objekt byl vybrán" pod tlačítkem. V případě, ţe je ve stejném adresáři jako obraz k dispozici databázový soubor se stejným jménem, ale typu „.dbf“ s údaji o objektech, objeví se v dolní části dialogu jméno objektu z této databáze. Dialog je rozdělen do čtyř záloţek : Všeobecné, Pero, Štětec a zvláštní záloţka pro daný typ objektu. V záloţce všeobecné jsou všeobecné vlastnosti objektů: Výběr - vybráné. Při potvrzení je objekt vybrán pro potřeby knihovny LeadTools. Clipping - ořezávání. Při potvrzení je kombinace čar označena jako ořezávající. Pro ostatní typy objektů nelze pouţít. Rastrová operace. Způsob, jakým je kresba objektu kombinována s kresbou pozadí. Můţe být : 1 - Blackness - černost. Objekt je nakreslen celý černě. 2 - Not Merge Pen - ne přidávací pero. Barva objektu je logicky přičtena k barvě pozadí a pak je nahrazena doplňkovou barvou. 3 - Mask Not Pen - maskovací ne pero. Barva objektu je nahrazena doplňkovou barvou a pak je logicky vynásobena barvou pozadí. 4 - Not Copy Pen - ne kopírovací pero. Objekt je nakreslen doplňkovou barvou. 5 - Mask Pen Not - maskovací pero ne. Barva pozadí je nahrazena doplňkovou barvou a pak je logicky vynásobena barvou objektu. 6 - Invert - inverze. V místě objektu je barva pozadí nahrazena svou dopklňkovou barvou. 7 - Xor Pen - xor pero. Výsledná barva je výhradní logický součet barvy objektu a barvy pozadí bit po bitu. 8 - Not Mask - ne maskovací pero. Barva objektu je logicky vynásobena barvou pozadí a pak je nahrazena doplňkovou barvou. 9 - Mask Pen - maskovací pero. Barva objektu je logicky vynásobena barvou pozadí (bit po bitu). 10 - Not Xor Pen ne xor pero. Výsledná barva je doplňková k výhradnímu logickému součtu barvy objektu a barvy pozadí bit po bitu. 11 - Nop - ţádná činnost. Objekt není nakreslen. 12 - Merge Not Pen - přidávací ne pero. Barva objektu je nahrazena doplňkovou barvou a pak je logicky přičtena k barvě pozadí. 13 - Copy Pen - kopírovací pero. Objekt zcela překryje pozadí. 14 - Merge Pen Not - přidávací pero ne. Barva pozadí je nahrazena doplňkovou barvou a pak je k ní logicky přičtena barva objektu. 15 - Merge Pen - přidávací pero. Barva objektu je logicky přičtena k barvě pozadí (bit po bitu). 16 - Whiteness - bělost. Objekt je nakreslen celý bíle. V záloţce Obrys je moţno nastavit vlastnosti pera, které je pouţíváno na kreslení obrysů objektů : Styl. Můţe být : 0 - Plná čára. 1 - Čárkovaná čára. 2 - Tečkovaná čára. 3 - Čerchovaná čára. 4 - Dvojitě čerchovaná čára. 5 - Průhledná čára 6 - Uvnitř rámce. Barva pera. Šířka pera v jednotkách původních souřadnic obrazu, nikoli v pixelech na obrazovce. V záloţce výplň je moţno nastavit vlastnosti štětce, který je pouţíván na vyplňování vnitřku objektů : Styl. Můţe být : 0 - Plný. 1 - Průhledný.
ZODOP
107
2 - Šrafovaný. Barva štetce. Šrafování. Můţe být : 0 - Vodorovné. 1 - Svislé. 2 - Dopředné úhlopříčné (šikmé zleva seshora doprava dolu). 3 - Zpětné úhlopříčné (šikmé zleva zdola doprava nahoru). 4 - Kříţové. 5 - Úhlopříčně kříţové. Pokud je typ obkektu kombinace čar, je moţno zde zvolit pouţití licho-sudého pravidla (Odd/Even rule) při pouţití štetce, tzn. ţe pokud se čáry kříţí, je vţdy jedna strana vyplněná a druhá nikoli. Pokud pouţití tohoto pravidla není potvrzeno, je vyplněn celý vniřek. Další vlastnosti závisejí na typu objektu. Typ objektu je nutno zvolit předem. Můţe být : 1 - 3D vrchol v prostoru, 2 - Úsečka, 3 - Obdélník, 4 - Lomená čára, 5 - Bezierova křivka, 6 - Mnohoúhelník, 7 - Elipsa, 8 - Kruh, 9 - Kruhový oblouk, 10 - Text. 11 - Kruhová výseč, 12 - Kruhová úseč, 13 - Kombinace čar (různých typů), 14 - Rastr, 15 - Objekt z knihovny. Například vrchol je plně určen souřadnicemi své polohy, zatímco úsečka ja dána souřadnicemi počátečního a koncového bodu. Podobně obdélník je dán souřadnicemi dvou protilehlých vrcholů. Při zadávání lomené čáry je potřeba kromě počátečního a koncového bodu zadat i všechny body zlomu pomocí tlačítka Nový. Podobně při zadávání Beziérovy křivky se zadávají všechny řídící body. Mnohoúhelník je zadán souřadnicemi svých vrcholů, dále je zde moţno zvolit vyplňovací mód pro případ, ţe se budou strany mnohoúhelníku kříţit. Volba Střídat znamená, ře vyplněné části se budou pravidelně střídat s nevyplněnými, volba Zahrnout znamená, ţe všechny oblasti uvnitř mnohoúhelníka budou vyplněny. Elipsa je zadána souřadnicemi středu a délkou dvou poloos a kruh souřadnicemi středu a poloměrem. Kruhový oblouk, kruhová výseč a kruhová úseč jsou dány souřadnicemi středu kruhu, poloměrem, počátečním úhlem a úhlem mezi počátkem a koncem (rozsah). Text je dán souřadnicemi přidávacího bodu, zněním textu a údajem, zda text má být zarovnán od přidávacího bodu vodorvně vlevo, vpravo nebo na střed a svisle nahoru. dolu nebo na střed. Dále je moţno zvolit font, výšku a šířku znaku. Pokud bude výška znaku 0, pouţije se výška zvolená při výběru fontu, pokud bude šířka 0, pouţije se šířka přiměřená výšce. Při potvrzení políčka "Vybírací obdélník" stačí při vybírání textu kliknout do obdélníka opsaného textu, jinak se musí kliknout přímo dovnitř některého písmena. Při potvrzení "Force line/curve rendering" (nutit k přímkovému / křivkovému promítání) se bude text kreslit jako celek, jinak se knihovna snaţí rozdělit text na kusy a zobrazovat je jako kresby. To má význam pouze pro fonty, které nejsou True Type. Kombinace čar je podobně jako lomená čára daná souřadnicemi počátečního a koncového bodu a bodů změny. Na rozdíl od lomené čáry je však moţné pro kaţdé dva následující body zadat, zda mají být spojeny úsečkou (Kreslit k), Beziérovou křivkou (Bezier k) nebo nijak (Přesunout k). Při potvrzení políčka "Uzavřený obrazec" bude lomená čára či Beziérova křivka automaticky uzavřena. Vnořený rastr je dán souřadnicemi levého horního a pravého dolního rohu opsaného obdélníka a bitmapou, která musí být ve formátu srozumitelném pro knihovnu LeadTools (coţ nejsou všechny formáty pouţívané ZODOPem) a pouţitý vektorový formát musí připouštět vnořené rastry (takových je jen menšina). Typ objekt z knihovny není v současé době implementován.
48.8 Všechny výplně Zde je moţné nastavit jednotně vlastnosti všech štětců pouţitých v obrazu. na vyplňování vnitřku objektů : Styl. Můţe být :
108
ZODOP
0 - Plný. 1 - Průhledný. 2 - Šrafovaný. Šrafování. Můţe být : 0 - Vodorovné. 1 - Svislé. 2 - Dopředné úhlopříčné (šikmé zleva seshora doprava dolu). 3 - Zpětné úhlopříčné (šikmé zleva zdola doprava nahoru). 4 - Kříţové. 5 - Úhlopříčně kříţové. Barva štetce.
48.9 Všechny obrysy Zde je moţné nastavit jednotně vlastnosti všech per, která jsou pouţívána na kreslení obrysů objektů : Styl. Můţe být : 0 - Plná čára. 1 - Čárkovaná čára. 2 - Tečkovaná čára. 3 - Čerchovaná čára. 4 - Dvojitě čerchovaná čára. 5 - Průhledná čára 6 - Uvnitř rámce. Barva pera. Šířka pera. Udává se v jednotkách původních souřadnic obrazu, nikoli v pixelech na obrazovce.
48.10 Zrušit Zrušit dialog o úpravě vektorových obrazů.
49. Vícevrstvý obraz Zásuvný modul, který umoţňuje zobrazit více obrazů v jednom okně. Pro správné sloţení výsledku jsou důleţité souřadnice v jednotlivých obrazech. Pokud existuje tzv. tfw soubor, tj. soubor stejného jména ve stejném adresáři jako soubor s obrazem, lišící se příponou sloţenou z prvního a třetího písmena přípony obrazového souboru a písmene w (tedy tfw místo tif) nebo příponou txt, který obsahuje lineární transformaci souřadnic, bere se tato v úvahu při umisťování obrazu do okna. O jeho formátu více v kapitole Souřadnice. Při začloňování vektorového obrazu se pouţívají přímo souřadnice objektů v obrazu. Zásuvný modul pouţívá tento dialog:
ZODOP
109
49.1 Seznam vrstev Pro zobrazení seznamu vrstev je pouţit zdroj typu strom, i kdyţ ve skutečnosti můţe mít pouze jeden kořen s jednoduchým seznamem větví. Důvodem je usnadnění změny pořadí vrstev. Vrstva, která je ve stromu nejníţe, se kreslí nejdříve a můţe být zakryta vyššími vrstvami. Vrstvy se do stromu přidávají pomocí tlačítek Vrsva z obrazu nebo Vrstva z disku. Vyjmout vrstvu z obrazu je moţné tak, ţe ji napřed zaměříme kliknutím levou myší nebo šipkami nahoru a dolu a pak kliknutím pravou myší a volbou Vyjmout vrstvu v objevivším se vyskakovacím menu. Vyjmutá vrstva se objeví v samostatném okně. Smazat vrstvu lze kromě vyskakovacího menu také klávesou Delete. Měnit pořadí vrstev je moţné buď šipkami nahoru a dolu mačkanými zároveň s klávesou Ctrl, táhnutím levou myší nebo vhodnou volbou ve vyskakovacím menu získaném kliknutím pravou myší. U kaţdé vrstvy je také červeně potvrzené políčko. Při zrušení tohoto potvrzení se vrstva přestane zobrazovat, ale zůstává součástí vícevrstvého obrazu a počítá se s ní při stanovení jeho rozměrů.
49.2 Vrstva z obrazu Zmáčknutím tohoto tlačítka se obraz označený jako zdrojový (zaměřený, se zvýrazněným titulkem) začlení do vícevrsvého obrazu. Jeho samostatné okno se přitom zavře.
49.3 Vrstva z disku Zmáčknutím tohoto tlačítka se objeví dialog pro volbu souborů a zvolené soubory s obrazy se začlení do vícevrstvého obrazu.
49.4 Uvolnit vrstvy Uvolnit všechny vrstvy z vícevrstvého obrazu a zavřít ho. Kaţdá vrstva bude otevřena v samostatném okně.
49.5 Smazat vrstvy Smazat všechny vrstvy z vícevrstvého obrazu a zavřít ho.
49.6
Spojení vrstev
110
ZODOP
Spojení vrstev do jednoho rastrového obrazu o rozměrech daných v editačních políčcích pod tlačítkem. Pokud je alespoň jedna vrstva rastrová, jsou implicitní rozměry vypočteny podle rastrové vrstvy s maximálním rozlišením. Pokud jsou všechny vrstvy vektorové, jsou implicitní rozměry takové, aby plocha obrazu byla přibliţně512 x 512 = 262 144 pixelů a přitom souhlasil poměr stran. Poměr stran se zachovává, i kdyţ byla velikost změněna. Pouţije se rozměr, který byl změněn a ten druhý se dopočítá. Pokud byly změněny oba, pouţije se šířka. Hloubka výsledného obrazu je vţdy 24 bitů na pixel.
49.7 Mnohoúhelníkový mód Způsob zobrazení mnohoúhelníků ve vektorových vrstvách. Můţe být: Vykreslit hrany - Kreslí se pouze obrysy mnohoúhelníků. Vykreslit plochy – Kreslí se celé mnohoúhelníky včetně výplní.
49.8 Zrušit Zrušit dialog o zobrazení vícevrstvého obrazu. Vícevrstvý obraz přitom bude zavřen a všechny vrstvy smazány.
50. Souřadnice Tento dialog zásuvného modulu je určen ke sledování uţivatelsky nadefinovaných souřadnic bodů v obrazu.
50.1 X Uţivatelská souřadnice X bodu v obrazu. Je počítána
xm x0 k x x x k y x y , kde x , y jsou obrazové souřadnice. Ostatní konstanty viz Nastavení velikosti pixelu a počátku souřadnic. Při zmáčknutém levém tlačítku myši se zde objeví vzdálenost od bodu, v němţ bylo tlačítko zmáčknuto.
50.2 Y Uţivatelská souřadnice Y bodu v obrazu. Je počítána
ym y0 k x y x k y y y , kde x , y jsou obrazové souřadnice. Ostatní konstanty viz Nastavení velikosti pixelu a počátku souřadnic. Při zmáčknutém levém tlačítku myši se zde objeví azimut úsečky spojující aktuální bod s bodem, v němţ bylo tlačítko zmáčknuto.
50.3 Nastavit kurzor Nastaví kurzor na bod obrazu s uţivatelskými souřadnicemi přečtenými z editačních okének X a Y. Pokud bod bude mimo obraz, bude kurzor nastaven na nejbliţší bod v obrazu. Tato funkce nepracuje, pokud je jakobián transformace souřadnic nulový, tzn. k x x k y y k y x k x y 0 .
50.4 tfw Pokud existuje soubor se stejným jménem a ve stejném adresáři jako je soubor, ze kterého byl obraz otevřen, lišící se pouze příponou ‚.tfw„, pokusí se z něho program přečíst konstanty pro přepočet uţivatelských a obrazových souřadnic. Pokud se v okénku objeví značka x, znamená to, ţe se podařilo úspěšně přečíst tyto konstanty. V souboru musí být 6 konstant v plovoucí čárce, kaţdá na nové řádce,
ZODOP v pořadí
111
k x x , k y x , k x y , k y y , x 0 , y0 . Pokud se nepodaří přečíst soubor s příponou ‚.tfw„, pokusí se
program přečíst soubor s příponou „.jgw‟.
50.5 Nastavit Objeví se dialog umoţňující nastavení konstant pro přepočet uţivatelských a obrazových souřadnic.
50.6 Zavřít Zavřít dialog o souřadnicích.
50.7 Nastavení rozlišení a počátku souřadnic Dialog umoţňující nastavení konstant pro přepočet uţivatelských a obrazových souřadnic.
50.7.1
Počátek vodorovně
Uţivatelská souřadnice 50.7.2
Počátek svisle
Uţivatelská souřadnice 50.7.3
x 0 levého horního rohu obrazu vodorovně v aktuální jednotce.
y 0 levého horního rohu obrazu svisle v aktuální jednotce.
Velikost X pixelu vodorovně
Skutečný vodorovný rozměr
k x x vodorovné hrany pixelu v aktuální jednotce. Pokud je záporný,
rostou skutečné vodorovné souřadnice zprava doleva, jinak zleva doprava. Viz také Konstanty pro přepočet souřadnic. 50.7.4
Velikost X pixelu svisle
Skutečný svislý rozměr
k x y vodorovné hrany pixelu v aktuální jednotce včetně znaménka. Při
nenatočeném obrazu bude nulový. Viz také Konstanty pro přepočet souřadnic. 50.7.5
Velikost Y pixelu vodorovně
Skutečný vodorovný rozměr
k y x svislé hrany pixelu v aktuální jednotce včetně znaménka. Při
nenatočeném obrazu bude nulový. Viz také Konstanty pro přepočet souřadnic. 50.7.6
Velikost Y pixelu svisle
Skutečný svislý rozměr
k y y svislé hrany pixelu v aktuální jednotce. Pokud je záporný, rostou skutečné
svislé souřadnice zezdola nahoru, jinak seshora dolu. Viz také Konstanty pro přepočet souřadnic. 50.7.7
Konstanty pro přepočet souřadnic
112
ZODOP
Na následujícím obrázku je znázorněna plocha scény, jehoţ obrazem je 1 pixel snímku.
Obrazec je v naprosté většině případů čtverec, obecně to však můţe být kosodélník. Vzdálenosti se počítají od vrcholu, který je obrazem levého horního rohu pixelu. Tečky místo šipek se snaţí naznačit, ţe vzdálenosti jsou orientované, tzn. ţe pokud směr šipky souhlasí se směrem, v němţ chcete aby rostla příslušná souřadnice, bude vzdálenost zadána kladně, pokud šipka směřuje proti smyslu souřadnice, bude vzdálenost záporná. Např. chcete-li v daném případě, aby souřadnice rostly zleva doprava a zdola nahoru, bude k x x kladná a ostatní 3 konstanty záporné. Tímto způsobem je moţno zadat jak anizotropní hustotu vzorkování jinou vodorovně a jinou svisle, tak otočení obrazu. Vzdálenosti v tfw souboru jsou v metrech, v dialogu pro nastavení v aktuálních jednotkách. 50.7.8
Jednotka
Jednotka uţivatelských souřadnic, Můţe být kilometr (km), metr (m) nebo jiná, v tom případě je nutno zkratku jednotky (max. 10 znaků) doplnit do editačního okénka a velikost jednotky v metrech do dalšího editačního okénka pod ním. 50.7.9
Seznam předvoleb
V tomto listboxu je seznam předvoleb konstant a jednotek. Kliknutím myší na příslušný řádek je moţno tyto údaje zadat. Tento seznam je vytvořen podle údajů v souboru ‚coord.txt„ dodávaného spolu se zásuvným modulem, který můţe být změněn (tlačítko Editor). 50.7.10
Zápis tfw
Zapíše nastavené hodnoty konstant do souboru tfw. Aby byl tento soubor pouţit pro odečítání souřadnic, musí být uloţen ve stejném adresáři a pod stejným jménem, lišícím se pouze příponou, jako je soubor uvedený v obrazu. Jméno obrazu lze zjistit pomocí funkce Informace o obrazu. Proto cesta i jméno získané ze zdrojového obrazu jsou nastaveny jako implicitní v dialogu pro volbu souboru, který se objeví. 50.7.11
OK
Zrušit dialog o nastavení rozlišení a počátku souřadnic s potvrzením nastavených hodnot pro obraz označený jako zdrojový. 50.7.12
Všechny obrazy
Zrušit dialog o nastavení rozlišení a počátku souřadnic s potvrzením nastavených hodnot pro všechny právě otevřené obrazy. 50.7.13
Zrušit
ZODOP
113
Zrušit dialog o nastavení rozlišení a počátku souřadnic. 50.7.14
Editor
Umoţní editovat soubor, podle kterého je vytvořen seznam předvoleb (viz Formát souboru se seznamem předvoleb). Změny se projeví aţ při novém volání dialogu pro nastavení rozlišení a počátku souřadnic. 50.7.15
Formát souboru se seznamem předvoleb
Na první řádce je krátké shrnutí formátu. Tato řádka je ignorována. Na dalších řádkách je vţdy na začátku řetězec vyjadřující jednotku, „km“ je chápán jako kilometr, „m“ jako metr a ostatní řetězce jsou chápány jako zkratky jiné jednotky, v tom případě následuje velikost jednotky v metrech oddělená mezerou. Následuje jedno aţ šest čísel oddělených mezerami, vyjadřující nastavované konstanty v pořadí velikost X pixelu vodorovně, velikost Y pixelu svisle, velikost Y pixelu vodorovně, velikost X pixelu svisle, počátek vodorovně a počátek svisle, tedy k x x , k y y , k y x , k x y , x 0 , y0 . Implicitně je velikost X pixelu vodorovně stejná jako velikost Y pixelu svisle, velikost Y pixelu vodorovně stejně jako velikost X pixelu svisle je nulová a počátek není nastavován. Následuje středník (;) a zbytek řádky je chápán jako popis předvolby, který se objeví v seznamu.
51. Jas a kontrast Tento zásuvný modul slouţí k lineární změně jasu a kontrastu obrázku, coţ znamená přičíst k obrázku konstantu nebo násobit obrázek konstantou. Proto by název dialogu mohl znít také Operace s konstantou. Změny se provádějí nejprve pouze v paletě, teprve při zmáčknutí tlačítka Pouţij se mění hodnoty pixelů. Ve 24-bitovém RGB módu se však změny palety neprojeví ve změně zobrazení, proto se výsledek objeví aţ po zmáčknutí tohoto tlačítka.
51.1 Jas K obrázku se přičte konstanta q . Nová hodnota 1 sloţky palety
Cn k C q , kde k je hodnota parametru Kontrast, C je hodnota sloţky v původní paletě. Neceločíselné hodnoty jsou zaokrouhleny, hodnoty větší neţ maximální hodnota se nahradí maximální hodnotou a hodnoty menší neţ minimální hodnota se nahradí minimální hodnotou.
51.2 Kontrast Obrázek se vynásobí konstantou
k . Nová hodnota 1 sloţky palety
Cn k C q ,
kde q je hodnota parametru Jas, C je hodnota sloţky v původní paletě. Neceločíselné hodnoty jsou zaokrouhleny, hodnoty větší neţ maximální hodnota se nahradí maximální hodnotou a hodnoty menší neţ minimální hodnota se nahradí minimální hodnotou.
114
ZODOP
51.3 Pouţij Hodnoty pixelů se přepočítají podle nastavených změn jasu a kontrastu. Nová hodnota pixelu fn k f q , kde k je hodnota parametru Kontrast, q je hodnota parametru Jas a f je uţivatelský hodnota pixelu. Neceločíselné hodnoty jsou zaokrouhleny, hodnoty větší neţ maximální hodnota se nahradí maximální hodnotou a hodnoty menší neţ minimální hodnota se nahradí minimální hodnotou. Nakonec je dialog zrušen.
51.4 OK Zrušit dialog o změně jasu a kontrastu, přičemţ změny palety platí a zůstanou zachovány.
51.5 Zrušit Zrušit dialog o změně jasu a kontrastu i změny palety.
51.6 Soubory Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a na obrazech ve zvolených souborech se změní jas a kontrast podle parametrů zvolených v dialogu. Vedle tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
52. Hlavní komponenty Výpočet hlavních komponent je určen pro redukci dat více obrazů téţe scény, lišících se zpravidla snímaným spektrálním pásmem. Tyto obrazy se nazývají kanály. Mohou to být také jednotlivé barevné sloţky obrazu v RGB módu. Výsledné hlavní komponenty (zkráceně komponenty) se počítají jako lineární kombinace kanálů. Jako koeficienty lineárních kombinací se pouţívají členy vlastních vektorů kovarianční matice mc 1mr 1 1 mc 1mr 1 1 mc 1mr 1 f ( x , y ) f ( x , y ) f ( x , y ) i i f j ( x, y) , j t 1 x 0 y 0 t (t 1) x0 y 0 x 0 y 0 kde f i ( x , y) je i-tý kanál v bodě (x,y), mc a mr jsou rozměry kanálů, t mc mr .
cij
Komponenty jsou seřazeny podle velikosti odpovídajících vlastních čísel kovarianční matice. Násobící konstanta je volena tak, aby první komponenta měla rozsah hodnot 255, ostatní komponenty ji mají stejnou, přičítací konstanta je volena pro první komponentu tak, aby posunula hodnoty do rozsahu 0 aţ 255, u ostatních tak, aby střední hodnota byla 127. Protoţe se předpokládá velký rozsah dat, který se často nevejde najednou do paměti, můţe výpočet probíhat v souborech. Kanály pak musí být uloţeny ve formátu holá data a musí ke kaţdému existovat tzv. siz soubor, který lze vytvořit v dialogu Formát holá data. Ve stejném formátu jsou potom uloţeny i komponenty. Zde je dialogové okno:
ZODOP
115
52.1 Seznam vstupních kanálů Okno se seznamem vstupních kanálů.
52.2 Smazat poloţky Poloţky vybrané v seznamu vstupních kanálů jsou z tohoto seznamu vypuštěny.
52.3 Výběr vstupních kanálů Zdrojový obraz je přidán do seznamu vstupních kanálů. Pokud je 24-bitový nebo 32-bitový, jsou přidány jeho barevné sloţky jako 3 kanály. Při práci v souboru jsou vybrané siz soubory přidány do seznamu vstupních kanálů.
52.4 Výpočet koeficientů Proběhne výpočet koeficientů lineárních kombinací kanálů. Berou se při něm v úvahu parametry Vzorkování při výpočtu koeficientů, Posun vodorovně a Posun svisle. Výsledky jsou uloţeny do souboru s koeficienty.
52.5 Výpočet komponent Proběhne výpočet komponent podle koeficientů ze souboru s koeficienty. Počet komponent můţe být nejvýše roven počtu vstupních kanálů. Lze ho zredukovat vyplněním parametru Počet výstupních komponent. Při práci v souboru jsou výsledné komponenty uloţeny do souborů se jmény vytvořenými podle vzoru jmen výstupních souborů přidáním pořadového čísla komponenty.
52.6 Zobrazit koeficienty Ve zvláštním okně se zobrazí obsah souboru s koeficienty. Má tento formát: Na prvním řádku je nejprve počet kanálů, následují vlastní čísla odpovídající jednotlivým komponentám. Jejich velikost odpovídá významu komponenty. Na dalších řádcích jsou koeficienty a to na (i+1)-tém řádku koeficienty i-té komponenty a v j-tém sloupci koeficienty j-tého kanálu. Na konci řádku je přičítací konstanta.
116
ZODOP
52.7 Zavřít Zavřít dialog o hlavních komponentách.
52.8 Vzorkování při výpočtu koeficientů Pokud bude vyplněn tento parametr číslem v, bude při výpočtu koeficientů pouţit pouze kaţdý v-tý pixel. Při práci v souboru bude toto vzorkování pouţito místo vzorkování uvedeného v siz souborech kanálů. Při výpočtu komponent se uvaţují pouze údaje ze siz souborů.
52.9 Posun vodorovně a svisle Pokud bude při výpočtu koeficientů pouţito vzorkování v, je moţné zde vyplnit souřadnice prvního vzorku v rozsahu 0 aţ v-1. To slouţí k určení přesného posunu vzorku při vzorkování. Porovnáním výsledků s různým posunem se dá posoudit ztráta přesnosti způsobená řidším vzorkováním. Při práci v souboru se tyto parametry se přičítají k počátku výřezu vodorovně a svisle v siz souboru kanálu.
52.10 Počet výstupních komponent Tímto parametrem je moţné zredukovat mnoţství počítaných komponent. Čísla menší neţ jedna nebo větší neţ počet kanálů nebudou brána v úvahu.
52.11 Práce v souboru Při potvrzení tohoto tlačítka probíhá výpočet v souboru, tzn. vstupní kanály musí být uloţeny ve formátu holá data včetně příslušného siz souboru a výstupní komponenty jsou opět uloţeny do souboru v tomto formátu. V opačném případě se jako vstupy pouţívají otevřené obrazy a výstupy jsou opět vytvořeny pouze jako výstupy. Při potvrzování nebo rušení potvrzení je smazán seznam kanálu, protoţe v obou případech se jedná o jiný typ dat.
52.12 Zobrazit vstupy Pokud lze kanály umístit do paměti, je moţné je zobrazit tímto tlačítkem.
52.13 Zobrazit výstupy Pokud lze komponenty umístit do paměti, je moţné je zobrazit tímto tlačítkem.
52.14 Obraz -> kanál Zdrojový obraz je zapsán do souboru ve formátu holá data a to pod zvoleným jménem a do zvoleného adresáře. Do stejného adresáře je uloţen i odpovídající siz soubor. Tento siz soubor je pak přidán do seznamu vstupních kanálů. V případě, ţe zdrojový obraz je barevný ve 24-bitovém formátu, jsou vytvořeny 3 siz soubory a všechny jsou přidány do seznamu vstupních kanálů. Jejich jména jsou odvozena od zvoleného jména obrazového souboru přidáním koncovek „_R“, „_G“ a „_B“.
52.15 Editace siz Zavolá se textový editor na siz soubory vybrané v seznamu vstupních kanálů. Protoţe vybraných poloţek můţe být více, volá se textový editor v inicializačním souboru uvedený jako vícesouborový. Viz také formát siz souboru.
52.16 Soubor s koeficienty Jméno souboru , do kterého se zapíší vypočtené koeficienty lineárních kombinací.
52.17 Výběr Výběr souboru s koeficienty pomocí dialogu.
52.18 Vzor jmen výstupních souborů Pokud je vzor jmen dostatečně krátký (v současné době je limit 128 znaků), vytvoří se výstupní jména přidáním čísla komponenty, jinak se číslem komponenty přepíše konec vzoru. Pokud vzor končí číslicí, přepíše se také, takţe pokud zvolíte jednu z prvních devíti dříve vypočtených komponent jako vzor, budou tyto komponenty přepsány novým výsledkem. Doporučuje se nepouţívat vzory končící více číslicemi.
52.19 Výběr
ZODOP
117
Výběr souboru slouţícího jako vzor jmen komponent pomocí dialogu.
53. Přidat šum Umoţní přidat šum do zdrojového obrazu.
53.1 Gaussův Přičtený šum bude mít Gaussovo rozloţení s nulovou střední hodnotou a standardní odchylkou Hustota bude
f ( x)
1 2
e
.
x2
2
53.2 Rovnoměrný Přičtený šum bude mít rovnoměrné rozloţení s nulovou střední hodnotou a standardní odchylkou Hustota bude v pásmu od
.
3 do 3 f ( x)
1 2 3
jinde bude nulová.
53.3 Náhodný Při kaţdém volání se pouţije jiná realizace přičteného šumu. Toho se dosáhne inicializací generátoru pseudonáhodných čísel funkcí randomize.
53.4 Definovaný Při kaţdém volání se pouţije stejná realizace přičteného šumu. Toho se dosáhne inicializací generátoru pseudonáhodných čísel funkcí srand s parametrem 1.
53.5 Standardní odchylka Standardní odchylka vytvořeného šumu.
53.6 OK Přičíst šum k obrazu. Pokud výsledná hodnota bude menší neţ nula, bude nahrazena nulou, hodnoty větší neţ 255 budou nahrazeny touto hodnotou.
53.7 Zavřít Zavřít dialog o přidávání šumu do obrazu.
53.8 Soubory
118
ZODOP
Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou a do obrazů ve zvolených souborech se přidá šum podle parametrů zvolených v dialogu. Vedle tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
54. Vyváţení bílé Tento modul je určen pro dodatečné vyváţení bílé ve fotografiích, kde se to nepodařilo udělat při snímání, a ve kterých převládá jeden tón barvy.
Vyváţení je moţné provést dvěma způsoby, automaticky najít nejsvětlejší bod nebo ručně zadat barvu, která se má změnit na bílou.
54.1 Nejsvětlejší bod Nalézt v obrazu bod s nejvyšším jasem. Pokud je v obrazu takových bodů více, pouţije se ten s nejniţší sytostí, pokud má více bodů stejný jas i sytost, pouţije se ten s nejniţším tónem. Bod s nejvyšším jasem a nejniţší sytostí má nejmenší odchylku od bílé, proto se předpokládá, ţe je nejsprávnější, pravidlo o nejniţším tónu je zde čistě kvůli odstranění nejednoznačnosti. Barva nalezeného bodu se pouţije jako návrh barvy, která se přepočte na bílou.
54.2 Stará bílá Barva, která se tlačítkem „Provést“ přepočte na bílou. Je moţno jí zvolit buď v dialogu vyvolaném stejnojmenným tlačítkem, vyplnit číselně její červenou, zelenou a modrou sloţku do editačních políček vlevo od tlačítka, nebo, při potvrzení „Snímat myší“, kliknout do obrazu levou myší a přenést sem barvu pod kurzorem. Také se zde objeví barva bodu nalezeného tlačítkem „Nejsvětlejší bod“. Implicitní barva je černá, ale nedoporučuje se jí zde ponechat, jinak by se celý obraz vyplnil černě.
54.3 Nová bílá Barva, na kterou se tlačítkem „Provést“ přepočte „Stará bílá“. Je moţno jí zvolit buď v dialogu vyvolaném stejnojmenným tlačítkem nebo vyplnit číselně její červenou, zelenou a modrou sloţku do editačních políček vlevo od tlačítka. Implicitní barva je bílá, ale na rozdíl od staré bílé se nedoporučuje aţ na vyjímky jí měnit. Vyjímkou můţe být volba světle šedé, kdyţ nechceme příliš velké vybělení obrazu, nebo případ, kdy se v obrazu bílá barva nevyskytuje, ale známe přesně poţadovanou barvu nějakého předmětu v obrazu.
54.4 Provést Provést přepočet barev v obrazu tak, aby se „Stará bílá“ změnila na „Novou bílou“. Přepočítává se lineárně bez posunu, červená, zelená a modrá sloţka zvlášť, tzn. černá zůstane černá. Pokud některá sloţka přesáhne 255, nahradí se touto hodnotou.
54.5 Zavřít Zavřít dialog o přidávání šumu do obrazu.
54.6 Soubory
ZODOP
119
Po zmáčknutí tohoto tlačítka se objeví dialog pro volbu souborů s moţností volby více souborů najednou na obrazech ve zvolených souborech se změní vyváţení bílé podle parametrů zvolených v dialogu. Vedle tlačítka se v okénku objevuje počet uţ zpracovaných souborů.
55. Průchod nulou Tento modul slouţí spolu s konvoluční filtrací k detekci hran. Nejprve je nutné vyfiltrovat obraz pomocí konvoluční filtrace některým z filtrů typu Marr. Tyto filtry jsou digitalizovanou verzí spojitého filtru 2 2 x 2 y 2 2 2 x 2y 2 4
e
Velikost centrální oblasti filtru o průměru 2 2 by měla zhruba odpovídat minimální velikosti detailů, jejichţ hrany chcete detekovat. Místo těchto filtrů je moţné pouţít jinou kombinaci vyhlazujícího a druhoderivačního filtru. Na výsledek se potom pouţije tento modul. Aby bylo moţné uloţit záporné hodnoty, přičítá se k obrázku 128. Modul hledá průchody signálu nulou. Má parametr s , vyjadřující minimální strmost detekované hrany v úrovních na pixel. Vstupní hodnoty se získají odečtením 128 od obrazu. Hrana je detekována, pokud je vstupní hodnota nula a v 8-okolí je alespoň jedna hodnota větší nebo rovna s a alespoň jedna hodnota menší nebo rovna s nebo pokud je vstupní hodnota různá od nuly a v jejím 4-okolí je alespoň jedna hodnota s opačným znaménkem, s větší absolutní hodnotou (v případě kladných hodnot se připouští i rovnost) a s absolutní hodnotou rozdílu větší nebo rovnou s . Na místa s detekovanou hranou je ve výsledku uloţena hodnota 255, jinde 0. Maximální strmost hrany v obrazu filtrovaném Marrovým filtrem je přibliţně rovna maximálnímu rozdílu úrovní ve vstupním obrazu dělenému 2 . Hodnoty parametru s má proto smysl volit v rozmezí od nuly do této hodnoty.
56. Fázová korelace Tento zásuvný modul se pokouší registrovat snímky lišící se podobnostní transformací, tzn. posunutím, otočením a změnou měřítka. K výpočtu otočení a změny měřítka pouţívá výpočet korelace pomocí rychlé Fourierovy transformace v logaritmicko-polárních souřadnicích, někdy téţ zvané FourierovaMellinova transformace. Zvlášť se pak počítá posunutí pomocí normální korelace. Při volání dialogu se obraz ozačený jako druhý pouţije jako referenční a zdrojový obraz jako vstupní. Zásuvný modul se ovládá pomocí tohoto dialogu :
120
ZODOP
56.1 Otočení od -90° do 90° Pokud je toto tlačítko potvrzeno, pak algoritmus předpokládá, ţe otočení připojovaného obrazu vzhledem referenčnímu leţí v intervalu -90° aţ 90°. Pro zjištěný úhel otočení a se pak jiţ neprovádí test výsledku fázové korelace pro otočení a+180°. V opačném případě se pomocí porovnání výsledků fázových korelací pro úhly a a a+180° vybere výsledný úhel otočení. Protoţe otočení většiny registrovaných dvojic obrazů leţí v uvedeném intervalu, je toto tlačítko implicitně potvrzeno.
56.2 Pyramidální registrace Při potvrzení tohoto tlačítka se při výpočtu pouţije pyramidální algoritmus, tzn. ţe se výpočet provede nejprve na velmi zmenšených snímcích a teprve v případě potřeby se zpřesňuje. Hierarchická úroveň, ve které se algoritmus právě nachází, je zobrazována v dolní části dialogu. V některých případech můţe být pyramidální registrace i několikanásobně rychlejší neţ původní ne-pyramidální verze registračního algoritmu. Z důvodů moţné menší přesnosti nalezených parametrů však není tato volba implicitně zvolena.
56.3 Typ filtrace Pokud necháme tlačítko "Pouze zero-padding (bez Hanningova okna)" nepotvrzené, bude se periodická hladkost obrazu zajišťovat pomocí filtrace s Hanningovým oknem. V opačném případě se pouze obklopí původní obrazy okrajovými oblastmi s nulovými hodnotami, tedy provede se pouze zeropadding. V tomto případě jsou k dispozici dvě editační pole "S zero pad" respektive "T zero pad", ve kterých je moţno zvolit velikost koeficientu prodlouţení rozměrů registrovaných obrazů pro algoritmus fázové korelace, která se pouţívá pro zjištění změny měřítka (Scale) a vektoru posunutí (Translation). V případě fázové korelace, která se provádí v logaritmicko-polárních souřadnicích, bude koeficient prodlouţení osy logaritmické vzdálenosti roven součinu rozměru této osy a hodnoty editačního pole "S zero pad". V případě všech ostatních přímých Fourierových transformací prováděných registračním algoritmem bude koeficient prodlouţení rozměrů obou os registrovaných obrazů roven součinu daného rozměru a hodnoty uvedené v editačním poli "T zero pad". V tomto případě by měl být koeficient prodlouţení větší nebo roven maximálnímu počtu pixelů, o který jsou registrované obrazy v horizontálním a vertikálním směru navzájem posunuty. Ve většině případů se osvědčilo nastavení 0.3 pro pole "T zero pad" a 0.4 pro "S zero pad". Doba provádění celého algoritmu registrace je při pouţití zero-paddingu delší neţ v případě filtrace Hanningovým oknem, neboť se Fourierova transformace provádí na obrazy, jejichţ rozměry jsou zvětšeny k koeficient prodlouţení. Implicitně se proto provádí filtrace Hanningovým oknem.
56.4 Výsledek
ZODOP
121
Zde se zobrazuje výsledek, jednotlivá políčka Rot, Scale, tx a ty představují parametry, o kolik se má připojovaný obraz otočit, zvětšit, respektive zmenšit a posunout, aby se mohl připojit k referenčnímu obrazu. Kladným se zde označuje otočení proti směru hodinových ručiček. Pole "Pst %" zobrazuje míru pravděpodobnosti v rozsahu 0% aţ 100%, se kterou lze prohlásit nalezenou podobnostní transformaci za korektní. Tato hodnota se vypočítává z velikosti fázovou korelací nalezeného maxima korigovaného vzhledem k rozměrům obrazů. Z důvodů různého vzájemného posunutí obrazů se ukázalo jako obtíţné určit prahovou hodnotu, nad kterou by jiţ bylo moţno prohlásit nalezenou podobnostní transformaci za korektní. Jako přibliţnou hodnotu pro tento práh lze povaţovat hodnotu 10%. V poli Čas je zobrazena doba provádění výpočtu registrace vyjádřená v minutách a vteřinách.
56.5 Soubor s vlícovacími body Toto editační pole obsahuje název souboru s vlícovacími body, do kterého se uloţí výsledek registrace, tj. parametry nalezené podobnostní transformace. Při spuštění modulu je jako název souboru s vlícovacími body nastaveno jméno souboru s referenčním obrazem, k němuţ je přidána přípona ".vli".
56.6 Provést Spuštění výpočtu parametrů podobnostní transformace mezi zdrojovým a druhým obrazem.
56.7 Zrušit Zrušit dialog o spojování obrazů.
56.8 Výběr Tímto tlačítkem lze zvolit soubor s vlícovacími body, do kterého se uloţí výsledná podobnostní transformace. Při spuštění je jako název souboru s vlícovacími body nastaveno jméno referenčního obrazu s příponou ".vli".
56.9 Právě prováděná operace Zde se zobrazuje název právě prováděné operace. Pokud se provádí pyramidální registrace, pak je zde zobrazena také úroveň hierarchie, ve které se registrace právě provádí
57. Detekce rohů Tento zásuvný modul jednak detekuje rohy v obrazech, jednak mezi nalezenými rohy ze dvou obrazů hledá korespondenci. Rohy s nalezenou korespondencí je moţno vyuţít jako vlícovací body pro registraci obrazu. Zde je dialogové okno :
122
ZODOP
57.1 Parametry metody Pouţitá metoda má řadu parametrů:
Počet hledaných bodů: n Poloměr okolí pro výpočet statistiky: m Poloměr okolí pro výpočet změn znaménka: r Minimální vzdálenost mezi rohem a přímkou: s Interval úhlu mezi hranami z rohu [°]: da Maximální odchylka křivosti přímek [°]: ds Minimální vzdálenost mezi rohy: t Poloměr okolí pro test korespondence: c Maximální odchylka na vlícovacích bodech: v Poloměr okolí pro zpřesňování: z
Vzdálenosti jsou v pixelech. Většina implicitních hodnot byla nalezena jako optimální při četných pokusech a nemá smysl je měnit. Vyjímkou je počet hledaných bodů n, který je dobré u větších obrazů zvýšit a poloměr okolí pro test korespondence c, kde se někdy stává, ţe pro implicitní hodnotu 60 pixelů nedostaneme správný výsledek, zatímco pro jinou hodnotu ano. Smysluplné hodnoty leţí zhruba v intervalu 20 aţ 90.
57.2 Zápis souřadnic rohů do souboru Souřadnice nalezených rohů jsou zapsány do souboru uvedeného pod tlačítkem. Na první řádce je číslo nula a počet rohů a na dalších řádkách jsou nalezené souřadnice. Při zmáčknutí tlačítka Vlícovací body jsou do tohoto souboru zapsány souřadnice vlícovacích bodů ve formátu pro stejnojmennou funkci. Soubor je moţno zvolit téţ tlačítkem Výběr. Není-li ţádný soubor zvolen, je pouţit implicitní corners.txt nebo corners.vli pro vlícovací body.
57.3 Editace Soubor se souřadnicemi bodů uvedený pod tlačítkem je otevřen v textovém editoru.
57.4 Metoda detekce rohů
ZODOP
123
Metoda detekce rohů můţe být
ZOI Harris
Metoda ZOI vypočte střední hodnotu
g i, j a rozptyl
W i, j
1 m2
f k , l ,
i , j , m
f k , l g i, j 2 .
i , j , m
f(k,l) je hodnota obrazové funkce v bodě (k,l),
i , j ,m je kruhové okolí bodu (i,j) o poloměru m. Kolem
kaţdého bodu je zkonstruována kruţnice o poloměru r, od hodnot obrazové funkce na této kruţnici je odečtena střední hodnota g(i,j) a je spočten počet změn znaménka rozdílu na kruţnici. Pokud jsou nalezeny 2 změny znaménka a odchylka úhlu mezi nimi od 90° je menší neţ da, je bod označen za kandidáta na roh. Během fáze hledání rohů jsou eliminováni ti kandidáti, v jejichţ okolí o poloměru s je jiný bod, kde počet změn znaménka je 2 a odchylka úhlu mezi nimi od 180° je menší neţ ds. Nakonec se vybere n kandidátů s největší absolutní hodnotou rozptylu W(i,j). Po nalezení kaţdého maxima je jeho okolí vynulováno, tím je zajištěno, ţe ţádné nalezené rohy nebudou blíţe sobě neţ t. Harrisova metoda detekuje rohy v místech lokálních minim funkce
F x, y
f x2 f y2
f x2 f y2 f x f y
2
,
kde čára nad symbolem značí střední hodnotu v kruhovém okolí bodu (x,y) o poloměru m. Indexy značí derivaci v příslušném směru. Vybere se n kandidátů s nejmenší hodnotou funkce F(x,y). Po nalezení kaţdého minima je jeho okolí vynulováno, tím je zajištěno, ţe ţádné nalezené rohy nebudou blíţe sobě neţ t.
57.5 Zobrazit výsledek v obrazu Při potvrzení se vytvoří kopie vstupního obrazu a v něm jsou kříţky vyznačeny detekované rohy. Při zmáčknutí tlačítka Vlícovací body jsou vyznačeny pouze rohy, k nimţ se podařilo nalézt korespondenci. První dva body s nejsilnější korespondencí, které řídí další hledání jsou vyznačeny větším kříţkem. Kříţky mají aktuální barvu.
57.6 Invarianty pro test korespondence Pro test korespondence je moţno zvolit jednu ze sad invariantů vůči Otočení Otočení + rozmazání Sada invariantů vůči otočení obsahuje 6 podobnostních momentových invariantů 2. a 3. řádu, sada invariantů vůči otočení a rozmazání obsahuje 17 momentových invariantů vůči podobnostní transformaci a konvoluci středově symetrickou maskou, invarianty jsou 3., 5. a 7. řádu.
57.7 Detekce rohů Provede se detekce rohů ve zdrojovém obrazu.
57.8 Vlícovací body Provede se detekce rohů ve zdrojovém a druhém obrazu. Poté se mezi nimi hledá korespondence. Spočtou se hodnoty invariantů v okolí kaţdého bodu o poloměru c a najde se dvojice bodů, kaţdý z jednoho obrazu, jejichţ hodnoty invariantů se liší nejméně. Poté se hledá další dvojice s minimální odchylkou invariantů, přičemţ se preferují dvojice, jejichţ rozdíl vzdáleností od bodů první dvojice v obou obrazech je menší neţ 10%. Tyto dvě dvojice vlícovacích bodů umoţňují spočítat parametry podobnostní transformace, podle které se potom transformují ostatní body z prvního obrazu do druhého a hledají se páry nejbliţších bodů. Hledání končí, kdyţ se buď najde n párů bodů nebo nelze nalézt ţádnou další dvojici bodů bliţších neţ v.
124
ZODOP
Je moţné také zvolit zpřesňování, kdy při nalezení kaţdé dvojice bodů se ještě zkoumá, zda v okolí bodu z prvního obrazu o poloměru z není bod, pro který by odchylky invariantů byly menší neţ pro původní bod. Toto zpřesňování je však časově poměrně náročné a ve většině případů nejsou výsledky o mnoho lepší, proto je implicitně zpřesňování vypnuto volbou z=0. Souřadnice bodů s nalezenou korespondencí jsou zapsány do souboru uvedeném dole v dialogu a to ve formátu pro funkci Vlícovací body (viz). Soubor je moţno zvolit téţ tlačítkem Výběr. Není-li ţádný soubor zvolen, je pouţit implicitní corners.vli.
57.9 Barva značek Je zavolán dialog pro volbu aktuální barvy, která se potom pouţije při kreslení značek.
57.10 Zavřít Zavře se dialog o detekci rohů.
58. Animovaný GIF Tento zásuvný modul slouţí pro práci s jednoduchými animovanými obrázky ve formátu GIF, verze 89a. Je kombinovaný, tzn. je ho moţné volat jako výkonný z menu i pouţít jako formátový pro otevírání obrázků v příslušném formátu. Při volání z menu se objeví tento dialog:
58.1 Animovat Animovat zvolený GIF soubor (parametr Jméno souboru), tzn. číst soubor neustále opakovaně a provádět i řídící povely jako je zpoţdění. Pokud soubor neobsahuje ţádost o uţivatelský vstup, končí animace zmáčknutím libovolné klávesy či tlačítka myši (s vyjímkou NumLock, CapsLock a ScrollLock). Pokud program narazí na ţádost o uţivatelský vstup, lze animaci ukončit pouze odpovědí ano na dotaz Ukončit operaci ?
58.2 Rozfázovat Zobrazit obrazovou informaci ze zvoleného GIF souboru (parametr Jméno souboru) a to kaţdý obraz do nového okna. Je-li navíc potvrzeno tlačítko Vytvořit záznam, zapíše se neobrazová informace do souboru se stejným jménem a ve stejném adresáři jako GIF soubor lišícího se pouze příponou .log. Po provedení potřebných změn, během kterých se nesmí ţádný obraz zavřít a nesmí se porušit syntaxe záznamu, lze sestavit GIF soubor znovu pomocí tlačítka GIF podle záznamu.
ZODOP
125
58.3 Vytvořit záznam Je-li potvrzeno toto tlačítko, zapíše se při operacích Animovat a Rozfázovat neobrazová informace zvoleného GIF souboru do souboru se stejným jménem a ve stejném adresáři jako GIF soubor lišícího se pouze příponou .log. Po provedení potřebných změn, během kterých se nesmí ţádný obraz zavřít a nesmí se porušit syntaxe záznamu, lze sestavit GIF soubor znovu pomocí tlačítka GIF podle záznamu. Pro tento účel je nutné vytvořit záznam pomocí Rozfázovat, protoţe pak jsou k dispozici všechny obrazy i se správnými jmény. Tlačítkem Editor je pak moţno zavolat editor, který umoţní provést poţadované změny v záznamu.
58.4 Formát záznamu o GIF souboru Záznam do jisté míry kopíruje strukturu GIF souboru. Prázdné řádky, mezery a tabulátory na začátku řádek jsou vynechávány. V dalším výkladu obsah mezi znaky < a > je nepovinný, znak | znamená, ţe jedna z alternativ musí nastat. Kurzíva znamená, ţe řetězec je nahrazen aktuálním údajem. #ni je zkratka pro celé číslo, #nf pro číslo v plovoucí čárce. První neprázdná řádka obsahuje: Verze:
| přičemţ při operaci GIF podle záznamu musí být verze GIF89a. Na dalších řádkách je: Šířka okna: #ni Výška okna: #ni Bitů na pixel: #ni <<Setříděná globální paleta o velikosti: #ni>|uloţená v obrázku: jméno souboru:#ni> Index barvy pozadí: #ni Poměr stran #nf:#nf \kb Číslo za jménem souboru je pořadí obrázku mezi obrázky se stejným jménem. \kb je zkratka pro konec bloku. Dále mohou následovat rozšiřovací a obrazové bloky, které se mohou různě střídat. Rozšiřovací blok můţe být Komentář, Řídící blok grafiky, Blok aplikace a Text v obrázku. Syntaxe: Komentář:: text komentáře \kb Řídící blok grafiky <Ţádné odstranění dat není specifikováno>|||| <Čeká se na uţivatelský vstup> Zpoţdění: #nf s \kb Blok aplikace Jméno a kód aplikace data aplikace \kb Text v obrázku: Levý okraj textu: #ni Horní okraj textu: #ni Šířka textu: #ni Výška textu: #ni Šířka buňky textu: #ni Výška buňky textu: #ni Index barvy textu: #ni Index barvy pozadí: #ni text \kb Poznámky: Ze jména a kódu aplikace se pouţije prvních 11 znaků. Data aplkace jsou dvojice hexadecimálních číslic, kaţdá dvojice určuje obsah jednoho bajtu. Obrazový blok má syntaxi: Obrázek č. #ni : jméno: #ni Levý okraj: #ni Horní okraj: #ni
126
ZODOP
Šířka: #ni Výška: #ni <<Setříděná lokální paleta o velikosti: #ni>|> \kb
58.5
Jméno zdrojového obrazu
V tomto okénku se objevuje jméno zdrojového obrazu včetně pořadí mezi obrazy stejného jména. Podle rozměru a vybrané oblasti zdrojového obrazu se nastavují parametry Poeátek, Velikost okna/buňky a Velikost obrazu/textu Vodorovně a Svisle.
58.6 GIF podle záznamu Vytvoří soubor ve formátu GIF podle záznamu uloţeném ve stejném adresáři a pod stejným jménem lišícím se pouze příponou .log. Chcete-li něco změnit v existujícím souboru GIF, potvrďte tlačítko Vytvořit záznam a zmáčkněte tlačítko Rozfázovat. Obrazová informace se uloţí do obrazů a neobrazová do souboru typu .log. Proveďte potřebné změny a soubor znovu sestavte tímto tlačítkem GIF podle záznamu.
58.7 Zapsat hlavičku Zapsat hlavičku do vytvářeného souboru GIF. Pouţívá parametry Jméno souboru, Velikost okna/buňky, Poměr stran, Index barvy pozadí, Zapsat globální paletu a Setřídit paletu. V případě potvrzení Zapsat globální paletu zapíše do hlavičky paletu zdrojového obrazu a v případě potvrzení Setřídit paletu ji setřídí podle četnosti výskutu jednotlivých indexů ve zdrojovém obrazu. Hlavička musí být vţdy na začátku souboru, proto přemaţe případný existující obsah souboru !
58.8 Zapsat obraz Zapsat výřez ze zdrojového obrazu do vytvářeného souboru GIF. Pouţívá parametry Jméno souboru, Počátek vodorovně a svisle a Velikost obrazu/textu, podle kterých určuje výřez a dále Prokládání a Setřídit paletu.
58.9 Řídící blok Zapsat řídící blok do vytvářeného souboru GIF. Pouţívá parametry Jméno souboru, Index průhledné barvy, Obnovit pozadí, Vstup uţivatele a Zpoţdění.
58.10 Komentář Zapsat komentář do vytvářeného souboru GIF. Pouţívá parametry Jméno souboru a Text, který je pouţit jako text komentáře.
58.11 Blok aplikace Zapsat blok aplikace do vytvářeného souboru GIF. Pouţívá parametry Jméno souboru a Text. Z editačního okénka Text pouţije prvních 11 znaků pro identifikaci aplikace (8 znaků by měl být název a 3 identifikační kód) a v dalším textu hledá hexadecimální číslice. Vţdy ze dvou číslic vytvoří 1 bajt, pokud na konci zůstane jedna číslice lichá, doplní ji nulou.
58.12 Text do obrazu Zapsat blok textu do vytvářeného souboru GIF. Zadaný text by se měl při animaci objevit v obrázku. Pouţívá parametry Jméno souboru, Počátek vodorovně a svisle, Velikost okna/buňky (velikost jednoho písmene v pixelech), Velikost obrazu/textu (velikost celého textu v pixelech), Index barvy textu, Index barvy pozadí a Text. Řídící znaky (včetně znaku nová řádka) z parametru Text se zobrazují jako mezery.
58.13 Parametry Parametry Animovaného GIFu jsou rozděleny do několika skupin. Jméno souboru - jméno souboru ve formátu GIF nebo záznam (.log), se kterým se pracuje. Operace Animace a Rozfázovat vyţadují aby zde byl uveden soubor ve formátu GIF, tedy nikoli záznam. Existující soubor je moţné zvolit tlačítkem Výběr. Kromě operací Animace a Rozfázovat pouţívají tento parametr ještě operace GIF podle záznamu, Zapsat hlavičku, Zapsat obraz, Řídící blok, Komentář, Blok aplikace a Text do obrazu.
ZODOP
127
Parametry Počátek, Velikost okna/buňky a Velikost obrazu/textu Vodorovně a svisle se nastavují podle zdrojového obrazu, kromě toho je lze v příslušných editačních okéncích změnit i přímo. Pouţívají se při operacích Zapsat obraz a Text do obrazu, parametry Velikost okna/buňky i při Zapsat hlavičku. Další parametry v editačních okéncích: Poměr stran - editační okénko musí obsahovat 2 čísla v plovoucí čárce oddělená dvjtečkou, můţe být od 4:1 do 1:4.21875. Tento parametr se při zobrazení ignoruje, ale je moţné ho zapsat do výsledného GIFu pomocí operace Zapsat hlavičku. Index barvy pozadí - pouţívá se při operacích Zapsat hlavičku a Text do obrazu. Index barvy písma - pouţívá se při operaci Text do obrazu. Index průhledné barvy - pouţívá se při zápisu Řídícího bloku. Pokud je zde nezáporná hodnota, tak při čtení následného obrazu se data s touto hodnotou nezapisují do obrazu, ale zachová se zde původní obsah, chovají se jako průhledná. Zpoţdění - pouţívá se při zápisu Řídícího bloku. Před dalším čtením se počká příslušný počet sekund. Přípustné hodnoty jsou od 0 do 655.35 s po 0.01 s. Parametry v potvrzovacích okéncích: Zapsat globální paletu - pouţívá se při operaci Zapsat hlavičku, do souboru se zapíše globální paleta ze zdrojového obrazu. Setřídit paletu - pouţívá se při operacích Zapsat hlavičku a Zapsat obraz. V prvním případě se třídí globální paleta, ve druhém lokální, pokud je ji třeba zapsat. Prokládání - pouţívá se při operaci Zapsat obraz. Obraz se zapíše prokládaný, tzn. nejprve kaţdý osmý řádek počínaje prvním, pak mezilehlé, kaţdý osmý počínajepátým, pak kaţdý čtvrtý počínaje třetím a nakonec kaţdý druhý počínaje druhým. Obnovit pozadí - pouţívá se při zápisu Řídícího bloku. Zapíše se povel k vyplnění okna barvou pozadí. Vstup uţivatele - pouţívá se při zápisu Řídícího bloku. Při animaci program zobrazí okno s dotazem Ukončit operaci ? Odpověď ano ukončí animaci, odpověď ne pokračuje v animaci. Parametr Text - obsah tohoto editačního okna se pouţívá při operacích Komentář, Blok aplikace a Text do obrazu.
58.14 Výběr Výběr uţ existujícího GIF souboru nebo záznamu.
58.15 Zavřít Zavře se dialog o práci s animovanými soubory GIF.
59. Porovnání obrazů Tento modul slouţí především k hledání obrázků, které se v nějakém adresáři vyskytují dvakrát a vícekrát. Jako doplňková sluţba je zde i moţnost porovnat shodu dvou jiţ otevřených obrazů. Porovnání dvou obrazů f a g je zaloţeno na korelaci
f (i, j ) g (i, j ) i, j
f 2 (i, j ) i, j
g 2 (i, j )
.
i, j
Vypočítá se z obou obrazů napřed přímo a pak z jejich negativů a z obou hodnot se pouţije ta menší. Udává se v procentech. Zásuvný modul tedy umoţňuje nalézt i zmenšené a zvětšené kopie původního obrazu, ale nikoli výřezy. Zde je dialogové okno modulu
128
ZODOP
59.1 Adresáře V políčcích 1. adresář a 2. adresář se uvedou cesty k adresářům s porovnávanými obrázky. Pokud jsou stejné, porovnávají se všechny obrázky v něm, jinak je vţdy jeden obrázek z 1. adresáře a druhý z 2. Tlačítka výběr usnadňují výběr adresářů.
59.2 Soubor s výsledky Zde je uvedeno jméno souboru s výsledky. V něm je po skončení výpočtu na kaţdém řádku procento shody a jména souborů se podobnými obrázky včetně cesty. Pokud se v prohledávaných adresářích vyskytne nějaký obrázek více neţ dvakrát, je zde uvedena kaţdá dvojice.
59.3 Práh podobnosti Jako podobné se vyhodnotí ty dvojice obrázků, které budou mít procento podobnosti vyšší neţ tento práh. Implicitní hodnota je 97%.
59.4 Počet vzorků v jednom směru Pro urychlení porovnání se nekontrolují všechny pixely zkoumaných obrázků, ale pouze vybrané vzorky. Označíme-li zde uvedené číslo k, kontroluje se k vzorků vodorovně a k vzorků svisle, celkem tedy kxk. Implicitní hodnota k je 10, v naprosté většině případů to stačí, pokud byste však měli problémy s nedostatkem paměti, je moţné toto číslo ještě sníţit, při zvýšení se zpřesní porovnání za cenu prodlouţení výpočtu. Pokud zrušíte zaškrtnutí potvrzovacího políčka, bude výpočet probíhat přímo v souborech a to přes všechny pixely, takţe bude maximálně přesný, ale velmi zdlouhavý.
59.5 Obrazy Porovná se vybraný obraz s obrazem označeným jako druhý. Se soubory se nepracuje, výsledek se objeví v políčku podobnost obrazů v procentech.
59.6 Adresáře Porovnají se všechny obrazy ve vybraných adresářích.
ZODOP
129
60. Formátové zásuvné moduly Formátové zásuvné moduly umoţňují čtení a zápis obrazů v různých grafických formátech. V současné době jsou k dispozici tyto zásuvné moduly s těmito příponami: Modul BMP FITS GIF ICO JPEG PNG PGMPPM PGMPPM PGMPPM PIC_I PNG PSCRIPT RAW RAW TIFF TIFFSAMPLE
přípona „.bmp“ „.fit“ „.gif“ „.ico“ „.jpg“ „.pct“ „.pbm“ „.pgm“ „.ppm“ „.pic“ „.png“ „.ps“ „.siz“ „.raw“ „.tif“ „.tif“
popis formát BMP pro bitmapy ve Windows formát FITS formát „Graphics Interchange Format“ formát ikon ve Windows Joint Photographic Expert Group formát MacPict formát PGM „Portable Bit Map“ formát PGM „Portable Gray Map“ formát PPM „Portable Pixel Map“ formát PIC pro infračervené snímky formát Portable Network Graphics formát PostScript údaje o souboru ve formátu holá data (viz formát siz souboru) soubor ve formátu holá data. Otvírá se pomocí stejnojmenného dialogu. formát TIFF „Tag Image File Format“ vzorkovaný formát TIFF „Tag Image File Format“
a dále zásuvný modul VECTOR pro čtení a zápis vektorových obrazů v těchto formátech: „shp“ „wmf“ „emf“ „dgn“ „cgm“ „cmx“ „drw“ „dwf“ „dwg“ „dxf“ „dgf“ „pcl“ „pct“ „plt“ „svg“ „vec“
formát „Environmental Systems Research Institute“ formát „Windows Meta File“ formát „Windows Enhanced Meta File“ formát „Intergraph Microstation“ - jenom pro čtení formát „Computer Graphics Metafile“ formát „Corel Presentation Exchange“ - jenom pro čtení formát „DRaWing – Micrografx Designer“ formát „AutoCAD“ formát „AutoCAD“ - jenom pro čtení formát „Drawing Interchange Format“ formát „Gerber File“ formát „Printer Command Language“ formát „Vector Macintosh QuickDraw PCT“ formát „HPGL – Hewlett-Packarde“ formát „Scalable Vector Graphics“ vlastní formát LeadTools.
Viz také formátové zásuvné moduly BMP, FITS, GIF, ICO, JPEG, PNG, PGMPPM, PIC_I, PostScript, Holá data, TIFF a Vzorkovaný TIFF.
61. BMP Formátový zásuvný modul zajišťuje práci se soubory typu BMP. Tento formát lze pouţít pro čtení, zápis a pro částečné obnovení z disku. Při ukládání v tomto formátu se také zapisuje rozlišovací schopnost při tisku (v dpi) v případě, ţe byla nastavena. Při otvírání, pokud je v souboru zapsaná jiná neţ implicitní rozlišovací schopnost (v současnosti 72 dpi), se tato přečte a doplní se poloha uprostřed aktuální stránky. Zápis 16-bitových obrazů v tomto formátu je moţný jen v případě, ţe jednotlivé základní barvy lze vymaskovat. Testuje se proto, zda obraz má paletu vytvořenou v dialogu pro změnu palety tlačátkem Šedá, Masky nebo Stejné masky s implicitními hodnotami parametrů, tj. Počátek=0 a Délka=65536. Pokud tomu tak není, je obraz převeden na 24-bitový, coţ má za následek, ţe po opětném přečtení obraz sice vypadá stejně, ale informace z některých méně významných bitů mohou být ztraceny.
62. FITS
130
ZODOP
Formátový zásuvný modul umoţňuje pouze čtení souborů typu FITS. Čtení dat s více neţ dvěma rozměry je odmítnuto. Tento formát umoţňuje ukládat obrazy s hloubkami 8, 16 nebo 32 bitů v pevné řádové čárce a 32 nebo 64 bitů v pohyblivé řádové čárce. Z 8-bitových dat je vytvořen 8-bitový černobílý obraz, z ostatních hloubek 16-bitový. Rozsah hodnot minimum – maximum je namapován na rozsah 0 – 255, případně 0 – 65535.
63. GIF Formátový zásuvný modul zajišťuje práci se soubory typu GIF (Graphics Interchange Format). Copyright Graphics Interchange Format © a servisní značka GIF(sm) je majetek firmy CompuServe Incorporated. Tento formát lze pouţít pro čtení, zápis a pro čtení samotné palety (dialog Úprava palety). Umoţňuje ukládání nejvýše 8-bitových dat, proto při ukládání obrazů s větší hloubkou jsou tyto převedeny do indexových barev se systémovou paletou. Formát také umoţňuje přítomnost více obrazů v jednom souboru. Při otvírání takového souboru se objeví dotaz, kolikátý obraz má být přečten. Při ukládání je pouţita verze formátu GIF87a, při otvírání je moţno číst verze GIF87a a GIF89a, ale neobrazové informace (všechna rozšíření GIF89a oproti GIF87a) jsou ignorovány. Jiné verze nelze tímto zásuvným modulem otevřít. Existuje také zásuvný modul Animovaný GIF, kterým je moţné přečíst i soubory ve formátu GIF89a včetně řídících příkazů.
64. ICO Formátový zásuvný modul umoţňuje čtení i zápis obrazu jako ikony ve Windows. Jako ikonu nelze uloţit obraz s větší hloubkou neţ 8 bitů.
65. JPEG Formátový zásuvný modul JPEG je určen pro práci se stejnojmennou skupinou formátů. JPEG je zkratka z Joint Photographic Expert Group a vyslovuje se „dţejpeg“. Zásuvný modul je zaloţen na práci „Independent JPEG Group“, zkráceně IJG. Umoţňuje čtení běţně pouţívaných JPEG formátů včetně většiny základních (baseline), rozšířených sekvenčních a progresivních formátů. Nepodporuje hierarchické uloţení, bezeztrátový JPEG, aritmetické kódování podle entropie, marker DNL a neceločíselné podvzorkovací poměry. Formát JPEG umoţňuje zapsat pouze černobílé 8-bitové obrazy a 24-bitové RGB obrazy, proto při zápisu obrazu v indexových barvách je tento transformován do 24 bitů RGB. Při zápisu je JPEG ztrátový, tzn. ţe zapsaný obraz se trochu liší od původního, ale je moţné docílit velmi příznivých kompresních poměrů. V dialogu Nastavení je moţné nastavit kvalitu a tím i velikost výstupního souboru na stupnici 0 aţ 100 doporučenou IJG. Zásuvný modul pak podle toho nastaví vhodné kvantizační tabulky. Implicitní hodnota 75 vyhoví v naprosté většině případů, teprve kdyţ při zpětném čtení uvidíte defekty, zkuste kvalitu zvýšit. Naopak, pokud zapisovaný obraz uţ je horší kvality, lze sníţit nastavení aţ na 50 bez významné degradace, pokud obraz neobsahuje dithering nebo moiré. Kromě experimentálních účelů není vhodné pouţívat vyšší kvalitu neţ 95, nastavení 100 vytvoří soubor dva- aţ třikrát větší neţ 95 bez pozorovatelného zvýšení kvality. Nastavení 100 je spíše matematický limit neţ uţitečné nastavení. Pokud chcete velmi malý soubor a jste připraveni tolerovat velká poškození, je vhodné nastavení od 5 do 10. Nastavení okolo 2 uţ je dobré leda pro obveselení.
66. PNG Formátový zásuvný modul zajišťuje práci se soubory typů PCT a PNG. Tyto formáty lze pouţít pro čtení, zápis a pro částečné obnovení z disku. Pouţívá knihovnu LeadTools. Pouţitá verze knihovny neumoţňuje zápis 16-bitových obrazů v tomto formátu.
67. PGMPPM
ZODOP
131
Formátový zásuvný modul umoţňuje čtení i zápis souborů typu PGM (Portable Gray Map), PBM (Portable Bit Map) a PPM (Portable Pixel Map) v binární verzi. Formát PGM se pouţívá pouze pro černobílé obrazy s hloubkami 2 aţ 16 bitů, pro 1-bitové obrazy se pouţije PPM a pro barevné obrazy (v indexových barvách i RGB) se pouţije 24-bitový formát PPM. Je téţ zajišťována funkce částečného obnovení z disku.
68. PIC_I Formátový zásuvný modul umoţňuje čtení i zápis souborů typu PIC. Tento formát neumoţňuje ukládat barevné třísloţkové obrazy ve 24-bitovém RGB módu, proto se v tom případě uloţí pouze jas. V případě obrazů v indexových barvách se uloţí pouze indexy.
69. PostScript Formátový zásuvný modul PSCRIPT umoţňuje zápis obrazu v jazyce PostScript. Do souboru se téţ zapisují údaje o poloze na stránce a rozlišovací schopnosti při tisku nastavené v dialogu nastavení strany. Pokud tyto údaje nebyly nastaveny, zapíše se implicitní rozlišovací schopnost (v současnosti 72 dpi) a poloha uprostřed aktuální stránky. Soubory v tomto formátu lze jednak přímo vytisknout na postscriptových tiskárnách, jednak je zahrnout do dokumentů některých textových editorů (splňují poţadavky na encapsulated PostScript). Zásuvný modul neumoţňuje čtení PostScriptových souborů.
70. TIFF Formátový zásuvný modul zajišťuje práci se soubory typu TIFF (Tag Image File Format). Pouţívá knihovnu Libtiff Copyright © 1988-1996 Sam Leffler a © 1991-1996 Silicon Graphics, Inc. Formát lze pouţít pro čtení i zápis, pro čtení samotné palety (dialog Úprava palety), pro částečné obnovení z disku a je téţ doporučen pro zápis nových obrazů (uplatní se v příkazech Uloţit vše a uloţit seznam). V dialogu Nastavení je moţné nastavit, zda bude obraz zapsán bez komprese, s kompresí Lempel - Zif - Welch známou také jako LZW nebo s kompresí Packbits známou také jako Macintosh RLE. Při ukládání v tomto formátu se také zapisuje rozlišovací schopnost při tisku (v dpi) a poloha na papíře (v inchích) v případě, ţe byly nastaveny. Při otvírání, pokud je v souboru zapsaná rozlišovací schopnost a poloha na papíře, se tyto přečtou. Při otvírání, pokud je obsaţen, je ze souboru téţ čten popis souboru jako komentář, případně jeho prvních 256 znaků, pokud je delší. Při ukládání je jiný neţ implicitní komentář zapisován jako popis souboru. Tento zásuvný modul neumoţňuje čtení obrazů kódovaných jako JPEG a vektorových obrazů.
71. Vzorkovaný TIFF Formátový zásuvný modul IMGFSAMP zajišťuje čtení souborů typu TIFF. Umoţňuje i částečné obnovení z disku. Pouţívá knihovnu Libtiff Copyright © 1988-1996 Sam Leffler a © 1991-1996 Silicon Graphics, Inc. Při otvírání, pokud je v souboru zapsaná rozlišovací schopnost a poloha na papíře, se tyto přečtou. Rozlišovací schopnost není přepočítána podle nastaveného zvětšení a zmenšení. Pokud je obsaţen, je ze souboru téţ čten popis souboru jako komentář, případně jeho prvních 256 znaků, pokud je delší. Omezení na způsob uloţení obrazu v souboru viz zásuvný modul TIFF (kapitola 70). Po zvolení tohoto zásuvného modulu se objeví dialog, ve kterém je moţné zvolit výřez z obrazu, zmenšení vyříznuté části a případně zvětšení.
132
ZODOP
71.1 Výřez Zde je moţno zvolit vodorovnou a svislou souřadnici levého horního rohu výřezu a jeho šířku a výšku.
71.2 Zmenšení a zvětšení Zde je moţno zvolit poměr změny rozměru obrazu. Např. zvolíme-li zmenšení 3 a zvětšení 2, budou rozměry přečteného obrazu rovny dvěma třetinám původních rozměrů, tzn. kaţdý třetí pixel vodorovně i svisle bude vynechán.
71.3 Náčrt obrazu Zde je schematicky naznačen zvolený obraz. Kliknutím levou myší dovnitř náčrtu obrazu a taţením je moţno nastavit výřez, který je znázorněn čárkovaným obdélníkem.
71.4 OK Po uzavření dialogu se přečte zvolená část obrazu.
71.5 Zrušit Zavřít dialog bez otevření obrazu.
72. Formát holá data Tento dialog se pouţívá ve formátovém zásuvném modulu Holá data (soubor RAW) pro čtení obrazových dat, která jsou uloţena v souboru po řádcích bez kódování. Tyto soubory by měly přednostně pouţívat příponu „.raw“. Filtr s touto příponou je k dispozici pro čtení i zápis a je téţ doporučen pro zápis nových obrazů (uplatní se v příkazech Uloţit vše a uloţit seznam). Při čtení nejsou známy rozměry obrazu, proto je musí uţivatel zadat. Pokud je nezná ani on, můţe poţádat program, aby se je pokusil uhodnout (tlačítko Hádej) z velikosti souboru. Pokud si ověří, ţe nalezené rozměry jsou správné, můţe je uloţit (tlačítko Zápis siz) do souboru se stejným jménem jako data, ale s příponou „.siz“ (viz Formát siz souboru). Při dalším čtení souboru se pouţijí údaje z tohoto siz souboru. Filtr s touto příponou je k dispozici pro příkaz Otevřít, ale nikoli pro Otevřít jako. Pokud bude zvolena funkce Uloţit na obraz otevřený v tomto formátu a bude nalezen siz soubor, uloţí se podle údajů v tomto souboru, jinak se pouţije dialog jako při zvolení funkce Uloţit jako. Pokud však obrázek stejného jména bude otevřen vícekrát a podle údajů v siz souboru došlo k vynechání dat (více kanálů, výřez, více bajtů na pixel nebo vzorkování), bude pouţit dialog Uloţit jako i v případě existence siz souboru, protoţe v tomto případě hrozí přepsání dat z jiných obrázků. Formátový modul zajišťuje téţ funkci částečného obnovení z disku, ovšem pouze v případě, ţe je k dispozici příslušný siz soubor. Tato funkce proběhne bez vytvoření dialogu, potřebné údaje jsou přečteny ze siz souboru. Takto vypadá dialogové okno:
ZODOP
133
72.1 Formát siz souboru 1. 2. 3. 4.
řádek: disk řádek: cesta (adresář) řádek: jméno souboru s daty řádek: [buď M nebo L][d]{-Ss}{-Pp}{-Cc}{-Ii}{-Hh}{-Ff}{-R{r}} [ ] jsou povinné poloţky, { } volitelné, velká písmena se píší jako znaky, malá znamenají číselný údaj. d je počet bitů na pixel (v současné době můţe být pouze 8 nebo 16), L buď jednobajtová data nebo správné pořadí bajtů M opačné pořadí bajtů u vícebajtových dat S z vícebajtových dat se vybírá 8 bitů počínaje bitem s (implicitně 0) P počet pixelových kanálů je p (implicitně 1) C počet řádkových kanálů je c (implicitně 1) I počet obrazových kanálů je i (implicitně 1) H délka hlavičky je h (implicitně 0) F délka patičky je f (implicitně 0)
R snímek je barevný, číselný údaj znamená, ţe vyhledávací tabulka je uloţena ve stejném souboru jako data a to počínaje bajtem r od začátku souboru. (implicitně černobílý snímek bez vyhledávací tabulky, samotné R - vyhledávací tabulka je v jiném souboru, RGB - snímek je ve 24-bitovém formátu) 5. řádek: počet sloupců obrazu (šířka) 6. řádek: počet řádků obrazu (výška) 7. řádek: číslo kanálu Pokud je více druhů kanálů, jsou čísla pro jednotlivé druhy oddělena pomlčkou 8. řádek: vzorkování a pokud je a kladné, zmenšuje se a-krát, pokud je záporné, zvětšuje se (-a)krát 9. řádek: levý okraj výřezu 10. řádek: horní okraj výřezu 11. řádek: šířka výřezu 12. řádek: výška výřezu
72.2 Soubor Název otvíraného nebo ukládaného souboru.
72.3 Délky
134
ZODOP
Délka otvíraného souboru.
72.4 Hlavička Počet bajtů hlavičky.
72.5 Šířka Počet sloupců obrazu (šířka).
72.6 Výška Počet řádků obrazu (výška).
72.7 Patička Počet bajtů patičky.
72.8 pixelový kanál z Vlevo je pořadí vybíraného kanálu, vpravo je celkový počet pixelových kanálů. Údaje z pixelových kanálů se střídají v souboru po jednotlivých pixelech.
72.9 řádkový kanál z Vlevo je pořadí vybíraného kanálu, vpravo je celkový počet řádkových kanálů. Údaje z řádkových kanálů se střídají v souboru po jednotlivých řádcích.
72.10 obrazový kanál z Vlevo je pořadí vybíraného kanálu, vpravo je celkový počet obrazových kanálů. Údaje z obrazových kanálů se střídají v souboru po celých obrazech.
72.11 Výřez Bude se číst nebo zapisovat pouze výřez z obrázku. Vţdy je nutno nejprve potvrdit toto kontrolní tlačítko a pak teprve vyplňovat parametry: Levý kraj, Horní kraj, Šířka, Výška.
72.12 Levý kraj výřezu Souřadnice levého okraje výřezu.
72.13 Horní kraj výřezu Souřadnice horního okraje výřezu (odshora).
72.14 Šířka výřezu Počet sloupců (šířka) výřezu.
72.15 Výška výřezu Počet řádků (výška) výřezu.
72.16 Bitů/pixel Volba počtu bitů na pixel 8 nebo 16. Při volbě 16 se však pracuje pouze s 8 vybranými bity.
72.17 bity posunu Z 16 bitů bude vybráno 8 počínaje zde zadaným.
72.18 Prohoď MSB/LSB Při potvrzení znamená, ţe jednotlivé bajty pixelu jsou v souboru uloţeny v opačném pořadí a je třeba je prohodit.
72.19 Vzorkování - krát zmenšit Pokud zde bude vyplněno číslo a, do obrázku se uloţí pouze kaţdý a-tý pixel (při čtení i při zápisu).
ZODOP
135
72.20 Vzorkování - krát zvětšit Pokud zde bude vyplněno číslo a, do obrázku se uloţí kaţdý pixel a krát (při čtení i při zápisu).
72.21 Barva RGB Obraz je ve 24-bitovém formátu. Počet kanálů musí být 3, je moţné zvolit pixelové, řádkové nebo obrazové (implicitně) kanály.
72.22 Indexová barva Obrázek je barevný a bude se číst/zapisovat i vyhledávací tabulka. Nejprve je třeba potvrdit toto kontrolní tlačítko a pak teprve vyplnit parametr Offset. Parametr Vyhledávací tabulka je jen pro čtení a vyplňuje se v dialogu o souboru při potvrzení tohoto kontrolního tlačítka. Zde je moţné pracovat pouze s vyhledávací tabulkou uloţenou binárně na 768 bajtech, vţdy 3 bajty znamenající hodnotu červené, zelené a modré pro odpovídající index. S některými dalšími formáty umí pracovat dialog Úprava palety.
72.23 Vyhledávací tabulka Editační okénko jen pro čtení se jménem souboru s vyhledávací tabulkou.
72.24 Offset Offset vyhledávací tabulky v souboru.
72.25 Hádej Tato funkce se snaţí uhodnout rozměry obrázku z velikosti souboru. Bere přitom v úvahu vyplněné údaje o počtech kanálů, počtu bitů na pixel a délce hlavičky. Sama nastavuje pouze údaje o šířce a výšce obrazu a o délce patičky. Pracuje pouze při čtení ze souboru. Z údajů o počtech kanálů, počtu bitů na pixel, délce hlavičky a patičky a délce souboru určí, kolik můţe mít obrázek nejvýše pixelů. Tento údaj odmocní a hledá rozměry, které tento počet beze zbytku vyplní. Tyto údaje postupně nabízí uţivateli dokud je poměr šířka : výška v rozmezí od 1:1 do 16:1. Při dalším hledání zvětší patičku o jeden pixel a začne znovu. Pokud uţivatel zná některé z těchto tří údajů a vyplní je, vyplní se pouze zbývající údaje.
72.26 Prohoď Š<->V Zamění údaje o šířce a výšce obrazu.
72.27 Prohoď H<->P Zamění údaje o délce hlavičky a patičky. Pokud víte, ţe soubor nemá ţádnou patičku, můţete pouţít tlačítko Hádej a tímto tlačítkem pouţít odhadnutou délku patičky jako délku hlavičky.
72.28 Znovu Smaţe údaje o šířce a výšce obrazu a o délce hlavičky a patičky a hádání rozměrů můţe začít znovu.
72.29 Zápis siz Rozměry a ostatní údaje vyplněné v dialogovém okně se zapíší do souboru se stejným jménem jako data, ale s příponou „.siz“ (viz formát siz souboru). Při dalším čtení souboru se pouţijí údaje z tohoto siz souboru.
72.30 Zápis siz jako Rozměry a ostatní údaje vyplněné v dialogovém okně se zapíší do souboru se zadaným jménem. Mělo by mít příponu „.siz“ (viz formát siz souboru). Při dalším čtení souboru je moţné vyuţít údaje z tohoto siz souboru.
72.31 Nezapisuj siz
136
ZODOP
Potvrzení tohoto tlačítka zabrání automatickému zápisu siz souboru při změně parametrů. To je uţitečné při čtení obrazu z média chráněného proti zápisu, kdy pokus o zápis můţe způsobit pád programu. Potvrzení nezabrání zápisu tlačítkem Zápis siz nebo Zápis siz jako.
72.32 OK Provést zvolenou operaci čtení/zápis.
72.33 Zrušit Zrušit dialog Formát holá data
73. Jak vytvářet zásuvné moduly pro program ZODOP Zásuvný modul je dynamicky připojovaná knihovna (Dynamicly Linked Library - DLL), která obsahuje dvě funkce (vstupní body): PROWIPLUGININIT a PROWIPLUGINENTRY. Mají úmyslně dlouhá jména, aby byla malá pravděpodobnost, ţe se náhodně objeví v jiné knihovně. Tyto funkce musejí být deklarovány v c, v c++ se pouţívá direktiva extern "C" a dále direktivy PASCAL a EXPORT. V případě, ţe zásuvný modul obsahuje bezmodelový dialog, musí zásuvný modul obsahovat ještě třetí funkci, PRETRANSLATEMESSAGE, zajišťující správné zpracování zpráv z dialogu, viz dále. Knihovna je připojována aţ při běhu programu, má proto buď samostatný projekt nebo samostatný cíl (target). Projekt musí obsahovat soubor s příponou „.def“ s podobným obsahem: ; name.def : Declares the module parameters for the DLL. LIBRARY
"name"
EXPORTS PROWIPLUGINENTRY PROWIPLUGININIT (PRETRANSLATEMESSAGE) name v první a druhé řádce je jméno zásuvného modulu. Pouţívají se tzv. regulární dynamicky připojované knihovny, jejichţ vazba k hlavnímu programu je volnější, je proto teoreticky moţné je vytvořit i jiným překladačem neţ je Microsoft Developer Studio, na druhé straně neumoţňují výměnu tříd ani odkazů na ně mezi hlavním programem a zásuvným modulem. Existují dva druhy zásuvných modulů. Výkonné jsou určeny k vykonávání nějaké funkce a jsou volané z menu. Formátové jsou určeny pro čtení a zápis obrazů v souborech nějakého daného formátu. Jsou volané nepřímo prostřednictvím funkcí pro otvírání a ukládání obrazových souborů.
73.1 Inicializační funkce Funkce PROWIPLUGININIT je volaná na začátku hlavního programu. Jejím účelem je sdělit programu informace o sobě, o svém typu, o umístění v menu či o jménech obrazových formátů. Má jako argument ukazatel na strukturu typu TAG_DLLI, kterou musí vyplnit údaji o sobě. Význam jednotlivých poloţek této struktury se liší podle typu zásuvného modulu. Pro výkonné zásuvné moduly mají poloţky tento význam: int nest; úroveň vnoření submenu, můţe být 0 aţ 2 (teoreticky aţ 8 - hodnota MAXNEST, ale taková úroveň vnoření submenu v hlavním programu není); int pos[MAXNEST]; pro indexy 0 aţ nest-1 nutno vyplnit pozici submenu v submenu o úroveň výše, pro index nest pozici příkazu volání zásuvného modulu v posledním submenu; int fashion[MAXNEST]; pro indexy 0 aţ nest-1 nutno vyplnit způsob určení pozice submenu, pro index nest způsob určení pozice příkazu; char *menustr[MAXNEST]; pro indexy 0 aţ nest-1 řetězec se jménem nově vytvořeného submenu, pro index nest řetězec, který se objeví v menu jako příkaz volání zásuvného modulu;
ZODOP
137
char macrofunction[MAXFUNCNAME]; jméno funkce při volání z makra, maximálně 29 znaků. Implicitně je řetězec prázdný a funkci z makra volat nelze. BOOL unfreeable; hodnota TRUE znamená, ţe zásuvný modul nebude uvolněn z paměti bezprostředně po skončení funkce PROWIPLUGINENTRY. Implicitní hodnota FALSE znamená ţe bude. BOOL withoutimage; hodnota TRUE znamená, ţe zásuvný modul bude volatelný i kdyţ není otevřen ţádný obraz. Implicitní hodnota FALSE znamená ţe nebude. HANDLE hinst;
drţadlo instance zásuvného modulu, poskytuje hlavní program.
Poznámky: Pozice v poloţce pos jsou číslovány vţdy od 0. Separátory jsou číslovány jako zvláštní poloţky. V poloţce fashion v indexech 0 aţ nest-1 je moţno pouţít hodnoty: DLLIM_FROM_BEGIN
(hodnota 0): Pozice je počítána od začátku submenu,
DLLIM_FROM_END
(hodnota 1): Pozice je počítána od konce submenu,
DLLIM_TO_END ignorována,
(hodnota 2): Poslední pozice v submenu, hodnota pos je
DLLIM_TO_IDCOMMAND identifikační číslem pos,
(hodnota 3): hodnota pos potom znamená umístit před příkaz s
DLLIM_EVER_NEW (hodnota 4): pouţívá se vţdy v kombinaci (pomocí znaku | - OR bit po bitu) s některou z předchozích hodnot a znamená vytvořit vţdy nové submenu. Pokud je na dané pozici nalezeno submenu, pokračuje se v něm, pokud je nalezen příkaz a v menustr je řetězec, vloţí se poloţka s tímto jménem před příkaz (v případě DLLIM_TO_END na konec submenu). Submenu není moţné nalézt podle identifikačního čísla (DLLIM_TO_IDCOMMAND). Hodnoty konstant jsou definovány v souboru "kernel.h". Pokud nechcete vytvářet nová submenu, stačí zadat pouze řetězec s příkazem volání zásuvného modulu do poloţky menustr[nest], v indexu nest určit submenu nebo příkaz a v niţších indexech určit submenu. Pro formátové zásuvné moduly mají poloţky vstupní struktury tento význam: int nest;
počet filtrů s popisem formátu, můţe být 1 aţ 8
int pos[MAXNEST]; pro indexy 0 aţ nest-1 při Uloţit jako bude (DLLIM_SAVE_TEST, DLLIM_LIST_TEST) nebo nebude (DLLIM_NO_TEST) dotaz na zařazení filtru do seznamu filtrů, při DLLIM_SAVE_TEST nebude nevhodný obraz uloţen ani kdyţ bude příslušná přípona vypsána ručně, int fashion[MAXNEST]; pro indexy 0 aţ nest-1 funkce, které zásuvný modul pro daný filtr zajišťuje, pro index nest musí obsahovat hodnotu DLLIM_LOAD_SAVE (8), dává tak najevo, ţe si zásuvný modul nepřeje být zařazen do menu; char *menustr[MAXNEST];
pro indexy 0 aţ nest-1 řetězec se zněním filtru;
Poznámky: V poloţce fashion v indexech 0 aţ nest-1 je moţno pouţít hodnoty: DLLIM_LOAD_SAVE
(hodnota 8): formát pro čtení i zápis;
DLLIM_LOAD
(hodnota 9): formát jen pro čtení;
DLLIM_SAVE
(hodnota 10): formát jen pro zápis;
DLLIM_LOAD_SAVE_PREF
(hodnota 11): formát pro čtení a zápis i nových obrázků
138
ZODOP
DLLIM_LOAD_SAVE_LUT palety;
(hodnota 12): formát pro čtení, zápis a čtení samotné
DLLIM_LOAD_LUT
(hodnota 13): formát pro čtení a čtení samotné palety;
DLLIM_LOAD_SAVE_PREF_LUT čtení samotné palety;
(hodnota 14): formát pro čtení a zápis i nových obrázků a
DLLIM_LOAD_NOT_AS příkazu Otevřít jako;
(hodnota 15): formát jen pro čtení, nebude zařazen do
DLLIM_PARTIAL_REVERT (hodnota 16): formát umoţňuje částečné obnovení z disku, pouţívá se vţdy v kombinaci (pomocí znaku | - OR bit po bitu) s některou z předchozích hodnot. Hodnoty konstant jsou definovány v souboru "kernel.h". Řetězec se zněním filtru v poloţce menustr má tvar "popis formátu\0seznam přípon\0", kde popis formátu musí být velmi stručný, maximálně okolo 35 znaků. Přípony v seznamu přípon mají tvar *.pri a jsou odděleny středníkem. Tento tvar vyţaduje dialog pro získání jména souboru pro zařazení do komboboxu s filtry. Příklad filtru: "PBM/PGM/PPM Bit/Gray/Pixel Map\0*.pbm;*.pgm;*.ppm\0". Zápis nových obrázků znamená, ţe formát bude zařazen do seznamu filtrů v příkazech Uloţit vše a Uloţit seznam pro případ nově utvořených obrazů dosud beze jména. Tento způsob činnosti (DLLIM_LOAD_SAVE_PREF a DLLIM_LOAD_SAVE_PREF_LUT) by měl být pouţit pouze pro formáty umoţňující zápis a zpětné čtení beze ztrát informace všech typů obrazů, se kterými program pracuje. Teoreticky je moţné vytvořit kombinovaný výkonný a formátový zásuvný modul. V poloţce nest pak bude součet počtu filtrů a úrovně vnoření a v poloţkách s indexem nest budou údaje o řetězci zařazeném do menu. V poloţkách s niţšími indexy budou libovolně promíchané údaje o filtrech a o submenu. Údaje o submenu však musejí zachovávat pořadí mezi sebou. Poloţku unfreeable je nutno nastavit na TRUE např. v případě, ţe zásuvný modul vytváří vlastní bezmodelový dialog funkcí CreateDialog nebo obdobnou. Pokud si zásuvný modul přeje v tomto případě být uvolněn z paměti hned jak je to moţné, můţe těsně před skončením posledního dialogu poslat zprávu WM_USER hlavnímu oknu hlavního programu, s parametrem lparam obsahujícím odkaz na strukturu poslaný jako parametr funkce PROWIPLUGINENTRY (viz dále), např. PostMessage(pFrameWin_hWnd, WM_USER ,0,lpm); Jak získat hodnoty pFrameWin_hWnd a lpm viz dále. Funkce PROWIPLUGININIT vrací hodnotu typu int, která však není vyuţívána. Aby bylo moţno ovlivnit pořadí, v jakém program zařazuje zásuvné moduly do menu, lze vyuţít poloţky group_name a group_order vstupní struktury. Do poloţky group_name se uloţí jméno skupiny zásuvných modulů a do poloţky group_order pořadí ve skupině zásuvných modulů. Při inicializaci programu se nalezené zásuvné moduly seřadí podle těchto poloţek a to tak, ţe řetězce v group_name se seřadí podle abecedy nejprve bez ohledu na velikost písmen a řetězce lišící se pouze velikostí písmen se poté seřadí s ohledem na tuto velikost (velká písmena napřed). Pokud mají některé zásuvné moduly tuto poloţku stejnou, seřadí se podle velikosti poloţky group_order interpretované jako číslo. Poloţky group_name a group_order je nejlépe vytvořit v resource příslušného zásuvného modulu jako řetězce s identifikátory IDS_GROUP a IDS_ORDER (1024 a 1025) definovanými v souboru "pluginres.h" aby bylo moţno je kontrolovat bez přístupu ke zdrojovému textu a přiřadit je příkazy: LoadString(theApp.m_hInstance,IDS_GROUP,tag_dlli->group_name,MAXGROUP); LoadString(theApp.m_hInstance,IDS_ORDER,tag_dlli->group_order,MAXORDER);
73.2 Výkonná funkce Funkce PROWIPLUGINENTRY je volaná při zvolení příslušného příkazu uţivatelem v menu nebo při otvírání a ukládání obrazových souborů, případně při zpracování příslušné funkce v makru. Jako parametr má funkce ukazatel na strukturu TAG_DLLP, která obsahuje ukazatele na některé důleţité funkce a proměnné z hlavního programu (původní funkce či proměnná má stejné jméno jako ukazatel bez předpony „lp_“).
ZODOP
139
Funkce PROWIPLUGINENTRY vrací hodnotu typu int, která u výkonných zásuvných modulů při volání z menu není vyuţívána, u formátových modulů a při volání z makra vrací nulu při úspěchu a nenulovou hodnotu (zpravidla 1) při chybě. Struktura TAG_DLLP má tyto poloţky: lp_FileNew ukazatel na funkci, která vytvoří nové obrazové okno a vyplní ho daty. Tato funkce má 1 parametr: image ukazatel na strukturu IMAGE obrazu (nejlépe vytvořenou funkcí lp_CreateImage a s daty zapsanými programem - implicitně je obraz vyplněn nulami). Funkce vrací 0, v případě neúspěchu 1. lp_SetUndoImage ukazatel na funkci, která starý obsah obrazového okna uloţí a obrazovému oknu přiřadí nová obrazová data. Má 2 parametry: hWnd drţadlo obrazového okna, kterému se přiřazuje nový obsah imagen ukazatel na strukturu IMAGE s novým obrazem Funkce vrací hodnotu TRUE pokud se přiřazení zdařilo (pokud obrazové okno existuje), jinak vrací FALSE. lp_SetUndoSelection ukazatel na funkci, která uloţí starou vybranou oblast pro funkci Zpět a alokuje paměť pro novou vybranou oblast. Má tyto parametry: wimageo ukazatel na třídu okna s vybranou oblastí, copy
při 2 se bude kopírovat nejvýznamnější bit staré oblasti do nové paměti, při 1 se bude kopírovat stará oblast do nové paměti, při 0 se nebude kopírovat a při -1 se nealokuje paměť.
rcold ukazatel na strukturu RECT se souřadnicemi starého obdélníka opsaného vybrané oblasti, při NULL bude nalezen podle dat. Funkce vrací hodnotu TRUE při úspěchu, jinak vrací FALSE. lp_CreateImage ukazatel na funkci, která alokuje paměť pro strukturu IMAGE nového obrazu a vyplní ji základními údaji o obrazu. Tato funkce má 2 parametry: w šířka obrazu, h výška obrazu, d hloubka obrazových dat – můţe být 1, 2, 4, 8, 16, 24 nebo 32 bitů na pixel, a při vytváření vektorového obrazu řetěz se jménem souboru s vektorovým obrazem, jinak NULL. Při vytváření vektorového obrazu struktura pouze zpřístupňuje data, která musí být uloţena v souboru. V tom případě se ignorují ostatní argumenty. Funkce vrací ukazatel na nově vytvořený obraz, při neúspěchu NULL. lp_DestroyImage ukazatel na funkci, která uvolní paměť alokovanou pro obraz. Má 1 parametr: image ukazatel na strukturu IMAGE, která má být odstraněna. Funkce vrací NULL, při neúspěchu ukazatel na obraz. lp_DuplicateImage
ukazatel na funkci, která vytvoří kopii obrazové struktury. Má 1 parametr:
image ukazatel na strukturu IMAGE, která se bude kopírovat. Funkce vrací ukazatel na kopii struktury IMAGE.
140
ZODOP
lp_CopyImageData ukazatel na funkci, která kopíruje obrazová data z jedné obrazové struktury IMAGE do druhé včetně případného alfa kanálu. Má 2 parametry: s_image ukazatel na zdrojovou obrazovou strukturu, d_image ukazatel na cílovou obrazovou strukturu, Funkce nevrací hodnotu. lp_CopyImageAlpha ukazatel na funkci, která kopíruje alfa kanál z jedné obrazové struktury IMAGE do druhé. Má 2 parametry: s_image ukazatel na zdrojovou obrazovou strukturu, d_image ukazatel na cílovou obrazovou strukturu, Funkce nevrací hodnotu. lp_CopyImagePal ukazatel na funkci, která kopíruje paletu z jedné obrazové struktury IMAGE do druhé. Má 2 parametry: s_image ukazatel na zdrojovou obrazovou strukturu, d_image ukazatel na cílovou obrazovou strukturu, Funkce nevrací hodnotu. lp_PutImageRow ukazatel na funkci, která kopíruje část jednoho řádku obrazových dat ze zadaného bufferu do obrazové struktury. Má 5 parametrů: image ukazatel na výslednou obrazovou strukturu IMAGE do které se bude kopírovat, x souřadnice začátku kopírování, y souřadnice řádku, dn ukazatel na buffer s kopírovanými daty, cb počet kopírovaných pixelů. Pokud je záporný, kopíruje se v opačném pořadí, ch číslo kanálu. Pro 1- aţ 8-bitové obrazy musí být 0, pro 24-bitové 0 – modrá, 1 – zelená, 2 – červená. Funkce vrací hodnotu -1 pokud image nebo image->pData není korektní, jinak 0. lp_GetImageRow ukazatel na funkci, která kopíruje část jednoho řádku obrazových dat z obrazové struktury do zadaného bufferu. Má 5 parametrů: image ukazatel na zdrojovou obrazovou strukturu IMAGE ze které se bude kopírovat, x souřadnice začátku kopírování, y souřadnice řádku, dn ukazatel na buffer se získanými daty, cb počet kopírovaných pixelů. Pokud je záporný, kopíruje se v opačném pořadí. ch číslo kanálu. 0 – index, -1 – jas, -2 – tón, -3 – sytost, -4 – červená, -5 – zelená, -6 – modrá. pro 24-bitové obrazy navíc 0 – modrá, 1 – zelená, 2 – červená. Funkce vrací hodnotu -1 pokud image nebo image->pData není korektní, jinak 0.
ZODOP
141
lp_PutImageCol na funkci, která kopíruje část jednoho sloupce obrazových dat ze zadaného bufferu do obrazové struktury. Má 5 parametrů: image ukazatel na výslednou obrazovou strukturu IMAGE do které se bude kopírovat, x souřadnice sloupce, y souřadnice začátku kopírování, dn ukazatel na buffer s kopírovanými daty, cb počet kopírovaných pixelů. Pokud je záporný, kopíruje se v opačném pořadí. ch číslo kanálu. Pro 1- aţ 8-bitové obrazy musí být 0, pro 24-bitové 0 – modrá, 1 – zelená, 2 – červená. Funkce vrací hodnotu -1 pokud image nebo image->pData není korektní, jinak 0. lp_GetImageCol ukazatel na funkci, která kopíruje část jednoho sloupce obrazových dat z obrazové struktury do zadaného bufferu. Má 5 parametrů: image ukazatel na zdrojovou obrazovou strukturu IMAGE ze které se bude kopírovat, x souřadnice sloupce, y souřadnice začátku kopírování, dn ukazatel na buffer se získanými daty, cb počet kopírovaných pixelů. Pokud je záporný, kopíruje se v opačném pořadí. ch číslo kanálu. 0 – index, -1 – jas, -2 – tón, -3 – sytost, -4 – červená, -5 – zelená, -6 – modrá. pro 24-bitové obrazy navíc 0 – modrá, 1 – zelená, 2 – červená. Funkce vrací hodnotu -1 pokud image nebo image->pData není korektní, jinak 0. lp_PutImagePixel ukazatel na funkci, která kopíruje hodnotu jednoho pixelu obrazových dat z obrazové struktury do zadaného bufferu. Má 4 parametry: image ukazatel na zdrojovou obrazovou strukturu IMAGE ze které se bude kopírovat, x souřadnice vodorovně, y souřadnice svisle, dn ukazatel na buffer se získanými daty, musí mít 1 aţ 3 bajty podle hloubky obrazu. Funkce vrací hodnotu -1 pokud image nebo image->pData není korektní, jinak 0. lp_GetImagePixel ukazatel na funkci, která kopíruje hodnotu jednoho pixelu obrazových dat ze zadaného bufferu do obrazové struktury. Má 4 parametry: image ukazatel na zdrojovou obrazovou strukturu IMAGE ze které se bude kopírovat, x souřadnice sloupce, y souřadnice začátku kopírování, dn ukazatel na buffer se vstupními daty, musí mít 1 aţ 3 bajty podle hloubky obrazu.
142
ZODOP Funkce vrací hodnotu -1 pokud image nebo image->pData není korektní,
jinak 0. lp_MacroProgress ukazatel na funkci, která při volání zásuvného modulu z makra zobrazí v dialogu makra, jaká část v procentech probíhající operace je hotova. Má 2 parametry: percent kolik procent je hotovo, caption popis probíhající operace. Funkce vrací hodnotu TRUE pokud makro běţí, jinak vrací FALSE. Je určena pro systémové účely. lp_InputBoxValue na funkci, která vytvoří jednoduchý dialog umoţňující zadat jednu číselnou hodnotu (typu double). Má 5 parametrů: stext ukazatel na řetězec, který se objeví nad editačním okénkem s vkládaným údajem, stitle ukazatel na řetězec s titulem dialogu, v implicitní hodnota zadávaného údaje, d hodnota, kterou funkce vrátí, pokud bylo zmáčknuto zrušit dialog, help_call ukazatel na strukturu HELP_CALL, která obsahuje v první poloţce helpfile ukazatel na řetězec se jménem souboru s nápovědou a ve druhé poloţce contextnumber kontextové číslo poloţky, která se má objevit po zmáčknutí tlačítka Nápověda. Pokud je ukazatel na strukturu NULL, tlačítko Nápověda je skryto. Funkce vrací získanou hodnotu. Pokud uţivatel zvolil zrušit dialog, vrací d. lp_InputBoxString na funkci, která vytvoří jednoduchý dialog umoţňující zadat jeden řetězec. Má 4 parametry: stext ukazatel na řetězec, který se objeví nad editačním okénkem s
vkládaným
údajem, stitle ukazatel na řetězec s titulem dialogu, sstr implicitní zadávaný řetězec. Tento i výsledný řetězec můţe mít nejvýše 255 znaků. help_call ukazatel na strukturu HELP_CALL, která obsahuje v první poloţce helpfile ukazatel na řetězec se jménem souboru s nápovědou a ve druhé poloţce contextnumber kontextové číslo poloţky, která se má objevit po zmáčknutí tlačítka Nápověda. Pokud je ukazatel na strukturu NULL, tlačítko Nápověda je skryto. Funkce vrací ukazatel na získaný řetězec. Pokud uţivatel zvolil zrušit dialog, vrací NULL. lp_FileHook ukazatel na hákovou funkci obsluhující případné tlačítko Nápověda. Je určen pro přiřazení do poloţky lpfnHook struktury OPENFILENAME. Má 4 parametry: hwnd handle dialogového okna, msg přijatá zpráva, wparam první parametr zprávy, lparam druhý parametr zprávy; Funkce vrací hodnotu 1 pro zprávy WM_COMMAND pro tlačítko Nápověda a WM_DESTROY, jinak vrací 0.
lp_showtext
ukazatel na funkci, která zobrazí obsah souboru. Má tyto 2 parametry: fname jméno souboru a hWndp ukazatel na třídu okna vlastnícího okno se zobrazovaným souborem. Funkce nevrací hodnotu.
ZODOP
143 ukazatel na funkci, která vrací poţadovanou hodnotu pixelu. Má tyto 3
lp_YHS parametry:
image ukazatel na aktuální obrazovou strukturu IMAGE, x ukazatel na index pixelu v paletě, u obrazů v RGB módu ukazatel na pole 3 sloţek RGB, c kód poţadované hodnoty: 1 vrací jas 2 vrací tón přepočtený do intervalu 0 aţ 255 3 vrací sytost přepočtenou do intervalu 0 aţ 255 4 vrací obsah červené 5 vrací obsah zelené 6 vrací obsah modré jiná hodnota vrací nulu. Způsob výpočtu jasu, tónu a sytosti je moţné nalézt v kapitole Rozdělit na YHS. lp_YHStoRGB
ukazatel na funkci, která přepočítá barvu v souřadnicích YHS do souřadnic RGB. Má tyto 3 parametry: r na vstupu ukazatel na souřadnici Y, na výstupu ukazatel na souřadnici R, g na vstupu ukazatel na souřadnici H, na výstupu ukazatel na souřadnici G, b na vstupu ukazatel na souřadnici S, na výstupu ukazatel na souřadnici B. Funkce nevrací hodnotu. Způsob výpočtu červené, zelené a modré sloţky je moţné nalézt v kapitole Spojit v odstavci YHS.
lp_RGBtoYHS
ukazatel na funkci, která přepočítá barvu v souřadnicích RGB do souřadnic YHS. Má tyto 3 parametry: y na vstupu ukazatel na souřadnici R, na výstupu ukazatel na souřadnici Y, h na vstupu ukazatel na souřadnici G, na výstupu ukazatel na souřadnici H, s na vstupu ukazatel na souřadnici B, na výstupu ukazatel na souřadnici S. Funkce nevrací hodnotu. Způsob výpočtu jasu Y, tónu H a sytosti S je moţné nalézt v kapitole Rozdělit na YHS.
lp_Progress ukazatel na funkci, která ve stavové liště hlavního okna zobrazí příslušný počet procent hotového výsledku. Má tyto 3 parametry: percent celočíselný počet procent hotového výsledku, caption řetězec s popisem funkce, interruptable při TRUE bude volající funkce přerušitelná pomocí klávesy Pause, při FALSE nebude. Při přerušení vrací funkce -1, jinak 0. lp_GetPaperUsefulSize ukazatel na funkci, která při w a h různém od NULL vrací rozměry papíru nastaveného pro tisk v desetinách mm. Pokud je nastavená orientace na výšku, bude h>=w,
144
ZODOP při orientaci na šířku bude w>=h. Při image různém od NULL a xr a yr kladných nastaví velikost obrazu na papíře podle xr a yr a polohu obrazu doprostřed papíru. Pokud je obraz příliš velký, nastaví hustotu na minimum tak, aby se obraz ještě vešel na papír. Má těchto 5 parametrů: w ukazatel na šířku, h ukazatel na výšku, maror ukazatel, na vstupu kód okrajů (0 w a h bez okrajů, 1 včetně levého a horního okraje, 2 včetně pravého a dolního okraje, 3 včetně okrajů), na výstupu orientace (1 na výšku, 2 na šířku), image ukazatel na obraz, xr hustota tisku vodorovně a yr hustota tisku svisle. Funkce nevrací hodnotu.
lp_synterror ukazatel na funkci, která ohlásí syntaktickou chybu při provádění makra. Má tyto 3 parametry: s řetězec s chybovým hlášením, nl číslo řádku v makru, kde došlo k chybě, nc číslo sloupce v makru, kde došlo k chybě, Funkce nevrací hodnotu. lp_strcmpsi ukazatel na funkci, která porovná dva řetězce bez ohledu na velikost písmen a bez ohledu na háčky, čárky a krouţky. Má tyto 2 parametry: a první řetězec b druhý řetězec Funkce vrací 0, pokud po převedení obou řetězců na velká písmena bez znamének jsou stejné, -1, pokud je ab. lp_UpdateStatusBar ukazatel na funkci, která překreslí stavovou lištu hlavního okna. Má 1 parametr: index 0 – překreslí se celá lišta, 1 aţ 4 – překreslí se pouze jedno pole (1 paleta, 2 rozměry, 3 souřadnice, 4 komentář). Funkce nevrací hodnotu. lp_ImageRefresh ukazatel na funkci, která překreslí obrazové okno. Má 2 parametry: hWnd drţadlo okna, bErase při TRUE, bude před překreslením smazáno, FALSE nebude. Funkce nevrací hodnotu. lp_ModelessDlgPosition ukazatel na funkci, která nastaví novou pozici bezmodelového dialogu. Má 3 parametry: rc0 struktura RECT se stávající polohou okna, x nová poloha okna vodorovně, y nová poloha okna svisle. Funkce nevrací hodnotu. Je určena pro systémové účely.
ZODOP
145
lp_DllDlgListAddTail ukazatel na funkci, která přidá prvek do seznamu dialogů otevřených v zásuvných modulech. Má 1 parametr: NewElement ukazatel na strukturu s údaji o novém dialogu. Funkce vrací ukazatel na pozici nového prvku v seznamu. Je určena pro systémové účely. lp_DllDlgListRemoveAt ukazatel na funkci, která odstraní prvek ze seznamu dialogů otevřených v zásuvných modulech. Má 1 parametr: position ukazatel na pozici odstraňovaného prvku (zavíraného dialogu) v seznamu. Funkce nevrací hodnotu. Je určena pro systémové účely. lp_GetFirstImagePosition ukazatel na funkci, která vrací ukazatel na první prvek v seznamu otevřených obrazových oken. Nemá parametry. lp_GetNextImagePosition ukazatel na funkci, která nalezne další obraz v seznamu. Má 1 parametr: pos adresa ukazatele na pozici aktuálního obrazového okna v seznamu otevřených obrazových oken. Funkce vrací ukazatel na strukturu IMAGE nalezeného obrazu. Chcete-li prozkoumat všechny otevřené obrazy, najděte napřed hodnotu ukazatele na první obraz funkcí lp_GetFirstImagePosition a ten pak pouţijte jako parametr této funkce volané v cyklu za podmínky, ţe obsah pos je různý od NULL. lp_GetScale ukazatel na funkci, která vrací měřítko obrazu (typu float). Má 1 parametr: hWnd drţadlo obrazu. lp_SetScale ukazatel na funkci, která nastavuje měřítko obrazu. Má 4 parametry: hWnd drţadlo obrazu. scale nové měřítko. xpt vodorovná souřadnice bodu, který by se měl pokud moţno zachovat. ypt svislá souřadnice bodu, který by se měl pokud moţno zachovat. Pokud na poloze skrolbaru po změně měřítka nezáleţí, zadejte xpt a ypt nulové. lp_GetScrollPosition ukazatel na funkci, která získá souřadnice skrol-pozice obrazového okna. Má 1 parametr: hWnd drţadlo obrazu. Funkce vrací souřadnice ve struktuře typu POINT.
lp_ScrollToPosition parametry:
ukazatel na funkci, která nastaví skrol-pozici obrazového okna. Má 2
hWnd drţadlo obrazu, Pt struktura typu POINT se souřadnicemi nové skrol-pozice. Funkce nevrací hodnotu.
146
ZODOP
lp_ReleaseFloatingToolbar ukazatel na funkci, která zruší funkci zvolenou na plovoucí nástrojové liště. Nemá parametry a nevrací hodnotu. Je určena pro systémové účely. lp_GetImageFromHwnd ukazatel na funkci, která vrací ukazatel na strukturu IMAGE obrazu daného jeho drţadlem. Má 1 parametr: hWnd drţadlo obrazu. lp_GetHwndFromImage ukazatel na funkci, která vrací drţadlo obrazu daného ukazatelem na jeho strukturu IMAGE. Má 1 parametr: image ukazatel na strukturu IMAGE otevřeného obrazového okna. lp_GetImageOrder ukazatel na funkci, která vrací pořadí otevřeného obrazu mezi obrazy se stejným jménem. Hodnota 0 znamená, ţe jiný obraz se stejným jménem není otevřen. Má 1 parametr: hWnd drţadlo obrazu. lp_GetImageFromLabel ukazatel na funkci, která vrací drţadlo obrazu s danou značkou. Má 1 parametr: label celočíselná značka obrazu. lp_SetImageLabel ukazatel na funkci, která obrazu přiřadí značku. hWnd drţadlo obrazu. label nezáporná celočíselná značka obrazu. Funkce vrací 0, pokud byl obraz s daným drţadlem nalezen a značka je platná, jinak vrací 2. Značky jsou určeny především pro práci s makry. lp_CreateExtra ukazatel na funkci, která v obrazové struktuře IMAGE vyhradí část paměti o velikosti size bajtů pro informace týkající se zásuvného modulu. Má 3 parametry: image ukazatel na strukturu IMAGE, size velikost bloku paměti v bajtech, id identifikační číslo zásuvného modulu. Funkce vrací ukazatel na získanou paměť. lp_FindExtra ukazatel na funkci, která vrací ukazatel na blok paměti vyhrazený ve struktuře IMAGE pro daný zásuvný modul. Pokud zásuvný modul vyhradil více bloků, vrací ukazatel na první z nich, pokud nevyhradil ţádný, vrací NULL. Má 2 parametry: image ukazatel na strukturu IMAGE, id identifikační číslo zásuvného modulu. lp_TestEmptySel ukazatel na funkci, která nastaví obdélník v obrazu jako obdélník opsaný aktuální vybrané oblasti. Pokud je vybraná oblast prázdná, nastaví obdélník přes celý obraz. V tom případě vrací TRUE, jinak FALSE. Má 1 parametr: image ukazatel na strukturu IMAGE,
ZODOP
147
lp_lp_FileOpen ukazatel na funkci, která zobrazí dialog pro volbu souboru a z vybraného souboru pak otevře obraz. Nemá parametry. Při selhání vrací funkce -1, jinak 0. lp_FileSaveAs ukazatel na funkci, která zobrazí dialog pro volbu souboru a do vybraného souboru pak uloţí zdrojový obraz. Nemá parametry. Při selhání vrací funkce -1, jinak 0. lp_lp_FileOpenByName ukazatel na funkci, která otevře obraz z daného souboru. Má 3 parametry: fspec jméno souboru včetně cesty, fi formát souboru se určuje podle koncovky. Pokud máte více zásuvných modulů pro čtení stejného formátu, můţete zadáním jiné hodnoty neţ nuly určit zásuvný modul, který bude pouţit. flags hodota 2 potlačí chybová hlášení (pokud pouţitý zásunvý modul tuto funkci podporuje), hodnota 0 znamená standardní čtení. V případě úspěchu vrací ukazatel na otevřený obraz, jinak NULL. lp_FileSaveByName ukazatel na funkci, která uloţí obraz do souboru pod daným jménem. Má 4 parametry: image ukazatel na strukturu IMAGE, fspec jméno souboru včetně cesty, fi formát souboru se určuje podle koncovky. Pokud máte více zásuvných modulů pro zápis stejného formátu, můţete zadáním jiné hodnoty neţ nuly určit zásuvný modul, který bude pouţit. flags hodota 2 potlačí chybová hlášení (pokud pouţitý zásunvý modul tuto funkci podporuje), hodnota 0 znamená standardní čtení. Při selhání vrací funkce -1, jinak 0. lp_FileDestroy ukazatel na funkci, která zavře zdrojový obraz. Nemá parametry. Při selhání vrací funkce -1, jinak 0. lp_CountSameNames ukazatel na funkci, která obnoví jména obrazů v seznamu otevřených obrazů v menu. Má 2 parametry: hWnd drţadlo okna, u kterého nastala změna Append tento parametr říká, co se s oknem děje 0: okno bude zavřeno 1: okno bylo právě otevřeno nebo obraz v okně změnil název 2: obraz v okně si vyměnil název s obrazem v jiném okně lp_GetMultilayerRectangle ukazatel na funkci, která zpřístupňuje některé charakteristiky obrazového okna. Má 3 parametry: hWnd drţadlo okna, u kterého nastala změna rcflag ukazatel na vlajky s tímto významem 0: standardní obrazové okno s jedním obrazem 1: okno s vícevrstvým obrazem 3: okno s vícevrstvým obrazem a s obdélníkovou vybranou oblastí rc ukazatel na strukturu FLOATRECT se souřadnicemi vybraného obdélníka.
148
ZODOP
lp_SetMultilayerRectangle ukazatel na funkci, která umoţňuje nastavit některé charakteristiky obrazového okna. Má 3 parametry: hWnd drţadlo okna, u kterého nastala změna rcflag nové hodnoty vlajek s tímto významem 0: standardní obrazové okno s jedním obrazem 1: okno s vícevrstvým obrazem 3: okno s vícevrstvým obrazem a s obdélníkovou vybranou oblastí rc ukazatel na strukturu FLOATRECT s novými souřadnicemi vybraného obdélníka. lp_ReadCoords ukazatel na funkci, která umoţňuje práci s dodatečnými souřadnicemi v obrazu v poloţce pCoords obrazové struktury IMAGE. Má parametry: image ukazatel na strukturu IMAGE, PreserveCurrent kód poţadované činnosti: 0: z příslušného tfw souboru budou přečteny nové souřadnice, i kdyţ v obrazu jiţ existují staré 1: z příslušného tfw souboru budou přečteny nové souřadnice, pouze pokud v obrazu dosud ţádné neexistují 2: pokud v obrazu dosud ţádné neexistují, bude pro ně alokována paměť. lp_DataExtent ukazatel na funkci, která určí rozsah dat obrazu v pixelech při daném měřítku. Má 4 parametry: image ukazatel na strukturu IMAGE, scale měřítko, wr sem bude uloţen rozsah dat vodorovně, hr sem bude uloţen rozsah dat svisle. lp_CoordExtent ukazatel na funkci, která určí rozsah souřadnic obrazu. Pokud jsou v něm definované dodatečné souřadnice, pouţijí se pro výpočet, jinak je výsledek v pixelech. Má 9 parametrů: image ukazatel na strukturu IMAGE, xmin minimální souřadnice vodorovně, xmax maximální souřadnice vodorovně, ymin minimální souřadnice svisle, ymax maximální souřadnice svisle, w rozsah dat vodorovně (xmax - xmin), h rozsah dat svisle (ymax - ymin), jmin minimální rozlišení, jmax maximální rozlišení. Údaj o rozlišení má smysl pouze u rastrového obrazu s dodatečnými souřadnicemi, jinak je 1. Minimální a maximální rozlišení se můţe lišit pouze u vícevrstvého obrazu. lp_CoordOneImageExtent ukazatel na funkci, která určí rozsah souřadnic obrazu. Na rozdíl lp_CoordExtent pracuje pouze s jednou vrstvou vícevrstvého obrazu. Pokud jsou v něm definované dodatečné souřadnice, pouţijí se pro výpočet, jinak je výsledek v pixelech. Má 8 parametrů:
ZODOP
149 image ukazatel na strukturu IMAGE, xmin minimální souřadnice vodorovně, xmax maximální souřadnice vodorovně, ymin minimální souřadnice svisle, ymax maximální souřadnice svisle, w rozsah dat vodorovně (xmax - xmin), h rozsah dat svisle (ymax - ymin), j rozlišení.
Údaj o rozlišení má smysl pouze u rastrového obrazu s dodatečnými souřadnicemi, jinak je 1.
lp_fill
ukazatel na proměnnou. Pokud bude nastavena na TRUE, budou se obrazová okna před překreslením (občerstvením) mazat. Implicitně je FALSE.
lp_BackgroundIndex ukazatel na aktuální barvu. V prvním bajtu je index barvy pro obrazy v indexových barvách a pro černobílé a v dalších 3 bajtech je postupně modrá, zelená a červená sloţka barvy pro obrazy v RGB modu. lp_sort_colors ukazatel na 3-bajtové pole se třemi kriterii pro třídění barev tak, jak byla zvolena v dialogu pro změnu palety. Pokud jsou 2 barvy stejné podle jednoho kriteria, pouţije se další. Význam hodnot: 0 ţádné, 1 jas, 2 tón, 3 sytost, 4 červená, 5 zelená, 6 modrá. lp_helppath
ukazatel na řetězec se jménem souboru s nápovědou hlavního programu,
lp_wSImage_hWnd drţadlo zdrojového obrazového okna. Zásuvný modul by měl data z tohoto okna pouţívat jako vstupní, pokud potřebuje vstupní obrazová data. lp_wDImage_hWnd drţadlo druhého obrazového okna. Zásuvný modul by měl data z tohoto okna pouţívat jako druhá vstupní, pokud potřebuje vstupní obrazová data ze dvou obrazů. pFrameWin_hWnd
drţadlo hlavního okna hlavního programu.
hInstance drţadlo (handle) instance hlavního programu. Pro bezpečné pouţití je lépe, kdyţ si zásuvný modul tuto hodnotu uloţí do vlastní proměnné. lp_macroruns ukazatel na indikátor, ţe běţí makro. lp_wSDlg
ukazatel na drţadlo posledního dialogu.
i
číslo zásuvného modulu, které mu přidělil hlavní program. Tato hodnota je platná pouze v okamţiku volání a zásuvný modul by si jí měl uloţit do vlastní proměnné. Je důleţitá např. pro vytvoření vlastního dialogu.
lp_dlld
pole struktur TAG_DLLD, ve kterých si hlavní program schovává informace o zásuvných modulech. Tyto struktury obsahují řetězec plugin_names se jménem souboru zásuvného modulu, drţadlo instance hinstlib získaný pomocí funkce LoadLibrary při volání zásuvného modulu, počet nmodelessdlg právě otevřených bezmodelových dialogů a hodnotu příznaku unfreeable.
npi lp_dllf
počet nalezených zásuvných modulů. pole struktur TAG_DLLF, ve kterých si hlavní program schovává informace o formátových filtrech. Tyto struktury obsahují řetězec plugin_filter s filtrem, ip číslo zásuvného modulu s tímto filtrem, ns počet přípon ve filtru, ac kód zajišťovaných funkcí,
150
ZODOP fn pořadí filtru v zásuvném modulu, st druh dotazu při tvorbě seznamu filtrů pro Uloţit jako, sa odpověď zásuvného modulu na tento dotaz.
nfi
počet nalezených filtrů.
actioncode
kód činnosti, která je po zásuvném modulu vyţadována. Můţe být: -1 Volání z makra 0 Volání z menu 1 Otevřít 2 Otevřít jako 3 Uloţit jako 4 Uloţit 5 Přečíst samotnou paletu 6 Dotaz, jakou příponu si zásuvný modul přeje pro daný obraz, 7 Dotaz, zda daný filtr má být pro daný obraz zařazen do seznamu. 8 Obnovit z disku 9 Částečně obnovit z disku
filternumber pořadí zvoleného filtru v zásuvném modulu počínaje nulou - index, pod kterým byl uveden v inicializační funkci. Při volání výkonného modulu z makra pořadí posledního argumentu. fspec
jméno souboru, se kterým má formátový zásuvný modul pracovat. Při volání výkonného modulu z makra řetězec s argumentem.
image
ukazatel na obrazovou strukturu zdrojového obrazu, se kterou má zásuvný modul pracovat.
dimage
ukazatel na obrazovou strukturu druhého obrazu.
revertrect ukazatel na strukturu RECT se souřadnicemi obdélníka, v němţ je třeba obnovit data při částečném obnovení z disku, při jiných činnostech je ignorován. j pořadí argumentu makra nl číslo řádku v makru nc číslo sloupce v makru strfl příznak řetězcového argumentu (1=řetězec, 0=jiný). Poznámky: Aby mohla vstupní strukturu vyuţívat téţ obsluţná procedura dialogu, je vhodné ukazatel na strukturu uloţit do globální proměnné, např. lpm. Toto budeme předpokládat i v dalších příkladech.
73.3 Výkonná funkce a formátové zásuvné moduly Poloţky image a revertrect mají význam pouze pro formátové zásuvné moduly, výkonné by je měly ignorovat. Při čtení obrazu (kód činnosti 1, 2 a 8) je v poloţce image NULL a zásuvný modul v ní vrací ukazatel na obrazovou strukturu, kterou vytvořil (lp_CreateImage) a naplnil daty ze souboru. Při uţivatelském zrušení operace lze v image vrátit 1. Při zápisu (kód činnosti 3 a 4) je v poloţce image ukládaný obraz. Při čtení palety (kód činnosti 5) je v poloţce image obraz, do kterého zásuvný modul zapisuje čtenou paletu. Kód činnosti 6 znamená, ţe v poloţce fspec je ukazatel na proměnnou typu char, do které má zásuvný modul dát pořadí (1 aţ 127) přípony ve filtru, kterou chce pro obraz v poloţce image pouţít. U zásuvných modulů, které pouţívají pouze 1 příponu pro kaţdý formát, nemůţe tento kód činnosti nastat. Podobně při kódu činnosti 7, pokud v inicializační funkci byla do poloţky pos pro daný filtr uloţena hodnota DLLIM_LIST_TEST, má zásuvný modul vrátit v fspec 1, pokud si pro daný obraz nepřeje zařadit daný filtr do seznamu filtrů v dialogu Uloţit jako, např. proto, ţe daný typ obrazu neumoţňuje zapsat a 0, pokud si přeje. Hodnota DLLIM_SAVE_TEST znamená, ţe obraz nebude při vrácené hodnotě 1 zapsán, ani kdyţ uţivatel vypíše v dialogu příslušnou příponu ručně. Při hodnotě DLLIM_NO_TEST nemůţe tento kód činnosti nastat. Při částečném
ZODOP
151
obnovení z disku (kód činnosti 9) je v poloţce image obraz, do něhoţ má modul zapsat obrazová data přečtená ze souboru, a to na souřadnice v obdélníku v revertrect včetně levého a horního okraje a vyjma pravého a dolního okraje. Poloţka filternumber umoţňuje identifikovat poţadovaný formát v případech, kdy zásuvný modul pracuje s více formáty, tedy i s více filtry. Pokud si zásuvný modul potřebuje při čtení obrazu zapamatovat nějaké údaje o něm, která potřebuje např. pro zápis nebo obnovení, můţe je uloţit do struktury, alokovat pro ni paměť funkcí malloc nebo calloc a ukazatel na ni uloţit do poloţky Extra struktury IMAGE vytvořeného obrazu. Vytvořená struktura musí jako první poloţku obsahovat svoji délku v bajtech uloţenou jako int. Příslušný počet bajtů je pak chráněn při kopírování obrazu funkcí lp_DuplicateImage.
73.4 Přístup k obrazovým datům Při standardním zpracování se vyskytují dvě základní moţnosti, jak zobrazit zpracovaná data. Zásuvný modul je můţe zobrazit buď do nového obrazového okna nebo do zdrojového okna odkud získal vstupní data. V prvním případě můţe být postup následující: IMAGE *image; image=(*lpm->lp_ImageNew)(w,h); // vytvoření nové obrazové struktury ... /* vyplnění obrazových dat v image->hData */ ... (*lpm->lp_FileNew)(image); // vytvoření nového obrazového okna V druhém případě je standardní postup tento: IMAGE *image; ImageWin *wHImage; wHImage=(*lpm->lp_wSImage); image = (*lpm->lp_DuplicateImage)(wHImage->Image);/* struktury zdrojového obrazu */
vytvoření
kopie
(*lpm->lp_CopyImageData)(wHImage->Image,image); /* kopírování dat ze obrazu */
obrazové zdrojového
... /* vyplnění obrazových dat v image->hData */ ... (*lpm->lp_SetUndoImage)(wHImage,image); /* přiřazení nových dat zdrojovému obrazu a nastavení funkce zpět */ Funkce CreateImage a DestroyImage je moţné pouţít pro vytvoření a zničení dočasné obrazové struktury. V obrazové struktuře IMAGE (definované v „kernel.h“) jsou 2 palety Pal a LUT. Pal se pouţívá pro mapování do palety Windows, LUT pro kreslení obrazu. Je proto vhodné změny palety provádět napřed v LUT a nakonec je zkopírovat do Pal. V této obrazové struktuře je také poloţka flags, jejíţ bit č. 1 říká, zda při uzavření obrazového okna bude dotaz na uloţení snímku. Nastavení image->flags |= 2; znamená, ţe je. Nastavení image>flags &= ~2; znamená, ţe není. Funkce PutImageRow, GetImageRow, PutImageCol a GetImageCol umoţňují přístup k obrazovým datům, kromě toho je moţný přímý přístup k datům. Data jsou uloţena po řádcích odspodu (!) s mezerami, image->hres je délka řádku, image->scansize je vzdálenost řádků.
73.5 Funkce pro vytvoření dialogu Jako vlastníka dialogu (1. parametr funkce PluginDialog) je vhodné pouţít lpm->pFrameWin nebo ukazatel na třídu jiného dialogu přetypovaný na Window*, pokud chcete vytvářet synovské dialogy hlavního dialogu. Jako 7. parametr je potřeba pouţít adresu globální proměnné typu ukazatel na třídu Plugindlg, např.
152
ZODOP
Plugindlg *dialog; a jako parametr pak pouţít &dialog. Lze pak vyuţít některé poloţky ze tříd, které Plugindlg dědí, tzn. Dialog a WinBase, např. nastavení dialog->wantmouse=k; způsobí, ţe dialogové okno bude dostávat zprávy WM_USER+k o poloze kurzoru ve zdrojovém okně přepočtené s ohledem na měřítko zobrazení a to při pohybu myši nebo při zmáčknutí tlačítka myši. Ve wparam budou příznaky zmáčknutých tlačítek myši a kláves Ctrl a Shift (viz nápovědu ke zprávě WM_MOUSEMOVE) a v lparam bude ukazatel na strukturu MOUSEMESSAGE s poloţkou wMsg, kde bude číslo původní zprávy a s poloţkou pt, kde budou obrazové souřadnice kurzoru. Nastavení dialog->wantclosemessage=c; způsobí, ţe dialogové okno bude dostávat zprávy WM_USER+c o uzavření zdrojového okna. Ve wparam bude číslo zavíraného okna (index v poli wImage) a v lparam bude ukazatel na třídu zavíraného okna. Ukazatel lp_fill nelze nastavit na FALSE ihned po volání občerstvení obrazu, je nutno počkat, aţ občerstvení skončí, např. takto: lpm->lp_refreshing = TRUE; lpm->lp_fill = TRUE; (*lpm->lp_wSImage)->Refresh(NULL); while(lpm->lp_refreshing)kbhit; lpm->lp_fill = FALSE;
//občerstvení obrazu //čekání na konec občerstvení
Dialog pro otevření souboru, který bude mít povolenu nápovědu, násobnou volbu souborů a uţivatelsky dané rozměry můţe být vytvořen např. takto: //Proměnná s číslem naposled zvoleného filtru char fspecall[MAXPATH+MAXSOUB*13]; //Získané jméno souboru char *helppath=”helpfile.hlp”; //Soubor s nápovědou BOOL selection; //Výsledek dialogu OPENFILENAME ofn; //Struktura s parametry dialogu HOOKDATA HookData; //Struktura s proměnnými hákové funkce //(deklarace v „iwf.h“) char szFilters[ ] = “Vše\0*.* \0” //Filtry “Speciální soubor\0*.spc\0”; static int nFilterIndexp=1;
strcpy(fspecall,””);
//Inicializace jména souboru
HookData.nFilterIndex=&nFilterIndex; HookData.helppath=helppath; HookData.helpcontext=500;
//Adresa proměnné s číslem filtru //Jméno souboru s nápovědou //Kontextové číslo hesla nápovědy
memset(&ofn,0,sizeof(OPENFILENAME));
//Nulování struktury
ofn.lStructSize ofn.hwndOwner ofn.lpstrFilter ofn.nFilterIndex ofn.lpstrFile ofn.nMaxFile ofn.lpstrTitle ofn.lCustData ofn.lpfnHook ofn.hInstance ofn.Flags
= sizeof(OPENFILENAME); = lpm->pFrameWin->Handle(); = (LPSTR)szFilters; = nFilterIndex; = (LPSTR)fspecall; = MAXPATH+MAXSOUB*13; = “Otevřít soubor“; = (LPARAM)(&HookData); //Adresa proměnných //hákové funkce = lpm->lp_FileHook; //Adresa hákové funkce = (*lpm->lp_SetHeightOpenDlg)(5,0,10,TRUE); =OFN_ENABLETEMPLATEHANDLE | OFN_ENABLEHOOK | OFN_SHOWHELP |
ZODOP
153 OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT;
selection = GetOpenFileName(&ofn);
//Vytvoření dialogu
73.6 Přerušitelnost operací V souboru “iwf.h” jsou 3 makra pro testování klávesnice během dlouho trvajících operací. Makro TestEscape(a,b) testuje klávesnici a pokud bylo zmáčknuto Pause zeptá se, zda má být operace předčasně ukončena. Pokud ano nebo pokud je dialog ukončen, skočí na návěští b. Na tomto návěští by měly být příkazy uvolňující paměť, uzavírající otevřené soubory apod. Parametr a je ukazatel na třídu příslušného dialogu. Podobného efektu lze dosáhnout také voláním funkce na zobrazení kolik procent je hotovo (lp_Progress) s parametrem interruptable nastaveným na TRUE. Zásuvný modul pak musí testovat vrácenou hodnotu a při -1 správně ukončit činnost. Makro SetEscape(a,c)testuje, zda v dialogu uţ byla spuštěna nějaká operace s testem klávesnice. Pokud ano, provede návrat z funkce s hodnotou c. Mělo by být umístěno na začátku operace před alokování paměti, otevírání souborů a podobné činnosti. Parametr a je ukazatel na třídu příslušného dialogu. Makro ResetEscape(a)umoţňuje spuštění další operace s testem klávesnice. Mělo by být umístěno před konec operace. Parametr a je ukazatel na třídu příslušného dialogu. Pokud chcete připustit spuštění více operací v dialogu najednou, pouţijte pouze makro TestEscape, bez nastavování a ukončování přerušitelné operace. Je vhodné zajistit, aby pokud se výsledek zobrazuje ve starém okně, se zobrazil do stejného okna, odkud byla vzata data. Také je třeba ošetřit případ, kdy uţivatel zavře zdrojové obrazové okno uprostřed operace, coţ při pouţití makra TestEscape je moţné.
73.7 Volání zásuvných modulů z makra Formátový zásuvný modul můţe být z makra volán pouze nepřímo, jako důsledek volání funkcí pro práci se soubory. Jeho činnost se pak neliší od činnosti při volání příslušné funkce z menu. Pokud si přejete, aby bylo moţno volat přímo funkcí z makra výkonný zásuvný modul bez parametrů, které by musel zjišťovat dialogem, stačí do poloţky macrofunction inicializační struktury zadat jméno příslušné funkce. Nejlépe ho získáme vynecháním jiných znaků neţ písmen z řetězce pro volání modulu z menu. Jména funkcí se však rozlišují bez ohledu na velikost písmen a interpunkci, proto se pouţité jméno funkce musí lišit od všech ostatních jinak, neţ jen tímto způsobem. Pokud by tomu tak nebylo, bylo by nutné zvolit jiné jméno funkce, jinak by program funkci nenašel. Existuje také limit délky jména funkce, v současné době to je 29 znaků. Pokud v poloţce macrofunction ponecháte implicitní prázdný řetězec, modul z makra volatelný nebude. Pokud modul potřebuje ke své činnosti nějaké parametry, které normálně zjišťuje dialogem, je nutno navíc zajistit, aby makro v dialogu neuvízlo, nejlépe tak, ţe ho vůbec nevytvoří, parametry budou zadány jako argumenty příkazu v makru a modul je zpracuje zvlášť. V tom případě program natáhne zásuvný modul do paměti, volá výkonnou funkci opakovaně pro kaţdý skutečně zadaný argument zvlášť a uvolní ho z paměti aţ po zpracování posledního argumentu. Je proto moţné zapamatovat si hodnoty argumentů ve statických proměnných. Za zpracování je tedy odpovědná výkonná funkce zásuvného modulu a ta také určuje počet a typ jednotlivých argumentů. Jako příklad typického zpracování volání z makra lze uvést, jak by se zpracovávalo volání funkce pro převod obrazu z RGB do indexových barev, kdyby byla zajišťována zásuvným modulem: #define CHANNELS TAG_DLLP FAR * lpm; int id; Plugindlg *dialog; ImageWin *wHImage;
201 //ukazatel na vstupní strukturu //identifikační číslo zásuvného modulu //ukazatel na třídu dialogu //ukazatel na třídu obrazu
int _far _pascal _export PROWIPLUGINENTRY (TAG_DLLP FAR * tag_dll)
154
ZODOP
{ char *rd=(char *)MAKEINTRESOURCE(CHANNELS); int ier=0; lpm=tag_dll; //úschova ukazatele na vstupní strukturu id=lpm->i; //úschova identifikačního čísla zásuvného modulu if(lpm->actioncode==0) //volání z menu (*lpm->lp_PluginDialog)(lpm->pFrameWin,rd, Initialize,Terminate,WndProc,id,&dialog,TRUE,FALSE); // vytvoření bezmodelového dialogu při volání z menu else if(lpm->actioncode==-1) //volání z makra ier=ProcessChindex(); //zpracování argumentů při volání z makra return ier; //funkce vrací chybový kód } Funkce ProcessChindex na zpracování volání z makra vypadá následovně: int ProcessChindex() { char *par;int j,nr,nl,nc,strfl; //parametry argumentu static int typ_palet=0,pb=256,input_levels=6,isd=0; //statické proměnné //pro zapamatování parametrů nastavené na implicitní hodnoty static char name_pal[MAXPATH]; //implicitní hodnota není, argument je povinný char *endptr; char retfl=0; //návratová hodnota, implicitně bez chyby int minh,minv; IMAGE *image=NULL; char sz[80]; nr par j nl nc strfl 0=jiný).
=lpm->filternumber;//pořadí posledního argumentu =lpm->fspec; //řetězec s argumentem =lpm->j; //pořadí argumentu =lpm->nl; //číslo řádku v makru =lpm->nc; //číslo sloupce v makru =lpm->strfl; //příznak řetězcového argumentu
(1=řetězec,
switch(j) { case 0: break; //nebyl zadán žádný argument case 1: //1. argument, název radiotlačítka s typem palety SetDlgItemText(lpm->macrodlg->hWnd,103,par); //argument použije jako jméno podfunkce if(lpm->lp_strcmpsi(par,MACRO_SYSTEM)==0)typ_palet=0; else if(lpm->lp_strcmpsi(par,MACRO_ADAPTIVE)==0)typ_palet=1; else if(lpm->lp_strcmpsi(par,MACRO_CUSTOM)==0)typ_palet=2; else {lpm->lp_synterror(MACRO_WRONG_BUTTON,nl,nc);return //při chybě se vrací 2 break;
se
2;}
case 2: //2. argument if(typ_palet==1) //pokud je paleta adaptivní, je druhý argument počet barev { pb=(int)strtol(par,&endptr,10); //převod z řetězce na celé číslo if(endptr[0]) {lpm->lp_synterror (MACRO_NONFIGURES_IN_NUMBER, nl, nc); return 2;} } else {
//jinak je argument považován za jméno souboru s paletou
ZODOP
155 strcpy(name_pal,par); }
break; case 3: //3. argument, vyhledávání v komboboxu se provádí zvláštní funkcí input_levels=SearchStringChindex(par,&retfl,nl,nc,strfl); break; case 4: //4. argument, řetězec s polohou potvrzovacího tlačítka if(lpm->lp_strcmpsi(par,MACRO_DITHERING)==0)isd=1; else if(lpm->lp_strcmpsi(par,MACRO_NODITHERING)==0)isd=0; else {lpm->lp_synterror(MACRO_WRONG_BUTTON,nl,nc);return 2;} break; //pořadí argumentu je vždy nezáporné, //toto může nastat jen když bylo zadáno příliš mnoho argumentů lpm->lp_synterror(MACRO_TOO_MANY_PARAMS,nl,nc);return 2;
default:
} if(j==nr)
//argument je poslední, je třeba provést žádanou operaci
{ wHImage=(*lpm->lp_wSImage); if(!wHImage || !wHImage->Image) //není otevřen žádný obraz { MessageBox(lpm->pFrameWin->hWnd,IWF_NO_IMAGE,IWF_ERROR,MB_OK MB_ICONEXCLAMATION);
|
return 2; } if(wHImage->Image->depth!=24) //obraz už je v indexových barvách { sprintf(sz,CHINDEX_INDEX_YET,wHImage->Image->fspec); MessageBox(lpm->pFrameWin->hWnd,sz,IWF_ERROR,MB_OK | MB_ICONEXCLAMATION); return 2; } else //vše v pořádku { minh=wHImage->Image->hres; minv=wHImage->Image->vres; image=(* lpm->lp_CreateImage)(minh,minv);//vytvoření nové obrazové struktury if(!image)return 2; //obraz nelze duplikovat, protože má jiný počet bitů na pixel //je nutno zkopírovat důležité údaje strcpy(image->fspec,wHImage->Image->fspec); strcpy(image->comment,wHImage->Image->comment); image->gamma=wHImage->Image->gamma; image->flags=wHImage->Image->flags; image->format=wHImage->Image->format; CopyRect(&image->rc,&wHImage->Image->rc); if(typ_palet==2) retfl=CustomPalette(name_pal,image); //převod do uživatelské palety else if(typ_palet==1) { retfl=to_indexed (wHImage->Image, image, wHImage->hAlfa, pb, isd, input_levels, NULL);//převod do adaptivní palety } else if(typ_palet==0) SystemPalette(image); //převod do systémové palety else
156
ZODOP if(!retfl)
lpm->lp_SetUndoImage(wHImage,image); //nastavení možnosti vrátit zpět PostMessage (lpm->pStatusWin->hWnd, WM_USER, 0,0); //Překreslení stavové lišty } } return 2*(int)retfl;
//vrací se 2 při chybě, 0 bez chyby
} Funkce CustomPalette, AdaptPalette, to_indexed a SystemPalette provádějí vlastní převod do indexových barev, při volání modulu z menu jsou volány ve funkci WndProc pro obsluhu dialogu. Jsou příliš rozsáhlé a pro pochopení obsluhy volání modulu z makra nepodstatné, proto zde nejsou uvedeny. Dodávané zásuvné moduly dodrţují konvenci, ţe pokud uţivatel přeruší operaci, vracejí 1, při jiné chybě vracejí 2 a při bezchybném dokončení operace vracejí 0. Program provádějící makra to však v současné době nerozlišuje, při 0 pokračuje v činnosti, při jakékoli nenulové hodnotě předčasně ukončí makro. Znakové řetězce jsou definovány jako céčkovská makra a je moţné si je prohlédnout v souboru “iwf_str.h”. Typická funkce pro hledání v komboboxu: //céčkovské makro s obsahem komboboxu, //stejné je pouţito pro inicializaci komboboxu v dialogu #define COMBOBOXTABLECHINDEX char *typ_res[] = {“8“, /*3*/\ „16“, /*4*/\ „32“, /*5*/\ „64“, /*6*/\ „128“,/*7*/\ „256“/*8*/\ } int SearchStringChindex(char *str,char *ier,int nl,int nc,int strfl) //funkce pro vyhledávání hodnoty parametru v komboboxu { char *endptr; int i; int pocet_fil; COMBOBOXTABLECHINDEX; //céčkovské makro s obsahem komboboxu *ier=0; pocet_fil=sizeof ( typ_res) / sizeof (*typ_res); if(strfl) //argument je řetězcový, hledá se řetězec { for (i=0;i<pocet_fil && lpm->lp_strcmpsi(str,typ_res[i]);i++); if(i==pocet_fil)i=-1; //řetězec nenalezen else i+=3; //řádky jsou očíslovány počínaje 3 (podle příslušné mocniny dvou) } else //argument je číslo řádku { i=(int)strtol(str,&endptr,10); if(endptr[0]) { lpm->lp_synterror(MACRO_NONFIGURES_IN_NUMBER,nl,nc); *ier=1; } } if(i<3 || i>=pocet_fil+3) //číslo řádku je mimo rozsah
ZODOP
return i; }
157 { lpm->lp_synterror(MACRO_WRONG_COMBOBOX_ITEM,nl,nc); *ier=1; } //vrací se číslo řádku
Součástí návodu jsou i zdrojové texty dvou zásuvných modulů, „Zkušební obrázek“ (soubor “pokusob.cpp”) a „Jas a kontrast“ (soubor “const.cpp”). Hlavičkové soubory “iwf.h”, “w32_wndw.h”, “kernel.h” a “winx.h” by měly být chápány jako pouze pro čtení. Hlavní program a zásuvné moduly musí být přeloţeny se stejnými verzemi těchto souborů. Zejména je nepřípustné měnit počet a délku jednotlivých poloţek ve třídách a strukturách bez nového překladu hlavního programu. Naopak do souboru “iwf_str.h” je moţné přidávat vlastní jazykově závislé řetězce. V případě, ţe při ladění program spadne uprostřed zásuvného modulu, zůstane tento v paměti a není moţno sestavit novou verzi zásuvného modulu. V tom případě spusťte program znovu a aniţ by jste spouštěli jakoukoli operaci, zase ho zavřete. Program při spouštění uvolňuje z paměti všechny staré verze zásuvných modulů a po této akci je moţné sestavit nové verze zásuvných modulů. Mnoho štěstí při tvorbě vlastních zásuvných modulů.
158
ZODOP
74. Dodatek A: Chybové kódy Při volání vnějšího editoru nebo při volání dialogu pro získání jména souboru, barvy nebo tisku se mohou v chybovém hlášení objevit určité chybové kódy. Zde je jejich význam:
74.1 Chybové kódy při spouštění vnějšího procesu 0 2 3 5 6 8 10
Systém nemá paměť, spustitelný soubor je porušen nebo vyklizení je neplatné. Soubor nenalezen. Cesta nenalezena. Pokus o dynamické připojení k úloze, chyba sdílení nebo ochrany sítě. Knihovna vyţaduje oddělené datové segmenty pro kaţdou úlohu. Nedostatek paměti pro start aplikace. Chybná verze Windows.
11
Neplatný spustitelný soubor. Buď to není aplikace Windows nebo chyba v .EXE souboru.
12
Aplikace určena pro jiný operační systém.
13
Aplikace navrţena pro MS-DOS 4.0.
14
Neznámý typ spustitelného souboru.
15
Pokus o spuštění aplikace v reálném módu (vyvinuté pro dřívější verzi Windows).
16
Pokus o spuštění druhé instance spustitelného souboru obsahujícího násobné datové segmenty, které nejsou označeny jako jenom pro čtení.
19
Pokus o spuštění komprimovaného spustitelného souboru. Soubor musí být před spuštěním dekomprimován.
20
Soubor s dynamicky připojovanou knihovnou (DDL) je neplatný. Jedna z DDL poţadovaná spouštěnou aplikací je porušená.
21
Aplikace vyţaduje 32-bitové rozšíření Microsoft Windows.
74.2 Chybové kódy, které se mohou vyskytnout při volání kteréhokoli z dialogů pro získání jména souboru, barvy nebo tisku 1 Neplatný údaj o velikosti struktury s parametry dialogu. 2 Procedura vytvářející dialog selhala během inicializace. Tato chyba často nastává při nedostatku paměti. 3 Byla nastavena vlajka ENABLETEMPLATE (povolit šablonu), ale aplikace selhala při zajišťování odpovídající šablony. 4 Byla nastavena vlajka ENABLETEMPLATE (povolit šablonu), ale aplikace selhala při zajišťování odpovídajícího handle (drţadla) instance. 5 Procedura vytvářející dialog selhala při hledání zadaného řetězce. 6 Procedura vytvářející dialog selhala při hledání zadaného zdroje (resource). 7 Procedura vytvářející dialog selhala při natahování zadaného zdroje (resource). 8 Procedura vytvářející dialog selhala při zamykání zadaného zdroje (resource). 9 Procedura vytvářející dialog nebyla schopna alokovat paměť pro vnitřní struktury. 10 Procedura vytvářející dialog nebyla schopna zamknout paměť spojenou s drţadlem (handle). 11 Byla nastavena vlajka ENABLEHOOK (povolit hák), ale aplikace selhala při zajišťování ukazatele na odpovídající hákovou funkci.
74.3 Chybové kódy, které se mohou vyskytnout pouze při volání dialogu pro získání jména souboru 12289 12290
Pokus o podtřídu seznamového okénka selhal kvůli nedostatku paměti. Neplatné jméno souboru.
ZODOP 12291
159
Vyrovnávací paměť pro jméno souboru je příliš malá. (Ukazatel na tuto paměť je členem struktury s parametry dialogu.)
74.4 Chybové kódy, které se mohou vyskytnout pouze při volání dialogu pro zahájení tisku 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108
Procedura vytvářející dialog selhala při natahování zadaného zdroje (resource). Procedura vytvářející dialog selhala při syntaktické analýze řetězců v sekci [devices] souboru WIN.INI. Byla nastavena vlajka PD_RETURNDEFAULT (vrátit implicitní) ve struktuře PRINTDLG, ale jeden ze členů hDevMode nebo hDevNames struktury byly nenulové. Procedura vytvářející dialog selhala při natahování obsluţného programu (driveru) pro zvolenou tiskárnu. Obsluţný program (driver) tiskárny selhal při inicializaci struktury DEVMODE. (Tato chyba se můţe vyskytnout pouze u obsluţných programů psaných pro verzi Windows 3.0 a vyšší.) Procedura vytvářející dialog selhala při inicializaci. Nebyl nalezen ţádný obsluţný program (driver) tiskárny. Implicitní tiskárna neexistuje. Údaje ve struktuře DEVMODE a DEVNAMES popisují dvě různé tiskárny. Procedura vytvářející dialog selhala při pokusu vytvořit informační kontext. Sekce [devices] souboru WIN.INI neobsahuje ţádnou poloţku pro poţadovanou tiskárnu. Program volal dialog pro tisk a přitom byla nastavena vlajka DN_DEFAULTPRN (vrátit implicitní) ve členu wDefault struktury DEVNAMES, ale tiskárna popisovaná ostatními členy struktury neodpovídá aktuální implicitní tiskárně. (Toto se stává, kdyţ uţivatel v programu nastaví tisk na implicitní tiskárně, tím dojde k uloţení struktury DEVNAMES, a potom změní implicitní tiskárnu pomocí řídícího panelu.) Buď vraťte nastavení implicitní tiskárny v řídícím panelu tak jak bylo při prvním volání dialogu Nastavení tisku, nebo ukončete program a spusťte ho znovu.
74.5 Chybové kódy knihovny LeadTools Chyba ERROR_NO_MEMORY ERROR_NO_BITMAP ERROR_MEMORY_TOO_LOW ERROR_FILE_LSEEK ERROR_FILE_WRITE ERROR_FILE_GONE ERROR_FILE_READ ERROR_INV_FILENAME ERROR_FILE_FORMAT ERROR_FILENOTFOUND ERROR_INV_RANGE ERROR_IMAGE_TYPE
Číslo -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12
ERROR_INV_PARAMETER ERROR_FILE_OPEN ERROR_UNKNOWN_COMP ERROR_FEATURE_NOT_SUPPORTED ERROR_NOT_256_COLOR
-13 -14 -15 -16 -17
ERROR_PRINTER ERROR_CRC_CHECK ERROR_QFACTOR ERROR_TARGAINSTALL
-18 -19 -21 -22
Popis Není k dispozici dostatek paměti Neplatné drţadlo bitmapy Není k dispozici dostatek paměti Chyba při hledání pozice v souboru Chyba při zápisu do souboru Soubor nepřítomen - abort Chyba při čtení souboru Neplatné jméno souboru Neplatný formát souboru Soubor nenalezen Neplatná výška/šířka Byl rozpoznán formát obrazu, ale podtyp není podporován Neplatný parametr Nepodařilo se otevřít soubor Neznámý kompresní formát Nepodporovaný příznak Karta VGA podporuje pouze 256 barev (8 bit) Chyba tiskárny Chyba při kontrole datového CRC Zadán neplatný QFactor TARGA není na instalována
160 ERROR_OUTPUTTYPE ERROR_XORIGIN ERROR_YORIGIN ERROR_VIDEOTYPE ERROR_BITPERPIXEL ERROR_WINDOWSIZE ERROR_NORMAL_ABORT ERROR_NOT_INITIALIZED ERROR_CU_BUSY ERROR_INVALID_TABLE_TYPE ERROR_UNEQUAL_TABLES ERROR_INVALID_BUFFER ERROR_MISSING_TILE_DATA ERROR_INVALID_QVALUE ERROR_INVALIDDATA ERROR_INVALID_COMPRESSED_TYPE ERROR_INVALID_COMPONENT_NUM ERROR_INVALID_PIXEL_TYPE ERROR_INVALID_PIXEL_SAMPLING ERROR_INVALID_SOURCE_FILE ERROR_INVALID_TARGET_FILE ERROR_INVALID_IMAGE_DIMS ERROR_INVALID_TILE_DIMS ERROR_INVALID_PIX_BUFF_DIMS ERROR_SEGMENT_OVERFLOW ERROR_INVALID_SUBSAMPLING ERROR_INVALID_Q_VIS_TABLE ERROR_INVALID_DC_CODE_TABLE ERROR_INVALID_AC_CODE_TABLE ERROR_INSUFFICIENT_DATA ERROR_MISSING_FUNC_POINTER ERROR_TOO_MANY_DC_CODE_TABLES ERROR_TOO_MANY_AC_CODE_TABLES ERROR_INVALID_SUBIMAGE ERROR_INVALID_ABORTION ERROR_CU_NO_SUPPORT ERROR_CU_FAILURE ERROR_BAD_POINTER ERROR_HEADER_DATA_FAILURE ERROR_COMPRESSED_DATA_FAILURE ERROR_FIXEDPAL_DATA ERROR_LOADFONT_DATA ERROR_NO_STAMP ERROR_G3CODE_INVALID ERROR_G3CODE_EOF ERROR_G3CODE_EOL ERROR_PREMATURE_EOF ERROR_PREMATURE_EOL ERROR_UNCOMP_EOF ERROR_ACT_INCOMP ERROR_BAD_DECODE_STATE ERROR_VERSION_NUMBER ERROR_TWAIN_NODSM ERROR_TWAIN_BUMMER
ZODOP -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80
Neplatný kompresní formát Zadaný počátek X neplatný Zadaný počátek Y neplatný Neplatný video mód Neplatný počet bitů na pixel Neplatná velikost okna Zmáčknuta klávesa Escape Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Interní chyba LeadTools Data s pevnou paletou nenalezena Data s pevnou paletou nenalezena Známka nenalezena Neplatná data group 3 Konec souboru kódu Group3 Konec kódu Group3 Předčasný konec souboru Předčasný konec řádku Předčasný konec řádku Předčasný konec řádku Předčasný konec řádku Chybné číslo verze Správce zdrojů nenalezen Selhání z neznámých příčin
ZODOP
161
ERROR_TWAIN_LOWMEMORY ERROR_TWAIN_NODS ERROR_TWAIN_MAXCONNECTIONS
-81 -82 -83
ERROR_TWAIN_OPERATIONERROR ERROR_TWAIN_BADCAP ERROR_TWAIN_BADPROTOCOL ERROR_TWAIN_BADVALUE ERROR_TWAIN_SEQERROR
-84 -85 -86 -87 -88
ERROR_TWAIN_BADDEST
-89
ERROR_TWAIN_CANCEL ERROR_USER_ABORT ERROR_FPX_INVALID_FORMAT_ERROR ERROR_FPX_FILE_WRITE_ERROR ERROR_FPX_FILE_READ_ERROR ERROR_FPX_FILE_NOT_FOUND ERROR_FPX_COLOR_CONVERSION_ERROR ERROR_FPX_SEVER_INIT_ERROR ERROR_FPX_LOW_MEMORY_ERROR ERROR_FPX_IMAGE_TOO_BIG_ERROR ERROR_FPX_INVALID_COMPRESSION_ ERROR ERROR_FPX_INVALID_RESOLUTION ERROR_FPX_INVALID_FPX_HANDLE ERROR_FPX_TOO_MANY_LINES ERROR_FPX_BAD_COORDINATES ERROR_FPX_FILE_SYSTEM_FULL ERROR_FPX_MISSING_TABLE ERROR_FPX_RETURN_PARAMETER_TOO_ LARGE ERROR_FPX_NOT_A_VIEW ERROR_FPX_VIEW_IS_TRANFORMLESS ERROR_FPX_ERROR ERROR_FPX_UNIMPLEMENTED_FUNCTION ERROR_FPX_INVALID_IMAGE_DESC ERROR_FPX_INVALID_JPEG_TABLE ERROR_FPX_ILLEGAL_JPEG_ID ERROR_FPX_MEMORY_ALLOCATION_ FAILED ERROR_FPX_NO_MEMORY_MANAGEMENT ERROR_FPX_OBJECT_CREATION_FAILED ERROR_FPX_EXTENSION_FAILED ERROR_FPX_FREE_NULL_PTR ERROR_FPX_INVALID_TILE ERROR_FPX_FILE_IN_USE ERROR_FPX_FILE_CREATE_ERROR ERROR_FPX_FILE_NOT_OPEN_ERROR ERROR_FPX_USER_ABORT ERROR_FPX_OLE_FILE_ERROR ERROR_BAD_TAG ERROR_INVALID_STAMP_SIZE
-90 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109
Nedostatek paměti pro provedení operace Ţádný zdroj dat DS je spojeno s maximálním počtem aplikací Oznámená chyba DS nebo DSM Neznámá schopnost Nerozpoznaná kombinace MSG DG DAT Datový parameter mimo rozsah DG DAT MSG mimo předpokládanou posloupnost Neznámé místo určení App/Src v DSM_Entry Operace byla zrušena Uţivatel předčasně ukončil operaci Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix
-110 -111 -112 -113 -114 -115 -116
Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix
-117 -118 -119 -120 -121 -122 -123 -124
Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix
-125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -140 -141
ERROR_BAD_STAMP
-142
Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Chyba FlashPix Špatný TIFF tag Známka je příliš velká nebo neplatný počet bitů na pixel apod. Známak je přítomna, ale data jsou porušena
162
ZODOP Tato funkce vyţaduje schopnost zobrazování dokumentů Obraz je prázdný Obraz nebyl změněn LZW je uzamčena Pro pouţití této funkce je potřebný FlashPix rozšířený modul Anotační objekt je uzamčen Obecný obrazový dialog byl zrušen uţivatelem Chyba během vytváření obecného obrazového dialogu Ţádný ISIS Scanner není vybrán ISIS Scanner driver selhal při natahování ISIS operace zrušena uţivatelem Špatný ISIS Tag nebo špatná hodnota Tagu ISIS Scanner není připraven V ISIS Scanneru není stránka Zácpa v ISIS Scanneru Chyba ISIS Scannerového driveru ISIS Scanner je zaneprázdněn Chyba v souboru s ISIS driverem Sí?ová chyba ISIS ISIS není nainstalováno Strana nenalezena Nelze smazat stranu ze souboru obsahujícího jenom jednu stranu Není ţádná horká klávesa Chyba při vytváření okna horké klávesy
ERROR_EXPRESS_NOT_ENABLED
-143
ERROR_IMAGE_EMPTY ERROR_NO_CHANGE ERROR_LZW_LOCKED ERROR_FPXEXTENSIONS_LOCKED
-144 -145 -146 -147
ERROR_ANN_LOCKED ERROR_DLG_CANCELED
-148 -150
ERROR_DLG_FAILED
-151
ERROR_ISIS_NOCURSCANNER ERROR_ISIS_SCANDRIVER_NOT_LOADED ERROR_ISIS_CANCEL ERROR_ISIS_BAD_TAG_OR_VALUE
-160 -161 -162 -163
ERROR_ISIS_NOT_READY ERROR_ISIS_NO_PAGE ERROR_ISIS_JAM ERROR_ISIS_SCANNER_ERROR ERROR_ISIS_BUSY ERROR_ISIS_FILE_ERROR ERROR_ISIS_NETWORK_ERROR ERROR_ISIS_NOT_INSTALLED ERROR_PAGE_NOT_FOUND ERROR_DELETE_LAST_PAGE
-164 -165 -166 -167 -168 -169 -170 -171 -310 -311
ERROR_NO_HOTKEY ERROR_CANNOT_CREATE_HOTKEY_ WINDOW ERROR_MEDICAL_NOT_ENABLED
-312 -313
ERROR_JBIG_NOT_ENABLED ERROR_VECTOR_NOT_ENABLED ERROR_VECTOR_IS_EMPTY ERROR_VECTOR_LAYER_NOT_FOUND ERROR_VECTOR_LAYER_IS_LOCKED ERROR_VECTOR_LAYER_ALREADY_ EXISTS ERROR_VECTOR_OBJECT_NOT_FOUND ERROR_VECTOR_INVALID_OBJECT_TYPE ERROR_VECTOR_PEN_NOT_FOUND ERROR_VECTOR_BRUSH_NOT_FOUND ERROR_VECTOR_FONT_NOT_FOUND ERROR_VECTOR_BITMAP_NOT_FOUND ERROR_VECTOR_POINT_NOT_FOUND ERROR_VECTOR_ENGINE_NOT_FOUND ERROR_VECTOR_INVALID_ENGINE ERROR_VECTOR_CLIPBOARD ERROR_VECTOR_CLIPBOARD_IS_EMPTY ERROR_VECTOR_CANT_ADD_TEXT ERROR_VECTOR_CANT_READ_WMF ERROR_VECTOR_GROUP_NOT_FOUND ERROR_VECTOR_GROUP_ALREADY_ EXISTS
-315 -400 -501 -502 -503 -504
Pro tuto funkci je třeba schopnost medicínského zobrazování Pro tuto funkci je třeba schopnost JBIG Podpora vektorů je uzamčena. Vektor je prázdný Vektorová vrstva nenalezena Vektorová vrstva je uzamčena Vektorová vrstva nenalezena
-505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519
Vektorový objekt nenalezen Neplatný typ objektu Pero nenalezeno Štětec nenalezen Font nenaelzen Bitmapa nenalezena Bod nenalezen Vektorový stroj nenalezen Neplatný vektorový stroj Chyba schránky Schránka je prázdná Nelze přidat text Nelze číst WMF. Skupina nenalezena. Skupina uţ existuje
-314
ZODOP
163
WRPERR_BITMAP_NOT_ALLOCATED WRPERR_INVALID_CLASS WRPERR_INVALID_PARAMETERS WRPERR_BITMAP_BPP WRPERR_BITMAP_DITHER_NOT_STARTED WRPERR_BITMAP_ALREADY_ALLOCATED WRPERR_BITMAP_PREPARE_FAILED WRPERR_BITMAP_ITEM_IN_LIST WRPERR_BITMAP_CONVERT WRPERR_PLAYBACK_ALREADY_CREATED WRPERR_LIST_ALREADY_CREATED WRPERR_LIST_NOT_CREATED WRPERR_CLASS_NOT_READY WRPERR_BUFFER_NO_MEMORY WRPERR_BUFFER_ERRSIZE WRPERR_BUFFER_INVALID_HANDLE WRPERR_FILE_FEEDLOAD_NOT_STARTED WRPERR_MEMFILE_COMP_NOT_STARTED WRPERR_ANN_INVALID_FILE WRPERR_ANN_INVALID_FILEMEM WRPERR_ANN_INVALID_OBJECT WRPERR_ANN_DESTROYTOOLBAR_FAILED
-1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1008 -1014 -1015 -1016 -1017 -1018 -1019 -1020 -1021 -1022 -1023 -1024 -1025 -1026
WRPERR_ANN_ALLOCATED_MEMORY WRPERR_BUFFER_NOTVALID WRPERR_BUFFER_REALLOCATE
-1027 -1028 -1029
WRPERR_BUFFER_COPY
-1030
WRPERR_BUFFER_RESIZE_NOT_STARTED WRPERR_BUFFER_LOCKED WRPERR_BITMAPWND_PAN_NOT_ CREATED WRPERR_BITMAPWND_REGISTER WRPERR_BITMAPWND_CREATEWINDOW WRPERR_ANIMATION_ALREADY_ STARTED WRPERR_ANIMATION_IS_RUNNING WRPERR_ANNWND_CANT_CREATE_ OBJECT WRPERR_LTKRN_DLL_NOT_LOADED WRPERR_LTDIS_DLL_NOT_LOADED WRPERR_LTFIL_DLL_NOT_LOADED WRPERR_LTIMG_DLL_NOT_LOADED WRPERR_LTEFX_DLL_NOT_LOADED WRPERR_LTDLG_DLL_NOT_LOADED WRPERR_LTISI_DLL_NOT_LOADED WRPERR_LTTWN_DLL_NOT_LOADED WRPERR_LTSCR_DLL_NOT_LOADED WRPERR_LTANN_DLL_NOT_LOADED WRPERR_LTCAP_DLL_NOT_LOADED WRPERR_LTNET_DLL_NOT_LOADED WRPERR_LTVID_DLL_NOT_LOADED WRPERR_BITMAPLIST_ITEM_OPERATION_ ERROR WRPERR_BITMAPLIST_NOT_CREATED
-1031 -1032 -1033
Bitmapa není alokována Objekt třídy je neplatný Neplatný parameter(y) Neplatný počet bitů na pixel Ditheringový stroj nezačal Bitmapa uţ je alokována Příprava procesu selhala Poloţka je částí bitmapového seznamu Chyba během konverze Přehrávání uţ je vytvořeno Bitmapový seznam uţ je vytvořen Bitmapový seznam nebyl vytvořen Objekt třídy není připraven Vyrovnávací paměť nebyla alokována Neplatná velikost Vyrovnávací paměti Neplatné drţadlo Vyrovnávací paměti Stroj FeedLoad nenastartován Compresní stroj nenastartován Neplatný anotační soubor Neplatný anotační soubor v paměti Neplatný anotační objekt Selhal pokus odstranit anotační nástrojovou lištu Selhal pokus alokovat pamě? Neplatná vyrovnávací pamě? Selhal pokus znovu alokovat vyrovnávací pamě? Selhal pokus kopírovat vyrovnávací pamě? Stroj na změnu velikosti nenastartován Vyrovnávací pamě? není uzamčena Okno se skrolovacími lištami nevytvořeno
-1034 -1035 -1036
Chyba při registraci třídy okna Chyba při vytváření okna Přehrávání animace uţ začalo
-1037 -1038
Animace běţí Chyba při vytváření objektu
-1039 -1040 -1041 -1042 -1043 -1044 -1045 -1046 -1047 -1048 -1049 -1050 -1051 -1052
Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Poţadovaná knihovna DLL není připojena Chyba během práce s bitmapovým seznamem Bitmapový seznam nebyl vyvořen
-1053
164
ZODOP
WRPERR_ANIMATION_INVALID_FILE WRPERR_NOT_LEAD_BITMAP WRPERR_BITMAP_IS_ALIST_MEMBER WRPERR_WINDOW_NOT_CREATED WRPERR_OPERATION_NOT_ALLOWED WRPERR_OPERATION_CANCELED WRPERR_LTTMB_DLL_NOT_LOADED WRPERR_LTLST_DLL_NOT_LOADED WRPERR_IMAGELISTCONTROL_CREATE
-1054 -1055 -1056 -1057 -1058 -1059 -1060 -1061 -1062
WRPERR_LVKRN_DLL_NOT_LOADED WRPERR_NO_VECTOR
-1063 -1064
WRPERR_VECTOR_NOT_ALLOCATED
-1065
WRPERR_LVDLG_DLL_NOT_LOADED WRPERR_FEATURE_NOT_SUPPORTED_ IN_DIRECTX
-1066 -1067
WRPERR_WRPERR_FEATURE_NOT_ SUPPORTED WRPERR_VECTOR_NOT_ASSOCIATED
-1068
WRPERR_VECTOR_INVALID_LAYER WRPERR_VECTOR_INVALID_OBJECT
-1070 -1071
WRPERR_VECTOR_INVALID_OBJECT_ TYPE WRPERR_VECTOR_INVALID_OBJECT_ DESC WRPERR_VECTOR_LOCK_ERROR
-1072
WRPERR_LTBAR_DLL_NOT_LOADED WRPERR_LTAUT_DLL_NOT_LOADED WRPERR_LTCON_DLL_NOT_LOADED WRPERR_LDKRN_DLL_NOT_LOADED WRPERR_LTEML_DLL_NOT_LOADED WRPERR_LTTLB_DLL_NOT_LOADED WRPERR_LTPNT_DLL_NOT_LOADED WRPERR_LTPDG_DLL_NOT_LOADED WRPERR_VECTOR_INVALID_GROUP WRPERR_LTWEB_DLL_NOT_LOADED
-1075 -1076 -1077 -1078 -1079 -1080 -1081 -1082 -1083 -1084
-1069
-1073 -1074
Neplatný soubor s animací Nejedná se o LeadToolsovou Bitmapu Bitmapa je částí bitmapového seznamu Objektové okno nebylo vytvořeno Operace není povolena Operace byla zrušena Knihovna LTTMB.DLL není nataţena Knihovna LTLST.DLL nenataţena. Chyba během vytváření ovladače seznamu obrazů Knihovna LVKRN.DLL nenataţena S objektem typu LVectorDialog není spojen ţádný objekt typu LVectorBase Do objektu typu LVectorBase nebyl nataţen ţádný vektor Knihovna LVDLG.DLL nenataţena Nepodporovaný příznak během pouţití stroje DirectX na zpracování vektorových obrazů Příznak není podporován S objektem není spojen ţádný objekt typu LVectorBase Neplatný objekt typu LVectorLayer S objektem typu validvector není spojen ţádný objekt typu LvectorObject LvectorObject byl zneplatněn (můţe se stát na ExplodeObject) UnlockObject ( ) je volaná na neplatný popisovač objektu LockObject() je volána na uţ zamčený objekt Knihovna LTBAR.DLL nenataţena Knihovna LTAUT.DLL nenataţena Knihovna LTCON.DLL nenataţena Knihovna LDKRN.DLL nenataţena Knihovna LTEML.DLL nenataţena Knihovna LTTLB.DLL nenataţena Knihovna LTPNT.DLL nenataţena Knihovna LTPDG.DLL nenataţena Neplatná vektorová skupina Knihovna LTWEB.DLL nenataţena
75. Dodatek B: Masky filtrů pro konvoluční filtraci Filtr typu první derivace pro detekci vodorovných hran. Pracuje směrem nahoru. FILTR „derivative north 1“ 3 4
1
1
10 128
MASKA
1 1 0
2 0
1 0
ZODOP -1
165 -2
-1
Filtr typu první derivace pro detekci vodorovných hran. Pracuje směrem nahoru. FILTR „derivative north 2“ 3 5
1
2
10 128
MASKA
1 1 1 -1
1 -2 -1
1 1 -1
Filtr typu první derivace pro detekci šikmých hran ve směru nahoře vlevo – dole vpravo. Pracuje směrem doprava nahoru. FILTR „derivative north east 1“ 3 4
1
3
10 128
MASKA
1 0 -1 -2
1 0 -1
2 1 0
Filtr typu první derivace pro detekci šikmých hran ve směru nahoře vlevo – dole vpravo. Pracuje směrem doprava nahoru. FILTR „derivative north east 2“ 3 5
1
4
10 128
MASKA
1 1 -1 -1
1 -2 -1
1 1 1
Filtr typu první derivace pro detekci svislých hran. Pracuje směrem doprava. FILTR „derivative east 1“ 3 4
1
5
10 128
MASKA
1 -1 -2 -1
0 0 0
1 2 1
Filtr typu první derivace pro detekci svislých hran. Pracuje směrem doprava. FILTR „derivative east 2“ 3 5
1
10 128
-1
1
6
MASKA
1 1
166
ZODOP -1 -1
-2 1
1 1
Filtr typu první derivace pro detekci šikmých hran ve směru nahoře vpravo – dole vlevo. Pracuje směrem doprava dolu. FILTR „deviated south east 1“ 3 4
1
7
10 128
MASKA
1 -2 -1 0
-1 0 1
0 1 2
Filtr typu první derivace pro detekci šikmých hran ve směru nahoře vpravo – dole vlevo. Pracuje směrem doprava dolu. FILTR „derivative south east 2“ 3 5
1
8
10 128
MASKA
1 -1 -1 1
-1 -2 1
1 1 1
Filtr typu první derivace pro detekci vodorovných hran. Pracuje směrem dolu. FILTR „derivative south 1“ 3 4
1
9
10 128
MASKA
1 -1 0 1
-2 0 2
-1 0 1
Filtr typu první derivace pro detekci vodorovných hran. Pracuje směrem dolu. FILTR „derivative south 2“ 3 5
1
10
10 128
MASKA
1 -1 1 1
-1 -2 1
-1 1 1
Filtr typu první derivace pro detekci šikmých hran ve směru nahoře vlevo – dole vpravo. Pracuje směrem doleva dolu. FILTR „derivative south west 1“ 3 4
1
11
10 128
MASKA
1 0
-1
-2
ZODOP
167
1 2
0 1
-1 0
Filtr typu první derivace pro detekci šikmých hran ve směru nahoře vlevo – dole vpravo. Pracuje směrem doleva dolu. FILTR „derivative south west 2“ 3 5
1
12
10 128
MASKA
1 1 1 1
-1 -2 1
-1 -1 1
Filtr typu první derivace pro detekci svislých hran. Pracuje směrem doleva. FILTR „derivative 3 4
13 west 1“
1
10 128
MASKA
1 1 2 1
0 0 0
-1 -2 -1
Filtr typu první derivace pro detekci svislých hran. Pracuje směrem doleva. FILTR „derivative 3 5
14 west 2“
1
10 128
MASKA
1 1 1 1
1 -2 1
-1 -1 -1
Filtr typu první derivace pro detekci šikmých hran ve směru nahoře vpravo – dole vlevo. Pracuje směrem doleva nahoru. FILTR „derivative north west 1“ 3 4
1
15
10 128
MASKA
1 2 1 0
1 0 -1
0 -1 -2
Filtr typu první derivace pro detekci šikmých hran ve směru nahoře vpravo – dole vlevo. Pracuje směrem doleva nahoru. FILTR „derivative north west 2“ 3 5
1
10 128
16
168
ZODOP
MASKA
1 1 1 1
1 -2 -1
1 -1 -1
Diagonální Laplacián. FILTR „Laplacian 1“ 3 1
17
1
10 128
MASKA
1 -1 0 -1
0 4 0
-1 0 -1
Laplacián definovaný na 4-okolí. FILTR „Laplacian 2“ 3 1
18
1
10 128
MASKA
1 0 -1 0
-1 4 -1
0 -1 0
Laplacián definovaný na 8-okolí. FILTR „Laplacian 3“ 3 2
19
1
10 128
MASKA
1 -1 -1 -1
-1 8 -1
-1 -1 -1
Laplacián definovaný na 8-okolí se zdůrazněním 4-okolí. FILTR „Laplacian 4“ 3 2
1
20 10 128
MASKA
1 -1 -2 -1
-2 12 -2
-1 -2 -1
Zaostření přičtením jednonásobku Laplaciánu. FILTR „enhancement (small)“ 3 8
1
21
10 0
MASKA
1 -1
-1
-1
ZODOP -1 -1
169 16 -1
-1 -1
Zaostření přičtením dvojnásobku Laplaciánu. FILTR „enhancement 3 4
22 (normal)“
1
10 0
MASKA
1 -1 -1 -1
-1 12 -1
-1 -1 -1
Zaostření přičtením čtyřnásobku Laplaciánu. FILTR „enhancement 3 2
23 (strong)“
1
10 0
MASKA
1 -1 -1 -1
-1 10 -1
-1 -1 -1
Zaostření přičtením osminásobku Laplaciánu. FILTR „enhancement (maximum)“ 3 1
1
24
10 0
MASKA
1 -1 -1 -1
-1 9 -1
-1 -1 -1
Zaostření přičtením jednonásobku Laplaciánu na 4-okolí. FILTR „enhancement 3 4
25 type 1“
1
10 0
MASKA
1 0 -1 0
-1 8 -1
0 -1 0
Zaostření přičtením dvojnásobku Laplaciánu na 4-okolí. FILTR „enhancement type 2“ 3 2
1
26
10 0
MASKA
1 0 -1 0
-1 6 -1
0 -1 0
170
ZODOP
Zaostření přičtením čtyřnásobku Laplaciánu na 4-okolí. FILTR „enhancement type 3“ 3 1
1
27
10 0
MASKA
1 0 -1 0
-1 5 -1
0 -1 0
Zaostření přičtením čtyřnásobku Laplaciánu ze dvou 1-D druhých derivací. FILTR „enhancement type 4“ 3 1
1
28
10 0
MASKA
1 1 -2 1
-2 5 -2
1 -2 1
Vyhlazení přes 8-okolí. FILTR „smoothing 1“ 3 9
29
1
10 0
MASKA
1 1 1 1
1 1 1
1 1 1
Přičtení vyhlazení přes 8-okolí. FILTR „smoothing 2“ 3 10
30
1
10 0
MASKA
1 1 1 1
1 2 1
1 1 1
Přičtení poloviny vyhlazení přes 8-okolí. FILTR „smoothing 3“ 3 11
31
1
10 0
MASKA
1 1 1 1
1 3 1
1 1 1
Přičtení vyhlazení přes 8-okolí se zdůrazněním 4-okolí. FILTR „smoothing 4“
32
ZODOP
3 16
171
1
10 0
MASKA
1 1 2 1
2 4 2
1 2 1
Filtr typu první derivace pro detekci svislých hran. Pracuje směrem doprava. FILTR „derivative horizontal 1“ 3 1
1
33
10 128
MASKA
1 0 -1 0
0 0 0
0 1 0
Filtr typu první derivace pro detekci svislých hran. Pracuje směrem doprava. FILTR „derivative horizontal 2“ 3 3
1
34
10 128
MASKA
1 -1 -1 -1
0 0 0
1 1 1
Filtr typu první derivace pro detekci vodorovných hran. Pracuje směrem dolu. FILTR „derivative vertical 1“ 3 1
1
35
10 128
MASKA
1 0 0 0
-1 0 1
0 0 0
Filtr typu první derivace pro detekci vodorovných hran. Pracuje směrem dolu. FILTR „derivative vertical 2“ 3 3
1
36
10 128
MASKA
1 -1 0 1
-1 0 1
-1 0 1
Detektor svislých čar pomocí druhé derivace. FILTR „vertical line detect“ 3 1
1
10 128
37
172
ZODOP
MASKA
1 -1 -1 -1
2 2 2
-1 -1 -1
Detektor vodorovných čar pomocí druhé derivace. FILTR „horizontal line detect“ 3 1
1
38
10 128
MASKA
1 -1 2 -1
-1 2 -1
-1 2 -1
Detektor šikmých čar ve směru vpravo nahoře – vlevo dole pomocí druhé derivace. FILTR „1st diagonal detection“ 3 1
1
39
10 128
MASKA
1 -1 -1 2
-1 2 -1
2 -1 -1
Detektor šikmých čar ve směru vlevo nahoře – vpravo dole pomocí druhé derivace. FILTR „2nd diagonal detection“ 3 1
1
40
10 128
MASKA
1 2 -1 -1
-1 2 -1
-1 -1 2
Robinsonův 3-úrovňový hranový detektor. FILTR „3-level maxabs“ 3 1
4
41 1 1
MASKA
1 1 1 1
0 0 0
-1 -1 -1
1 1 0
1 0 -1
0 -1 -1
1 0 -1
1 0 -1
1 0 -1
0
1
1
MASKA
2
MASKA
3
MASKA
4
ZODOP
173
-1 -1
0 -1
1 0
Robinsonův 3-úrovňový hranový detektor s maskami 5x5. FILTR „3-level maxabs“ 5 1
4
42 1 1
MASKA 1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
-1 -1 -1 -1 -1
-1 -1 -1 -1 -1
1
MASKA 1 1 1 1 0
1 1 1 0 -1
1 1 0 -1 -1
1 0 -1 -1 -1
0 -1 -1 -1 -1
MASKA 1 1 0 -1 -1
1 1 0 -1 -1
1 1 0 -1 -1
1 1 0 -1 -1
1 1 0 -1 -1
MASKA 0 -1 -1 -1 -1
1 0 -1 -1 -1
1 1 0 -1 -1
1 1 1 0 -1
1 1 1 1 0
2
3
4
Robinsonův 3-úrovňový hranový detektor s maskami 7x7. FILTR „3-level maxabs“
43
7 4 1 1
1
MASKA
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
0 0 0 0 0 0 0
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 -1 1 0 -1 -1 0 -1 -1 -1
1 1 0 -1 -1 -1 -1
1 0 -1 -1 -1 -1 -1
0 -1 -1 -1 -1 -1 -1
MASKA
2
MASKA
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
174
ZODOP
MASKA
4 0 -1 -1 -1 -1 -1 -1
1 0 -1 -1 -1 -1 -1
1 1 1 1 1 1 1 1 0 1 1 1 -1 0 1 1 -1 -1 0 1 -1 -1 -1 0 -1 -1 -1 -1
1 1 1 1 1 1 0
Robinsonův 3-úrovňový hranový detektor s maskami 9x9. FILTR „3 level maxabs“
44
9 4 1 1 MASKA 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
MASKA 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 -1 1 0 -1 -1 0 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 0 -1 -1 -1 -1 -1
1 1 0 -1 -1 -1 -1 -1 -1
1 0 -1 -1 -1 -1 -1 -1 -1
0 -1 -1 -1 -1 -1 -1 -1 -1
MASKA 1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
MASKA 0 -1 -1 -1 -1 -1 -1 -1 -1
1 0 -1 -1 -1 -1 -1 -1 -1
1 1 0 -1 -1 -1 -1 -1 -1
1 1 1 0 -1 -1 -1 -1 -1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 -1 0 1 1 -1 -1 0 1 -1 -1 -1 0 -1 -1 -1 -1
1 1 1 1 1 1 1 1 0
2
3
4
Robinsonův 5-úrovňový hranový detektor. FILTR „5-level maxabs“ 3 4 1 1
45
1
MASKA
1 1
0
-1
ZODOP
175
2 1
0 0
-2 -1
2 1 0
1 0 -1
0 -1 -2
1 0 -1
2 0 -2
1 0 -1
0 -1 -2
1 0 -1
2 1 0
MASKA
2
MASKA
3
MASKA
4
Prewittův hranový detektor, verze s odmocninou. FILTR „Prewitt mean-square“ 3 2 2 1
46
1
MASKA
1 1 1 1
0 0 0
-1 -1 -1
1 0 -1
1 0 -1
1 0 -1
MASKA
2
Prewittův hranový detektor, verze se součtem absolutních hodnot. FILTR „Prewitt sumabs“ 3 2 3 1
47
1
MASKA
1 1 1 1
0 0 0
-1 -1 -1
1 0 -1
1 0 -1
1 0 -1
MASKA
2
Prewittův hranový detektor s maskami 5x5, verze s odmocninou. FILTR „Prewitt mean-square“ 5 2 2 1
48
1
MASKA
1 1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
-1 -1 -1 -1 -1
-1 -1 -1 -1 -1
1 1
1 1
1 1
1 1
1 1
MASKA
2
176
ZODOP 0 -1 -1
0 -1 -1
0 -1 -1
0 -1 -1
0 -1 -1
Prewittův hranový detektor s maskami 5x5, verze se součtem absolutních hodnot. FILTR „Prewitt sumabs“
49
5 2 3 1
1
MASKA
1 1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
-1 -1 -1 -1 -1
-1 -1 -1 -1 -1
1 1 0 -1 -1
1 1 0 -1 -1
1 1 0 -1 -1
1 1 0 -1 -1
1 1 0 -1 -1
MASKA
2
Prewittův hranový detektor s maskami 7x7, verze s odmocninou. FILTR „Prewitt mean-square“ 7 2 2 1
50
1
MASKA
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
0 0 0 0 0 0 0
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1
MASKA
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
Prewittův hranový detektor s maskami 7x7, verze se součtem absolutních hodnot. FILTR „Prewitt sumabs“
51
7 2 3 1
1
MASKA
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
0 0 0 0 0 0 0
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
MASKA
2
ZODOP
177 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
Prewittův hranový detektor s maskami 9x9, verze s odmocninou. FILTR „Prewitt mean-square“ 9 2 2 1
52
1
MASKA
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
MASKA
2
Prewittův hranový detektor s maskami 9x9, verze se součtem absolutních hodnot. FILTR „Prewitt sumabs“
53
9 2 3 1
1
MASKA
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
1 1 1 1 0 -1 -1 -1 -1
MASKA
2
Robertsův detektor hran, verze s odmocninou. FILTR „Roberts mean-square“ 2 2 2 1
1
54
178
ZODOP
MASKA
1 0 1
-1 0
-1 0
0 1
MASKA
2
Robertsův detektor hran, verze se součtem absolutních hodnot. FILTR „Roberts sumabs“
55
2 2 3 1
1
MASKA
1 0 1
-1 0
-1 0
0 1
MASKA
2
Sobelův hranový detektor, verze s odmocninou. FILTR „Sobel mean-square“ 3 2 2 1
56
1
MASKA
1 1 2 1
0 0 0
-1 -2 -1
1 0 -1
2 0 -2
1 0 -1
MASKA
2
Sobelův hranový detektor, verze se součtem absolutních hodnot. FILTR „Sobel sumabs“ 3 2 2 1
57
1
MASKA
1 1 2 1
0 0 0
-1 -2 -1
1 0 -1
2 0 -2
1 0 -1
MASKA
2
Prewittův kompasový hranový detektor. FILTR „compass max“ 3 8 4 1
58
1
ZODOP
179
MASKA
1 1 1 -1 1 -2 -1 1 1 -1
MASKA
2 1 1 1 1 -2 -1 1 -1 -1
MASKA
3 1 1 1 1 -2 1 -1 -1 -1
MASKA
4 1 1 -1 -2 -1 -1
1 1 1
-1 1 -1 -2 -1 1
1 1 1
-1 -1 -1 -2 1 1
1 1 1
MASKA
5
MASKA
6
MASKA
7 -1 -1 -1 1 -2 1 1 1 1
MASKA
8 1 -1 -1 1 -2 -1 1 1 1
Kirschův hranový detektor. FILTR „Kirsch max“
59
3 8 4 1
1
MASKA
1 3 3 3
3 -5 0 -5 3 -5
MASKA
2 3 3 3 3 0 -5 3 -5 -5
MASKA
3 3 3 3 3 0 3 -5 -5 -5
MASKA
4 3 3 -5 0 -5 -5
3 3 3
-5 -5 -5
3 3 3
MASKA
MASKA
5 3 0 3
6
180
ZODOP -5 -5 -5 0 3 3
3 3 3
MASKA
7 -5 -5 -5 3 0 3 3 3 3
MASKA
8 3 -5 -5 3 0 -5 3 3 3
Pyramidový hranový detektor s maskami 5x5. FILTR „pyramid maxabs“
60
5 4 1 1
1
MASKA
1 2 2 2 2 2
2 1 1 1 2
0 0 0 0 0
-2 -1 -1 -1 -2
-2 -2 -2 -2 -2
2 2 2 2 2 1 1 0 2 1 0 -1 2 0 -1 -1 0 -2 -2 -2
0 -2 -2 -2 -2
MASKA
2
MASKA
3 2 2 2 2 2 2 1 1 1 2 0 0 0 0 0 -2 -1 -1 -1 -2 -2 -2 -2 -2 -2
MASKA
4 0 2 2 2 -2 0 1 1 -2 -1 0 1 -2 -1 -1 0 -2 -2 -2 -2
2 2 2 2 0
Pyramidový hranový detektor s maskami 7x7. FILTR „pyramid maxabs“
61
7 4 1 1
1
MASKA
1 3 3 3 3 3 3 3
3 2 2 2 2 2 3
3 2 1 1 1 2 3
0 0 0 0 0 0 0
-3 -2 -1 -1 -1 -2 -3
-3 -2 -2 -2 -2 -2 -3
-3 -3 -3 -3 -3 -3 -3
3 3 3 3
3 2 2 2
3 2 1 1
3 3 3 0 2 2 0 -3 1 0 -2 -3 0 -1 -2 -3
MASKA
2
ZODOP
181
3 2 0 -1 -1 -2 -3 3 0 -2 -2 -2 -2 -3 0 -3 -3 -3 -3 -3 -3 MASKA
3 3 3 3 3 3 3 3 3 2 2 2 2 2 3 3 2 1 1 1 2 3 0 0 0 0 0 0 0 -3 -2 -1 -1 -1 -2 -3 -3 -2 -2 -2 -2 -2 -3 -3 -3 -3 -3 -3 -3 -3
MASKA
4 0 -3 -3 -3 -3 -3 -3
3 0 -2 -2 -2 -2 -3
3 3 3 3 2 2 2 2 0 1 1 2 -1 0 1 2 -1 -1 0 2 -2 -2 -2 0 -3 -3 -3 -3
3 3 3 3 3 3 0
Pyramidový hranový detektor s maskami 9x9. FILTR „pyramid maxabs“
62
9 4 1 1
1
MASKA
1 4 4 4 4 4 4 4 4 4
4 3 3 3 3 3 3 3 4
4 3 2 2 2 2 2 3 4
4 3 2 1 1 1 2 3 4
0 0 0 0 0 0 0 0 0
-4 -3 -2 -1 -1 -1 -2 -3 -4
-4 -3 -2 -2 -2 -2 -2 -3 -4
-4 -3 -3 -3 -3 -3 -3 -3 -4
-4 -4 -4 -4 -4 -4 -4 -4 -4
4 4 4 4 4 3 3 3 4 3 2 2 4 3 2 1 4 3 2 1 4 3 2 0 4 3 0 -2 4 0 -3 -3 0 -4 -4 -4
4 3 2 1 0 -1 -2 -3 -4
4 3 2 0 -1 -1 -2 -3 -4
4 3 0 -2 -2 -2 -2 -3 -4
4 0 -3 -3 -3 -3 -3 -3 -4
0 -4 -4 -4 -4 -4 -4 -4 -4
4 3 2 1 0 -1 -2 -3 -4
4 3 2 2 0 -2 -2 -3 -4
MASKA
2
MASKA
3 4 4 4 4 0 -4 -4 -4 -4
4 3 3 3 0 -3 -3 -3 -4
4 3 2 2 0 -2 -2 -3 -4
4 3 2 1 0 -1 -2 -3 -4
4 3 2 1 0 -1 -2 -3 -4
4 3 3 3 0 -3 -3 -3 -4
4 4 4 4 0 -4 -4 -4 -4
0 -4 -4 -4 -4 -4 -4 -4 -4
4 0 -3 -3 -3 -3 -3 -3 -4
4 3 0 -2 -2 -2 -2 -3 -4
4 3 2 0 -1 -1 -2 -3 -4
4 4 4 4 3 3 3 3 2 2 2 3 1 1 2 3 0 1 2 3 -1 0 2 3 -2 -2 0 3 -3 -3 -3 0 -4 -4 -4 -4
4 4 4 4 4 4 4 4 0
MASKA
4
182
ZODOP
Hranový detektor s maskami 4x4. FILTR „mean-square“
63
4 2 2 1
1
MASKA
1 -3 -3 -3 -3 -1 -1 -1 -1 1 1 1 1 3 3 3 3
MASKA
2 3 3 3 3
1 1 1 1
-1 -1 -1 -1
-3 -3 -3 -3
Normalizovaný Laplacián definovaný na 4-okolí. FILTR „Laplacian-5“ 3 1 4 1
64
1
MASKA
1 0 -1 0 -1 4 -1 0 -1 0
Laplacián 4x4. FILTR „Laplacian - 6“ 4 1 4 1
66
1
MASKA
1 1 0 0 0 -1 -1 0 -1 -1 1 0 0
1 0 0 1
Laplacián získaný násobením dvou 1-D druhých derivací. Moţné pouţití pro detekci bodů. FILTR „Laplacian - 7“ 3 1 4 1
67
1
MASKA
1 1 -2 1 -2 4 -2 1 -2 1
Kasvandova - Laplaceova identita, filtr typu druhá derivace. FILTR 68 „Kasvand - Laplacian Identity“ 5 1 4 1
1
MASKA
1 -1 -1 -1 -1 -1
ZODOP -1 -1 -1 -1
183 -1 -1 -1 -1
-1 24 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
Kasvandův detektor čar, filtr typu druhá derivace, výsledkem je maximum výsledků masek pouze v případě, ţe je kladné, jinak je výsledek nula. FILTR 69 „Kasvand line enhancement max-floor“ 5 4 5 1
1
MASKA
1 -1 -1 -1 -1 -1 0 0 0 0 0 2 2 2 2 2 0 0 0 0 0 -1 -1 -1 -1 -1
MASKA
2 0 -1 -1 0 2 -1 -1 0 2 0 -1 0 2 0 -1 0 2 0 -1 -1 2 0 -1 -1 0
MASKA
3 -1 -1 -1 -1 -1
0 0 0 0 0
2 2 2 2 2
0 0 0 0 0
-1 -1 -1 -1 -1
MASKA
4 2 0 -1 -1 0 0 2 0 -1 -1 -1 0 2 0 -1 -1 -1 0 2 0 0 -1 -1 0 2
Eberleinův detektor hran pouţívající první i druhou derivaci. FILTR „Eberlein maxabs-sub-floor“ 3 3 6 1
70
1
MASKA
1 1 1 1
0 -1 0 -1 0 -1
MASKA
2 1 1 1 0 0 0 -1 -1 -1
MASKA
3 -1 -1 -1 -1 8 -1 -1 -1 -1
Rozšířený Laplacián s maskou 5x5. FILTR „extended Laplacian“ 5 1 4 1
1
71
184
ZODOP
MASKA
1 1 1 0 1 1 0 -2 0 0 -2 -4 -2 1 0 -2 0 1 1 0 1
1 1 0 1 1
Součin konvoluce Laplaciánem s maskou 5x5 a Laplaciánem s maskou 3x3. FILTR 72 „two channel Laplacian - product“ 5 2 7 1
1
MASKA
1 1 1 0 1 1 0 -2 0 0 -2 -4 -2 1 0 -2 0 1 1 0 1
1 1 0 1 1
0 0 0 0 0 0 -1 0 0 -1 4 -1 0 0 -1 0 0 0 0 0
0 0 0 0 0
MASKA
2
Vyhlazení přes okolí 4x4. FILTR „smoother“
73
4 1 8 1
1
MASKA
1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Vyhlazení přes okolí 5x5 se zdůrazněním původního obrazu. FILTR „smoother“
74
5 1 8 1
1
MASKA
1 0 1 2 1 0
1 2 3 2 1
2 3 4 3 2
1 2 3 2 1
0 1 2 1 0
Vyhlazení přes okolí 4x4 se zdůrazněním původního obrazu. FILTR „smoother“
75
4 1 8 1
1
MASKA
1 0 1
1 2
1 2
0 1
ZODOP 1 0
185 2 1
2 1
1 0
Vyhlazení přes okolí 5x5. FILTR „smoother“
76
5 1 8 1
1
MASKA
1 1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
Vyhlazení přes okolí 2x2. FILTR „smoother“
77
2 1 8 1
1
MASKA
1 1 1
1 1
Vyhlazení přes okolí 6x6. FILTR „smoother“
78
6 1 8 1
1
MASKA
1 1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
Detektor hran a bodů pomocí odečtení vyhlazení přes okolí 4x4. FILTR „normalizer“
79
4 1 9 1
1
MASKA
1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Detektor hran a bodů pomocí odečtení vyhlazení přes okolí 5x5. FILTR „normalizer“ 5 1 9 1 MASKA
80
1 1
186
ZODOP 1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
Přičtení čtyřnásobku širokého Laplaciánu. FILTR „f-delsq(f)“
81
5 1 4 1
1
MASKA
1 0 0 -1 0 0
0 -1 0 0 0 5 0 0 0 -1
0 0 0 0 0 -1 0 0 0 0
Prostá druhá derivace svisle maskou 5x5. FILTR „Fyy simple“
82
5 1 4 1
1
MASKA
1 0 0 0 0 0
0 1 0 0 0 -2 0 0 0 1
0 0 0 0 0
0 0 0 0 0
Šablona objektu. Filtr je určen k tomu, aby si uţivatel zadal masku podle tvaru objektu, kterým chce vyhlazovat. FILTR „template of object“ 8 1 8 1
84
1
MASKA
1 0 0 9 5 5 5 5 9
0 0 5 5 0 0 0 0
0 0 5 5 5 5 5 9
0 0 5 5 0 0 0 0
0 0 5 5 5 5 5 9
5 5 5 5 0 0 0 0
7 7 5 5 5 5 5 9
7 9 0 0 0 0 0 0
Normalizovaný filtr typu první derivace pro detekci vodorovných hran. FILTR „derivative north“
85
3 1 4 MASKA
1 1 0 -1
2 0 -2
1 0 -1
ZODOP
187
Filtr typu první derivace pro detekci svislých hran. Kvůli nesymetrii masky neumoţňuje přesnou lokalizaci hran, výhodou je menší maska. FILTR „first differential“ 2 1 10 1
86
128
MASKA
1 -1 0
1 0
Marrův detektor hran s maskou 5x5. FILTR „Marr 1/sqrt2, 5 x 5“
87
5 1 10 128 128 MASKA
6
1
0 3 3 15 0 -108 3 15 0 3
6 3 0 15 0 6 0 15 6 3
0 3 3 0
Marrův detektor hran s maskou 7x7. FILTR „Marr 1, 7 x 7 „
88
7 1 10 128 128 MASKA 0 0 1 2 8 1 0 0
1
0 3 7 -16 7 3 0
1 2 7 8 0 -16 -52 -16 0 -16 7 8 1 2
1 7 0 8 0 7 1
0 3 7 2 7 3 0
0 0 1 1 0 0
Marrův detektor hran s maskou 9x9. FILTR „Marr sqrt2, 9 x 9 „
89
9 1 10 128 128 MASKA 0 0 1 1 4 2 4 1 4 1 0 0
0 1 2 2 0 2 2 1 0
1 1 2 4 -8 -16 -8 4 2 1
1 4 2 -16 -28 -16 2 4 1
2 4 0 -8 -16 -8 0 4 2
1 4 2 2 0 2 2 4 1
1 2 4 4 4 4 4 2 1
0 1 2 1 2 1 2 1 0
0 0 1
1 0 0
Marrův detektor hran s maskou 11x11. FILTR „Marr 2, 11 x 11 „
90
188
ZODOP
11 1 10 128 128 MASKA
1 1 1 1 1
0 0 1 2 2 2 2 2 1 0 0
1
0 1 1 2 1 1 1 2 1 1 0
1 1 2 0 -2 -4 -2 0 2 1 1
1 2 2 -2 -8 -10 -8 -2 2 2 1
1 2 1 -4 -10 -12 -10 -4 1 2 1
1 2 1 -2 -8 -10 -8 -2 1 2 1
1 2 1
1 2 2
1 1 2
0 1 1
0 0 1
0 2 2 1 -2 1 2 1 -4 1 2 1 -2 1 2 1 0 2 2 1 1 2 2 1 1 2 2 1 1 0 1 1 1 0 0
Marrův detektor hran s maskou 23x23. FILTR „Marr 2sqrt(2), 23 x 23 „
91
23 1 10 4096 128 MASKA
1
0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 2 2 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 5 6 5 5 4 3 2 1 0 0 0 0 0 0 0 0 1 1 2 4 6 8 10 12 12 12 10 8 6 4 2 1 1 0 0 0 0 0 0 1 2 5 8 12 15 19 21 21 21 19 15 12 8 5 2 1 0 0 0 0 0 1 2 5 9 14 19 24 27 29 29 29 27 24 19 14 9 5 2 1 0 0 0 1 2 4 8 14 21 27 30 29 27 26 27 29 30 27 21 14 8 4 2 1 0 0 1 3 6 12 19 27 30 26 16 5 0 5 16 26 30 27 19 12 6 3 1 0 0 1 4 8 15 24 30 26 9 -18 -44 -55 -44 -18 9 26 30 24 15 8 4 1 0 1 2 5 10 19 27 29 16 –18 -67 -111 -129 -111 -67 -18 16 29 27 19 10 5 2 1 1 2 5 12 21 29 27 5 -44 -111 -171 -195 -171 -111 –44 5 27 29 21 12 5 2 1 1 2 6 12 21 29 26 0 -55 -129 -195 -224 -195 -129 -55 0 26 29 21 12 6 2 1 1 2 5 12 21 29 27 5 -44 -111 -171 -195 -171 -111 -44 5 27 29 21 12 5 2 1 1 2 5 10 19 27 29 16 -18 -67 -111 -129 –111 -67 -18 16 29 27 19 10 5 2 1 0 1 4 8 15 24 30 26 9 -18 -44 -55 -44 -18 9 26 30 24 15 8 4 1 0 0 1 3 6 12 19 27 30 26 16 5 0 5 16 26 30 27 19 12 6 3 1 0 0 1 2 4 8 14 21 27 30 29 27 26 27 29 30 27 21 14 8 4 2 1 0 0 0 1 2 5 9 14 19 24 27 29 29 29 27 24 19 14 9 5 2 1 0 0 0 0 0 1 2 5 8 12 15 19 21 21 21 19 15 12 8 5 2 1 0 0 0 0 0 0 1 1 2 4 6 8 10 12 12 12 10 8 6 4 2 1 1 0 0 0 0 0 0 0 0 1 2 3 4 5 5 6 5 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 2 2 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0
Marrův detektor hran s maskou 31x31. FILTR „Marr 4, 31 x 31 „
92
31 1 10 4096 128 MASKA 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1 1 2
1 0 0 0 0 0 0 1 1 1 2 2 3
0 0 0 0 0 1 1 2 2 3 4 5
0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 1 2 3 2 3 4 3 4 6 4 6 9 5 8 11 7 10 12 8 11 14
0 0 1 1 2 4 6 9 11 13 14 15
0 0 1 2 3 5 8 11 13 15 15 14
0 1 1 2 4 7 10 12 14 15 13 9
0 0 1 1 1 1 1 0 1 1 1 1 2 1 1 1 2 2 2 2 3 2 2 2 3 4 4 4 5 4 4 4 5 6 7 7 7 7 7 6 8 9 10 10 11 10 10 9 11 12 13 14 14 14 13 12 14 14 15 15 15 15 15 14 15 15 14 13 13 13 14 15 14 11 8 5 4 5 8 11 9 2 -4 -9 -11 -9 -4 2 0-11-22 -31 -34 -31-22-11
0 1 2 3 5 8 11 14 15 14 9 0
0 1 1 2 4 7 10 12 14 15 13 9
0 0 1 2 3 5 8 11 13 15 15 14
0 0 0 0 0 0 1 0 0 1 1 1 2 2 1 4 3 2 6 4 3 9 6 4 11 9 6 13 11 8 14 12 10 15 14 11
0 0 0 0 1 1 2 3 4 5 7 8
0 0 0 0 0 1 1 2 2 3 4 5
0 0 0 0 0 0 1 1 1 2 2 3
0 0 0 0 0 0 0 0 1 1 1 2
0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0
ZODOP 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 2 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
2 2 2 3 2 2 2 2 1 1 1 0 0 0 0 0 0 0 0
4 4 4 5 4 4 4 3 2 2 1 1 1 0 0 0 0 0 0
6 7 7 7 7 7 6 5 4 3 2 2 1 1 0 0 0 0 0
189 9 10 10 11 10 10 9 8 7 5 4 3 2 1 1 0 0 0 0
12 13 14 14 14 13 12 11 10 8 6 4 3 2 1 1 0 0 0
14 15 15 15 15 15 14 14 12 11 9 6 4 3 2 1 0 0 0
15 14 13 13 13 14 15 15 14 13 11 9 6 4 2 1 1 0 0
11 2 -11-28-44 -56 -60 -56-44-28-11 8 -4 -22-44-65 -80 -86 -80-65-44-22 5 -9 -31-56-80 -98-104 -98-80-56-31 4 –11-34-60-86-104-112-104-86-60-34 5 -9 -31-56-80 -98-104 -98-80-56-31 8 -4 -22-44-65 -80 -86 -80-65-44-22 11 2 -11-28-44 -56 -60 -56-44-28-11 14 9 0-11-22 -31 -34 -31-22-11 0 15 13 9 2 –4 -9 -11 -9 -4 2 9 15 15 14 11 8 5 4 5 8 11 14 13 14 15 15 14 13 13 13 14 15 15 11 12 14 14 15 15 15 15 15 14 14 8 10 11 12 13 14 14 14 13 12 11 5 7 8 9 10 10 11 10 10 9 8 3 4 5 6 7 7 7 7 7 6 5 2 2 3 4 4 4 5 4 4 4 3 1 1 2 2 2 2 3 2 2 2 2 0 1 1 1 1 1 2 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0
2 11 -4 8 -9 5 -11 4 -9 5 -4 8 2 11 9 14 13 15 15 15 14 13 12 11 10 8 7 5 4 3 2 2 1 1 1 0 0 0
15 14 13 13 13 14 15 15 14 13 11 9 6 4 2 1 1 0 0
14 15 15 15 15 15 14 14 12 11 9 6 4 3 2 1 0 0 0
12 13 14 14 14 13 12 11 10 8 6 4 3 2 1 1 0 0 0
9 10 10 11 10 10 9 8 7 5 4 3 2 1 1 0 0 0 0
Marrův detektor hran s maskou 41x41. FILTR „Marr 4sqrt(2), 41 x 41 „
93
41 1 10 4096 128 MASKA 1 (pouze čtvrtina masky - maska je symetrická podle obou os) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 2
0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 3 3 3 3 3
0 0 0 0 0 0 0 1 1 1 1 2 2 3 3 3 4 4 4 4 4
0 0 0 0 0 0 1 1 1 2 2 2 3 3 4 4 5 5 5 5 5
0 0 0 0 0 1 1 1 2 2 3 3 4 4 5 5 6 6 6 6 6
0 0 0 0 1 1 1 2 2 3 3 4 5 5 6 6 7 7 7 7 7
0 0 0 0 1 1 2 2 3 4 4 5 6 6 7 7 8 8 8 8 8
0 0 0 1 1 1 2 3 3 4 5 6 7 7 8 8 7 7 7 7 7
0 0 1 1 1 2 2 3 4 5 6 7 7 8 7 7 6 6 5 4 4
0 0 1 1 1 2 3 4 5 6 7 7 8 7 7 5 4 2 1 0 0
0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 3 4 4 5 4 5 5 6 5 6 6 7 6 7 7 8 7 8 8 7 8 7 7 6 7 7 5 4 6 5 3 0 5 2 -1 -5 3 -1 -6 -10 0 -5 -10 -17 -2 -8 -15 -23 -4 -11 -19 -28 -6 -13 -22 -30 -6 -14 -23 -31
1 1 1 2 3 4 5 6 7 8 7 6 2 -2 -8 -15 -23 -30 -35 -39 -40
1 1 1 2 3 4 5 6 7 8 7 5 1 -4 -11 -19 -28 -35 -42 -45 -47
1 1 1 2 3 4 5 6 7 8 7 4 0 -6 -13 -22 -30 -39 -45 -49 -51
1 1 1 2 3 4 5 6 7 8 7 4 0 -6 -14 -23 -31 -40 -47 -51 -52
Marrův detektor hran s maskou 53x53. FILTR „Marr 8, 53 x 53 „
94
53 1 10 4096 128 MASKA 1 (pouze čtvrtina masky - maska je symetrická podle obou os) 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 1 1 1 1 1 2
0 0 0 0 0 1 1 1 1 1 2 2
0 0 0 0 1 1 1 1 1 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 1 1 1 1 1 2 2 2 3
0 0 1 1 1 1 1 2 2 2 3 3
0 0 1 1 1 1 1 2 2 3 3 3
0 0 1 1 1 1 2 2 2 3 3 3
0 1 1 1 1 1 2 2 3 3 3 4
0 1 1 1 1 2 2 2 3 3 3 4
0 1 1 1 1 2 2 3 3 3 4 4
1 1 1 1 2 2 2 3 3 3 4 4
1 1 1 1 2 2 2 3 3 4 4 4
1 1 1 1 2 2 2 3 3 4 4 4
1 1 1 1 2 2 3 3 3 4 4 4
1 1 1 1 2 2 3 3 3 4 4 4
1 1 1 1 2 2 3 3 3 4 4 4
1 1 1 1 2 2 3 3 3 4 4 4
6 7 7 7 7 7 6 5 4 3 2 2 1 1 0 0 0 0 0
4 4 4 5 4 4 4 3 2 2 1 1 1 0 0 0 0 0 0
2 2 2 3 2 2 2 2 1 1 1 0 0 0 0 0 0 0 0
1 1 1 2 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
190 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
ZODOP 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
1 1 1 1 2 2 2 2 2 2 2 3 3 3 3
1 1 2 2 2 2 2 3 3 3 3 3 3 3 3
2 2 2 2 2 3 3 3 3 3 3 3 3 3 3
2 2 2 3 3 3 3 3 3 4 4 4 4 4 4
2 2 3 3 3 3 3 4 4 4 4 4 4 4 4
2 3 3 3 3 4 4 4 4 4 4 4 4 4 4
3 3 3 3 4 4 4 4 4 4 4 3 3 3 3
3 3 3 4 4 4 4 4 3 3 3 3 3 2 2
3 3 4 4 4 4 3 3 3 2 2 2 1 1 1
3 4 4 4 4 3 3 2 2 1 1 0 0 0 0
4 4 4 4 3 3 2 1 1 0 -1 -2 -2 -3 -3
4 4 4 3 3 2 1 0 -1 -2 -3 -4 -5 -5 -5
4 4 3 3 2 1 0 -1 -3 -4 -5 -7 -8 -8 -8
4 4 3 2 1 0 -1 -3 -5 -6 -8 -10 -11 -11 -12
4 3 3 2 1 -1 -3 -5 -7 -9 -11 -13 -14 -15 -15
4 3 2 1 0 -2 -4 -6 -9 -11 -14 -15 -17 -18 -18
4 3 2 1 -1 -3 -5 -8 -11 -14 -16 -18 -20 -21 -21
3 3 2 0 -2 -4 -7 -10 -13 -15 -18 -21 -22 -23 -24
3 3 1 0 -2 -5 -8 -11 -14 -17 -20 -22 -24 -25 -26
3 2 1 0 -3 -5 -8 -11 -15 -18 -21 -23 -25 -27 -27
3 2 1 0 -3 -5 -8 -12 -15 -18 -21 -24 -26 -27 -28
Marrův detektor hran s maskou 69x69. FILTR „Marr 8sqrt(2), 69 x 69 „
95
69 1 10 4096 128 MASKA 1 (pouze čtvrtina masky - maska je symetrická podle obou os) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 1 1 1 2 1 1 1 1 1 1 0 1 1 0 0 1 1 0 -1 1 0 0 -1 1 0 -1 -1 0 0 -1 -2 0 0 -1 -2 0 0 -1 -2 0 -1 -1 -2 0 -1 -1 -2 0 -1 -2 -2
0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 0 0 -1 -1 -2 -2 -2 -3 -3 -3 -3 -3
0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 0 0 -1 -1 -2 -2 -3 -3 -4 -4 -4 -4 -5
0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 0 0 -1 -1 -2 -3 -3 -4 -4 -5 –5 -5 -6 -6
0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 0 0 -1 -1 -2 -3 -3 -4 -5 -5 -6 -6 -7 -7 -7
0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 0 -1 -1 -2 -3 -3 -4 -5 -6 -6 -7 -7 -8 -8 -8
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -2 -1 -1 -2 -2 -2 -2 -2 -2 -2 -2 -2 -3 -3 -3 -3 -3 -2 -3 -3 -4 -4 -4 -4 -5 -3 -4 -4 -5 -5 -5 -6 -6 -4 -5 -5 -6 -6 -7 -7 -7 -5 -6 -6 -7 -7 -8 -8 -8 -6 -7 -7 -8 -9 -9 -9 -9 -7 -8 -8 -9 -9 -9-10-10 -7 -8 -8 -9-10-10-10-10 -8 -9 -9 -9-10-10-11-11 -9 -9-10-10-10-11-11-11 -9 -9-10-10-11-11-12-12 -9-10-10-11-11-12-12-12 -9-10-10-11-11-12-12-12