A MATLAB programozása. Féléves házifeladat. RGBdialog



Hasonló dokumentumok
Tanulmányozza az 5. pontnál ismertetett MATLAB-modell felépítést és működését a leírás alapján.

ScopeImage 9.0. Kamera és képfeldolgozó szoftver. Felhasználói kézikönyv

Multimédiás alkalmazások

Grafika. Egyváltozós függvény grafikonja

Mikrohullámok vizsgálata. x o

Lineáris programozás. Modellalkotás Grafikus megoldás Feladattípusok Szimplex módszer

Komplex számok szeptember Feladat: Legyen z 1 = 2 3i és z 2 = 4i 1. Határozza meg az alábbi kifejezés értékét!

Varga Tamás Matematikaverseny 8. osztályos feladatok megoldásai iskolai forduló 2010.

Adatstruktúrák, algoritmusok, objektumok

INFORMATIKA MATEMATIKAI ALAPJAI

Az egyenértékő kúposság

Kecskeméti Fıiskola GAMF Kar Informatika Tanszék. Johanyák Zsolt Csaba

Dr. Kuczmann Miklós JELEK ÉS RENDSZEREK

Informatikai alapismeretek II.

JACIR HŐTİTORONY ÜZEMBE HELYEZÉSI ÉS KARBANTARTÁSI ÚTMUTATÓJA

Kétnormás PAL/SECAM színes TV dekódoló áramkörben alkalmazott integrált áramkörök*

Az ablakos problémához

A DERIVE kezelése. 1. A DERIVE ablaka. Amikor elindítod a DERIVE-ot ez az ablak jelenik meg:

NYUGAT-MAGYARORSZÁGI EGYETEM Faipari Mérnöki Kar. Mőszaki Mechanika és Tartószerkezetek Intézet. Dr. Hajdu Endre egyetemi docens MECHANIKA I.

Valószín ségelmélet házi feladatok

SZÍNES KÉPEK FELDOLGOZÁSA

Diplomamunka. Koczka László

5. Előadás. Megyesi László: Lineáris algebra, oldal. 5. előadás Lineáris függetlenség

Hiányos másodfokú egyenletek. x 8x 0 4. A másodfokú egyenlet megoldóképlete

Első sorozat (2000. május 22. du.) 1. Oldjamegavalós számok halmazán a. cos x + sin2 x cos x. +sinx +sin2x =

- elektromos szempontból az anyagokat három csoportra oszthatjuk: vezetık félvezetık szigetelı anyagok

Matematikai statisztikai elemzések 6.

Általános statisztika II. Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László

σhúzó,n/mm 2 εny A FA HAJLÍTÁSA

5. Trigonometria. 2 cos 40 cos 20 sin 20. BC kifejezés pontos értéke?

Számítógépi képelemzés

HATODIK FEJEZET / FÜGGİ MODELLEK / TANGRAM

Méréssel kapcsolt 3. számpélda

Audio-video tartalom-előállítás 2. kis ZH tananyag (részlet) 2015/16 ősz

NYOMDAI SEGÉDLET. Ha nem talál választ a kérdésére, kérjük hívja a kapcsolattartóját!

Elektronika 2. TFBE1302

Regressziószámítás alkalmazása kistérségi adatokon

FIR és IIR szűrők tervezése digitális jelfeldolgozás területén

Erıforrástérkép felhasználói kézikönyv 1.0

Modern Fizika Laboratórium Fizika BSc 22. Kvantumradír

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

HIDASNÉMETI KÖZSÉG ÖNKORMÁNYZATA POLGÁRMESTERI HIVATALÁNAK SZERVEZETFEJLESZTÉSE E-KÖZIGAZGATÁSI ALAPISMERETEK

Dekonvolúció, Spike dekonvolúció. Konvolúciós föld model

szolgáltatásról

Szakdolgozat. Pongor Gábor

Gyakorló feladatok Tömegpont kinematikája

A médiatechnológia alapjai

Egy emelt szintű érettségi feladat kapcsán Ábrahám Gábor, Szeged

3. számú mérés Szélessávú transzformátor vizsgálata

Laborjegyzıkönyv javítási tájékoztató. Kiegészítések a leggyakoribb hibák értelmezéséhez

Szeged Megyei Jogú Város Közgyőlése Kulturális, Egyházügyi, Közmővelıdési és Idegenforgalmi Bizottsága február 12. napján tartott ülésérıl

1.4 fejezet. RGB színrendszerek

KIEGÉSZÍTİ AUTOMATIKA SZIKVÍZPALACKOZÓ BERENDEZÉSEKHEZ

