Sekwencyjne, Regionalne
Transkrypt
Sekwencyjne, Regionalne
Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] Obrazy sekwencyjne i Operacje regionalne 1 Obrazy ruchome (sekwencyjne) MatLAB pozwala na obsªug¦ obrazów ruchomych zapisanych w formacie *.avi. Do wczytywania sªu»y polecenie: VideoReader(nazwa_pliku) (w starszych wersjach istniaªo polecenie aviread(nazwa_pliku) obsªuguj¡ce formaty AVI, MPG, MPEG, WMV, ASF i ASX). Dane te s¡ zapisywane w postaci wska¹nika do pliku struktur (klatek). Inn¡ przydatn¡ funkcj¡ sªu»¡c¡ do wy±wietlania jest polecenie implay(tablica). Pozwala ono na przegl¡danie tablic i animacji klatka po klatce, przewijanie w przód i tyª, etc. Kolejn¡ funkcj¡ jest montage(tablica, parametry), które wy±wietla wybrane klatki obok siebie. Do zapisu animacji (w starszych wersjach) do pliku sªu»y polecenie movie2avi(animacja, nazwa pliku, parametry). Do najwa»niejszych parametrów nale»y wybór metody kompresji (zale»na od platformy), pr¦dko±¢ (fps) czy jako±¢ kompresji. W nowszych wersjach pakietu MatLAB zmieniono form¦ zapisu i odczytu do pliku. Odbywaj¡ si¦ ona w kilku etapach: ZAPIS 1. Stworzenie obiektu (struktury) przechowuj¡cego nazw¦ pliku oraz parametry zapisu, np. Obiekt = VideoWriter('plik.avi'); Obiekt.FrameRate = 4; 2. Otwarcie pliku do zapisu: open(Obiekt); 3. Zapis kolejnych klatek: writeVideo(obiekt, klatka); 4. Zamkni¦cie obiektu: close(Obiekt); ODCZYT: 1. Stworzenie obiektu do odczytu: Obiekt = VideoReader('plik.avi'); 2. Stworzenie struktury do przechowywania danych: film = struct('cdata',zeros(Obiekt.Height,Obiekt.Width,3,'uint8')); 3. odczyt klatka po klatce (dla wersji 2014b): k=1; while hasFrame(film) film(k).cdata=readFrame(film); k=k+1 end lub dla wersji (2013b): for k=1:Obiekt.NumberOfFrames film(k).cdata=read(Obiekt,k); end Podstawowe informacje o animacji mo»na uzyska¢ poprzez wykonanie polecenia aviinfo(nazwa_pliku) lub mmfileinfo(nazwa_pliku). Podaje ono informacje o wymiarach, kompresji, dacie modykacji, fps czy zastosowanym formacie kodowania. Na gurach g.1-3 przedstawiono funkcje dost¦pne w Image Processing Toolbox dziaªaj¡ce na sekwencjach obrazów, z uwzgl¦dnieniem specycznych ogranicze« (¹ródªo: Mathworks MATLAB - Image Processing Toolbox 6 - User's Guide, p. 2.21-2.23). 1 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 Rysunek 1: 2 copyright: M. Dwornik [email protected] Zbiór funkcji dziaªaj¡cych na obrazach sekwencyjnych Operacje regionalne S¡ to operacje dotycz¡ce pewnego fragmentu (regionu) obrazu. Do podstawowych operacji nale»¡: • wygªadzanie fragmentu obrazu: Polega to na u±rednieniu fragmentu obrazu w oparciu o warto±ci na brzegu danego obszaru. Sªu»y do tego polecenie roifill(obraz, maska lub wspóªrz¦dne). Maska jest to obraz logiczny posiadaj¡cy warto±¢ 1 w miejscu, gdzie ma nast¡pi¢ u±rednienie. Alternatyw¡ mo»e by± podanie dwóch wektorów (odpowiednio x i y) zawieraj¡cych wspóªrzedne naro»ników u±rednianego obszaru. Je»eli jako parametr podany jest tylko obraz, wówczas wybory miejsca u±redniania dokonuje si¦ przy pomocy myszki. • lokalne wyrównywanie histogramu: adapthisteq. • ltracja fragmentu obrazu: Do ltracji fragmentu obrazu sªu»y polecenie roifilt2. Posiada ono dwie mo»liwo±ci skªadni: roifilt2(filtr, obraz, BW) - gdzie ltr to liniowy ltr 2D (np. maska Sobela), a BW to logiczny obraz wskazuj¡cy obszar ltracji. roifilt2(obraz, BW, funkcja), gdzie funkcja to wska¹nik do funkcji, a BW to obraz logiczny. • Do tworzenia maski BW na podstawie wspóªrz¦dnych sªu»y polecenie roipoly(obraz, Xi , Yi ). Je»eli jako argument podany jest sam obraz, obszar jest wybierany przy u»yciu myszki. 2 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] Rysunek 2: Zbiór funkcji dziaªaj¡cych na obrazach sekwencyjnych Rysunek 3: Zbiór funkcji dziaªaj¡cych na obrazach sekwencyjnych 3 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 3 copyright: M. Dwornik [email protected] Operacje na dwóch obrazach S¡ to operacje punktowe, które mo»na podzieli¢ na dwie grupy: 3.1 logiczne Do operacji logicznych, odbywaj¡cych si¦ na ogóª na obrazach logicznych (cho¢ mo»liwe jest uogólnienie do obrazów monochromatycznych). Do podstawowych operacji nale»y: iloczyn logiczny - bitand(L1, L2), suma logiczna - bitor(L1, L2) i suma rozª¡czna bitxor(L1, L2) i ró»nica logiczna - bitand(L1, bitcmp(L2,8)). Dziaªanie tych funkcji na obrazach monochromatycznych przedstawia tab.1. Zalet¡ tych operacji jest fakt, »e nigdy nie przekraczaj¡ one zakresu wej±ciowego. Wyniki operacji logicznych dla obrazów monochromatycznych Tabela 1: L1 (m, n) 138 201 154 3.2 L2 (m, n) 117 224 154 bitand bitor bitxor sub(L1 , L2 ) 7 255 255 130 7 201 23 7 154 154 0 0 Operacje arytmetyczne Do operacji arytmetycznych zaliczamy takie operacje jak: • • • • dodawanie: imadd(L1, L2), odejmowanie: imdiff(L1, L2), warto±¢ bezwzgl¦dna ró»nicy: imabsdiff(L1, L2), odejmowanie z nasyceniem, gdzie warto±ci ujemne s¡ zamieniane na zero: imsubtract(L1, L2) • ±rednia wa»ona: imlincomb(waga1, L1, waga2, L2, ...). Dla wag speªnione muP sz¡ by¢ warunki N i=1 wagai = 1 i ∀i∈N wagai 0 • mno»enie: immultiply(L1,L2 lub liczba) • dzielenie: imdivide(L1,L2) • maksima i minima: max(L1, L2) i min(L1, L2) 4