Széchenyi István Egyetem. Alkalmazott Mechanika Tanszék

Biztonsági rendszerekek 2 Vezérlı berendezés

Az elektronikus napló

A FELADATLAPOT A MEGOLDÁSSAL EGYÜTT KÖTELEZİ BEADNI!

S T A T I K A. Az összeállításban közremûködtek: Dr. Elter Pálné Dr. Kocsis Lászlo Dr. Ágoston György Molnár Zsolt

Látványos oktatás egyszerő multimédiás elemek programozásával Delphiben

Makroökonómia I. segédanyag február

INFORMATIKAI ALAPISMERETEK

2. OPTIKA 2.1. Elmélet Geometriai optika

EGÉSZTESTSZÁMLÁLÁS. Mérésleírás Nukleáris környezetvédelem gyakorlat környezetmérnök hallgatók számára

Differenciaegyenletek

Picture Style Editor verzió Kezelési kézikönyv

Mintavételezés: Kvantálás:

MATEMATIKA I. RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY A) KOMPETENCIÁK

2007 Nokia. Minden jog fenntartva. A Nokia, a Nokia Connecting People, az Nseries és az N77 a Nokia Corporation védjegye, illetve bejegyzett

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

Prizmás impulzuskompresszorok hômérsékleti stabilitásának modellezése

A 2011/2012. tanévi FIZIKA Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai és megoldásai fizikából. I.

>> x1 = linspace( ); plot(x1,sin(x1),'linewidth',1,'color',[1 0 0]);

Algebrai és transzcendens számok

MATEMATIKA GYAKORLÓ FELADATGYŰJTEMÉNY

MINIGAZ EVOLUTION. MH 16/21/28/35/45/55/75/95 MV 36/55/75/95 MC 21/28/35/45/55/75 típusok MŐSZAKI LEÍRÁS SZERELÉS HASZNÁLAT

WINDOWS XP - A GRAFIKUS FELÜLET KEZELÉSE

Tűgörgős csapágy szöghiba érzékenységének vizsgálata I.

Divatos termék-e a kondenzációs kazán?

Pontszerű test, pontrendszer és merev test egyensúlya és mozgása (Vázlat)

DC TÁPEGYSÉG AX-3003L-3 AX-3005L-3. Használati utasítás

1. Feladatlap. Függvények. Mőveletek Matlab nyelvben. Példa inverz osztásra >>d=2\1 d= Információkérési lehetıségek help utasítás

AutoN cr. Automatikus Kihajlási Hossz számítás AxisVM-ben. elméleti háttér és szemléltető példák február

Távolsági védelmek vizsgálata korszerű módszerekkel

INFORMATIKAI ALAPISMERETEK

KöMaL C-gyakorlatok

Következõ: Lineáris rendszerek jellemzõi és vizsgálatuk. Jelfeldolgozás. Lineáris rendszerek jellemzõi és vizsgálatuk

AGV rendszer fejlesztése

MATEMATIKA FELADATGYŰJTEMÉNY

TERMOELEM-HİMÉRİK (Elméleti összefoglaló)

Matematika példatár 4.

Az Ön kézikönyve HP SCANJET 8200C

2) = 0 ahol x 1 és x 2 az ax 2 + bx + c = 0 ( a,b, c R és a 0 )

Számítógépes geometria (mester kurzus)

Objektumorientált programozás C# nyelven

A jogszabály április 2. napon hatályos állapota ) 10/2001. (IV. 19.) KöM rendelet

DVD-lemezek minıségi ellenırzése Tévhitek, programok, kérdések és válaszok

Bannershop GIF Animator 5

Kvantumkriptográfia III.

1. fejezet: Bevezetés

Átírás:

A MATLAB programozása Féléves házifeladat RGBdialog Készítette: Till Viktor Konzulens: Dr. Varga Gábor 2005. tavasz

1. A feladat kitőzése A cél képek editálása a színösszetevık manipulálása alapján. A program három fı részbıl tevıdik össze: A színvektorok variálható kiolvasása az ıket reprezentáló U-V sikból A televíziótechnikában alkalmazott 3 érzetjellemzı (telítettség, kontraszt, fényerı) módosítása A kijelzési karakterisztika változtatása A feladatok elvégzésére több függvényt írtam, melyek segítségével igen változatos feladatok oldhatók meg. Ezek szemléltetésére grafikus felhasználói felületet készítettem, melybe a lehetıségekhez képest próbáltam minél több funkciót belerakni. 2. A megoldás elméletének rövid leírása Színes kép leírása: A számítástechnikában egy színes állókép egy pixelének jellemzése 3 színösszetevıvel történik: R-G-B (Red, Green, Blue). Az emberi szem ezen összetevıkre nem egyformán érzékeny. Az FCC által jóváhagyott színmérı rendszerben alkalmazott színforrásoknál ezt az intenzitásarányt mérések során a következı képpen határozták meg: R : G : B = 0.3 : 0.59 : 0.11 Ezt figyelembevéve lehetıség van az R-G-B reprezentáció összetevıinek az értéktartományait egyformának választani (0-1, 0-255). Így az egyenlı energiájú fehér színhez az 1-1-1 érték tartozik, míg a világosságértéket a következıképp határozhatjuk meg: Y = 0.3*R + 0.59*G + 0.11*B Fekete-fehér kép esetén ez az egyetlen érték jellemz egy képpontot. Látható, hogy a szín leírásához Y érték tudatában már csak 2 érték szükséges. Másképp fogalmazva: a fenti egyenlet átrendezése után juthatunk a színkülömbségi jelekhez, és látható, hogy ezek nem lehetnek függetlenek (2D): 0 = 0.3*(R-Y) + 0.59*(G-Y) + 0.11*(B-Y) -0.7 (R-Y) 0.7-0.89 (B-Y) 0.89-0.41 (G-Y) 0.41 A lehetı legnagyobb értéktartomány céljából a színek leírására a vörös és a kék színkülömbségi jeleket használjuk.

A televíziótechnika által támasztott igények kielégítése érdekében azonban definiálva van 2 úgynevezett redukciós tényezı is. A célkitőzés: A két legnagyobb világosságtartalommal rendelkezı alap/komplementerszín: sárga, enciánkék. Az ezekre szuperponált színeket leíró kvadratúra modulált színjel: 2 2 2 2 ( k ( R Y ) + k ( B Y ) ) R B 75 %-os alapszínek esetén ne lépjen túl egy limitet. Ez a limit az 1. Az így kapott két érték az úgynevezett U és V komponens: U = k B (B-Y) V = k R (R-Y) k B = 1 / 2.03 k = 1/ 1.14 R Tehát a képek leírására a következı 3 értéket használjuk: R-G-B vagy Y-U-V. Érzetjellemzık: Szubjektív jellemzésre a következı 3 jellemzıt szokás megadni: színezet, telítettség, fényerı. Színezet: A CIE a színezettséget, mint irányt jellemzi. Erre alkalmas az (R-Y)-(B-Y) leírás is. A színezetttv jelentése: az adott színt leíró vektor iránya ezen síkon: színezet TV R Y = arctg( ) B Y Telítettség: Egy adott színt az R-G-B összetevıi jellemeznek. Ez felbontható: valamilyen konstansal szorzott C-fehér (azonos R-G-B értékek) és egy adott spektrálszín (legalább az egyik alapszínösszetevı értéke 0) összegére. A telítettség megadja, hogy egy adott színinger milyen arányban tartalmazza a hozzá tartozó spektrálszínt a világosságértékéhez viszonyítva. Ennek leírásához a (Y-Yfehér) / Y arányt használjuk. A területdiagrammot megvizgálva, látható, hogy a számláló értéke nem más, mint a legnegatívabb színkülömbségi érték abszolultértéke: telítettség TV = D min Y A fényerı a világosságjel értékével egyenlı.

3. A numerikus megoldás rövid ismertetése Mint már volt róla szó, a program 3 fı részre tagolódik: Színkülömbségi vektorok forgatása: A színinformációt továbbításuk elött U-V síkba konvertálják. A továbbítás kvadratúra modulációval történik: c( t ) = V cos( ω t + 90 ) + U cos( ωt) = A cos( ωt + ϕ) Ebbıl kell kinyerni aztán a megfelelı értékeket, hogy az Y érték tudatában kiszámíthatóak legyenek az R-G-B értékek: f = c cos( ωt + α ) V cos( α 90 ) + U cos( α ) = U cos( α ) + V sin( ( t ) ( t) α Tehát α értékétıl függıen kaphatjuk meg az U és a V jelet. Ezekbıl számolhatóak a színkülömbségi jelek, melyekbıl kifejezhetı az R és B összetevı. A G összetevı a (G-Y) jelbıl számítható, mely függ a meghatározott (R-Y)-(B-Y) értékektıl: (G-Y) = -( 0.3(R-Y) + 0.11(B-Y) ) / 0.59 ) Mivel mint látható, a (G-Y) lineárkombinációja az (R-Y) és (B-Y) jeleknek, lehetıség van (G-Y) az U-V síkból való közvetlen meghatározására is. Ehhez nem kell mást tudni, mint a megfelelı α értéket, és egy konstans szorzót. Az értékek meghatározásának lépései: (G-Y)-ra merıleges tengelyre igaz: 0 = -0.3(R-Y)/0.59 0.11(B-Y)/0.59 Ez tovább: 0 = -0.3 * 1.14 * V /0.59 0.11 * 2.03 * U /0.59 = -0.58V 0.38U 0.38 Tehát ennek a tengelynek a meredeksége: β = arctg( ) = 33. 23 0.58 Tehát: α = β 90 = 123. 23 A konstans meghatározása: (G - Y) = k A = k Ucos( α ) + k V sin( α ) Másrészrıl: ( G Y ) = -0.3 * 1.14 * V /0.59 0.11 * 2.03 * U /0.59 Így kiszámítható: k = 0.692 Tehát: (G-Y) = 0.692 * (U cos(α) + V sin(α)),ahol most α = -123.23

TV analóg szabályzása: A következı három érték beállítását jelenti: telítettség, kontraszt, fényerı. Ezek pontos jelentése: D = ( (telítettség)*(x-y) + Y ) * (kontraszt) + (fényerı),ahol X a 3 alapszín (R-G-B) egyike Kijelzési karakterisztika: Kétféleképp vezérelhetı a kijelzés: Egy elsıfokú polinommal leírható karakterisztika Olyan egyedi karakterisztika, melyben az értéktartományon belül kijelölhetı egy pont, melyhez a karakterisztika valamilyen hatványkitevınek megfelelıen hozzásimul/távolodik tıle, míg a végpontok helye nem változik. 4. A numerikus megoldó mag Ebben a bekezdésben a fontosabb felhasznált függvények, és azok funkciói kerülnek ismertetésre. A pontos mőködést nem részletezem, a függvények használatához kellı segítséget nyújtanak a bennük elhelyezett kommentek. h3m2bmp.m: Saját függvény, mely a képet leíró 3 színösszetevı mátrix alapján a 24-bites bmp szintaktikának megfelelıen létrehoz egy képfájlt. A képfájl sor és oszlopszámát 4-el oszthatóra csonkítja, mivel bmp fájlok esetében 4 bájtal oszthatónak kell lennie egy sornak. Ezt az eredeti szabvány bizonyos mennyiségő kitöltı adattal oldja meg. KompRotation.m: Az U-V mátrixok alapján az ismertetett módon, egy adott vektorra (α, és abszolultérték!) vetíti le az U-V sík adott pontjait. Resize.m: Adott mátrixot átméretez a kapott méretekre(x,y): x*y darab át nem lapolódó, az egész képet lefedı tartományokra bontja a képet, és ezeket átlagolja. Ezzel a módszerrel a Nyquist feltételeknek tökéletesen megfelelı mintavételezést hajtunk végre. VikImread.m: Dialógus ablak segítségével 24-bites bmp, és jpg képfájlokat olvas be.

VikRGBkonvert: A már ismertetett számítások nagy részét végzi. 3 mátrixot kap minimum. Megfelelı beállítás mellett ezek értékkészletét limitálhatja 0 és 1 között. Továbbá megadható neki egy plusz mátrix bizonyos számítások elvégzéséhez. Elvégzett mőveletek: R-G-B reprezentációból Y-U-V reprezentáció váltás Y-U-V -> R-G-B Y-U-V-(G-Y) (U,V) -> R-G-B Karakterisztika módosítás, (lsd. 6. bekezdés) Televíziós analóg szabályzás megvalósítása 5. Grafikus felhasználói felület A grafikus felület célja annyi, hogy az elkészített fügvények mőködése szemléltethetı legyen. Minden funkciót nem lehetett belesőríteni. Az RGBdialog.m fájl tartozik ide. A feladat megoldása nagy számításigényő, mivel a transzformációkat a kép minden pixelén el kell végezni, és a változtatások hatását közvetlenül jeleníti meg. Ezért a kiválasztott kép betöltése után azt mindenképp át kell méretezni. Ez a méret 150x200-ra van beállítva. A méret választása úgy történt, hogy a mőködés egy P4 Celeron(2400)/512 MB-os gépen megfelelı legyen. Szintén a gyorsabb mőködés érdekében a kód meglehetısen redundáns, elkerülve ezzel a gyakori, és sok paramétert igénylı függvényhívásokat. A program kis memória foglalása érdekében, a betöltött eredeti képet uint8 formátumba konvertálja. A paraméterek beállításához csak a már említett kicsinyített képet használja, ezért elég ezt double formátumba tárolni. A Preview és Save funkciók használatakor a számításokat az ezekbıl az uint8 típusú képekbıl visszakonvertált double típusú képeken végzi a program, a beállított paramétereknek megfelelıen. A függvények közti paraméterátadásra a handles struktúrát használtam, úgy ahogy azt a Matlab Help ajánlja.

6. A program használata Load: A Load gomb segítségével egy dialogus ablakban lehet tallózni. A betölthetı képformátumok: bmp (24-bit), jpg, Tif. Betöltés után megjelenik a kép 4:3 képarányban, nyújtva. Új kép betöltésénél a csúszkák default értékre állnak be míg a paraméterértékek nem változnak (kivéve a forgatásra vonatkozó paraméterek). Kép betöltésekor, annak mérete 4 egész számú többszörösére lesz konvertálva x és y irányban is. Ez azért fontos mert a mentésre saját függvényt használok, amely a bmp szintaxisnak megfelelı fájlt csak ilyen képekbıl képes generálni

Színkülömbségi vektorok forgatása blokk: 3 érték állítható be csúszka segítségével +/- 180 fokos értéktartomány között. A beállított érték egy textboxban jelenik meg egészre kerekített formában. A számításokhoz mindig ezek a kiírt paraméterek kerülnek felhasználásra. Ezen értékek a színkülömbségi értékek kinyeréséhez használt szögeket határozzák meg. Három mőködési funkció van: Kötött: α nem tetszılegesen állítható, hanem a 3 színkülömbségi vektorra vonatkozó érték egymáshoz képest kötöt viszonyban vannak. Ha U = 0 akkor V = 90 és (G-Y) (U,V) = -123.23 2D: α értéke tetszılegesen beállítható az U és V komponensekhez, és a (G-Y) komponens ezekbıl kerül meghatározásra Független: mindhárom komponensre tetszılegesen, egymástól függetlenül meghatározható az α értéke TV analóg szabályzás blokk: A használt telítettség, kontraszt és fényerı értékek állíthatóak be. Szintén textboxban jelennek meg a beállított értékek, és ezek kerülnek felhasználásra. Mindegyik jellemzınél lehetıség van beállítani, hogy a 3 alapszínösszetevı függetlenül állíthatók legyenek az értékek, vagy azonosak legyenek azok. Kijelzési karakterisztika blokk: Lineáris: minden színösszetevıre megadható egy szint, ami fixen marad, míg a karakterisztika meredeksége azt határozza meg, hogy milyen meredekdéggel haladjon át ezen a ponton a kijelzési karakterisztika egyenese. Logaritmikus: 3 pont helye fix (0, végkitérés-255, és a beállított szint). Ezen pontok között a karakterisztika jellegét a beállított kitevı határozza meg: a szint /255-0 tartományt a 0-255 tartományba konvertálja a program, elvégzi a hatványozást, majd visszakonvertálja az eredeti tartományba; míg a 0- szint /255 tartományt a 0-(-1) tartományba konvertálja, (-1)-el szorozza, elvégzi a hatványozást, majd megfelelıen visszaalakítja. Így adott ponthoz lehet simítani/széthúzni a karakterisztikát. Pontos mőködés és a Kis kép : Kép betöltése után az ablakban a forgatás blokk paramétereinek megfelelı kép jelenik meg. Az itt módosított kép lesz a következı fokozat bemenete, és így tovább. Az ablak alatt található gombok a megfelelı blokk mőveleteit végzik el az adott blokk bemenetén lévı képen, a blokkban beállított paramétereknek megfelelıen, és ezt jeleníti meg. Így a megfelelı mőködés érdekében, elöbb menjünk végig ezeken az Out gombokon, mert külömben pl. a Preview segítségével megjelenített kép nem egyezik majd meg a kis ablakban láthatóval, mert pl. a karakterisztikát vezérlı blokk bemenete nincs frissítve megfelelıen.

Preview/Save funkciók: A beállított paramétereknek megfelelıen lehet az eredeti képet módosítani, és ezt megjeleníteni, vagy egy dialógusablak segítségével menteni a megfelelı helyre. A mentés 24-bites bmp formátumú. (A megfelelı paraméterbeállítások érdekében az *Out gombokon végig kell menni a már említett sorrendben.)