IPT - AGH
Transkrypt
IPT - AGH
Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] Wprowadzenie do Image Processing Toolbox 1 Operacje I/O Do wczytywania obrazów w MatLABie sªu»y polecenie imread('nazwa_pliku') np. a=imread('cameraman.tif'); Do zapisywania tablic do plików gracznych sªu»y polecenie imwrite(zmienna, 'nazwa pliku', opcje). Opcje s¡ zale»ne od wybranego formatu zapisu obrazu. Szczegóªowe informacje o mo»liwych opcjach zawarte s¡ w help-ie tej funkcji. Do wy±wietlania sªu»y polecenie imshow(zmienna, opcje), np. imshow(a, 'InitialMagnification', 'fit') Dodatkowym poleceniem jest imtool(obraz), które oprócz wy±wietlania obrazu, udo- st¦pnia wiele narz¦dzi: pixel region, distance, image intensity, adjust contrast, choose colormap. Dost¦pne formaty plików to bmp, cur, gif, hdf, ico, jpg, pbm, pcx, pgm, png, pnm, ppm, ras, tif, xwd. 2 Formaty przechowywania obrazu W pakiecie MatLAB obrazy s¡ przechowywane na kilka sposobów: • BIN - macierz binarna (logiczna), przyjmuj¡ca warto±ci true / false • GRAY - macierz poziomów szaro±ci. Warto±ci mog¡ by¢ typu double (0-1), uint8 (0-255) lub uint16. • RGB - potrójna tablica intensywno±ci (3 tablice typu GRAY) • IND - tablica indeksowa (skªada si¦ z 2 cz¦±ci: mapy i legendy), gdzie legenda jest tablic¡ o wymiarze Nx3 (gdzie N - ilo±¢ dost¦pnych kolorów), a mapa jest tablic¡ z numerami kolorów (numerami odpowiednich wersów w legendzie). 3 Formaty kodowania koloru Istnieje wiele sposobów kodowania koloru. Oprócz najpopularniejszego RGB, bazuj¡cego na ludzkim sposobie postrzegania barw czy u»ywanym w drukarkach CMYK, istniej¡ równie» specyczne formaty maj¡ce na ogóª bardzo w¡skie zastosowanie. Generalnie podzieli¢ je mo»na ze wzgl¦du na ilo±¢ tablic (kanaªów) sªu»¡cych do przechowywania pojedy«czego koloru. 1. Pojedy«cza tablica: Gray 2. Potrójna tablica: • RGB (Red, Green, Blue) • YCbCr, zwane YUV (Luminance, Chrominance) • H S V (Hue, Saturation, Value) - oparte o sto»ek: H=0:360; S,V=0:100. • CMY • L∗ a∗ b∗ - (Luminance, a i b) • XYZ • HLS (Hue, Saturation, Lightness) 1 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] 3. Poczwórna tablica: CMYK (Cyan, Magenta, Yellow, Key (black)) 4. n-kanaªowe. Przykªadowe warto±ci kolorów przedstawia tab.1. Tabela GA: 1: kolory Warto±ci XYZ, przykªadowych CMY, CMYK kolorów zostaªy http://www.easyrgb.com/index.php?X=CALC, w wybranych okre±lone natomiast na kodowaniach podstawie HSV, YUV i koloru RGB YIC (UWA- przy na u»yciu podstawie: http://web.forret.com/tools/color.asp) format czarny biaªy czerwony zielony RGB 0, 0, 0 1, 1, 1 1, 0, 0 0, 1, 0 niebieski 0, 0, 1 XYZ 0, 0, 0 95.05, 100, 108.9 41.24, 21.26, 1.93 35.76, 71.52, 11.92 18.05, 7.22, 95.05 CMY 1, 1, 1 0, 0, 0 0, 1, 1 1, 0, 1 1, 1, 0 CMYK 0, 0, 0, 1 0, 0, 0, 0 0, 100, 100, 0 100, 0, 100, 0 100, 100, 0, 0 HSV 0, 0, 0 0, 0, 100 0, 100, 100 120, 100, 100 240, 100, 100 HSL 0, 0, 0 0, 0, 100 0, 100, 50 120, 100, 50 240, 100, 50 YUV 0, 0, 0 100, 0, 0 29.9, -14.7, 61.5 58.7, -28.9, -51.5 11.4, 43.6, -10 YIC 0, 0, 0 100, 0, -62.2 29.0, 59.6, 21.1 58.7, -27.4, -52.3 11.4, -32.1, -31.1 Konwersji pomi¦dzy tymi formatami i typami u»ywa si¦ przy wykorzystaniu funkcji o nazwie typ2typ, np.: rgb2gray() czy ycbcr2rgb(). Dla przykªadu, przeksztaªcenie RGB->YIQ polega na macierzowym mno»eniu macierzy przeksztaªcenia przez wektor RGB. Macierz przeksztaªcenia przedstawiano jest poni»ej. Format YIQ jest powszechnie wykorzystywany przy analizie barwionych szlifów mikroskopowych R 0.299 0.587 0.114 Y I = 0.596 −0.275 −0.321 · G B 0.212 −0.523 −0.311 Q 4 Palety barw Do wy±wietlania palet sªu»y polecenie rgbplot(nazwa(dynamika)). W MatLABie dost¦pne s¡ nast¦puj¡ce palety: • • • • • • • • • • • hsv (Hue, Saturation, Value) Jet - przestawione hsv Hot - ciepªe kolory: czarny, czerwony, »óªty, biaªy Cool - zimne kolory: odcienie bª¦kitu i purpury Gray - odcienie szaro±ci Bone - odcienie niebieskiego Cooper - odcienie miedzi Pink - odcienie ró»u Prism - kolory: zielony, »óªty, czerwony, olet, niebieski ag - kolory: czerwony, biaªy, niebieski, czarny spring, summer, autumn, winter Narzucanie palety barw na gur¦ odbywa si¦ przy u»yciu polecenie colormap( paleta). Narzucenie palety odbywa si¦ po wy±wietleniu obrazu i dotyczy wszystkich obrazów na danej gurze. 2 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 5 copyright: M. Dwornik [email protected] Informacje o obrazie Do wy±wietlania informacji o pliku obrazu: imfinfo('nazwa_pliku'); Innych informacji o obrazie udziela funkcja regionprops(obraz,'all'). Udziela ona o powierzchni, poªo»eniu ±rodka ci¦»ko±ci, etc. W starszych wersjach MatLABa zadania tej funkcji peªni polecenie imfeature. Do wycinania konkretnego fragmentu sªu»y funkcja imcrop(obraz, rect), gdzie rect = [xmin, ymin, szeroko±¢, wysoko±¢]. Nie podanie opcji rect powoduje, wyznaczenie obszaru wycinku poprzez zaznaczenie urz¡dzeniem wskazuj¡cym (np. kursorem myszki). Do uzyskiwania informacji o kolorze pikseli znajduj¡cych si¦ pod lini¡ (lub ªaman¡) sªu»y polecenie linia=improfile(obraz, [x1 x2 ], [y1 y2 ]);. Natomiast do naniesienie owej linii na wy±wietlany obraz sªu»y polecenie line([x1 x2 ], [y1 y2 ],'color', [R G B]); RGB jest kodowane w warto±ciach typu double. Do uzyskiwania informacji o warto±ciach intensywno±ci konkretnego piksela sªu»y polecenie piksel=impixel(obraz, x,y); x-nr kolumny, y - nr wiersza. Dany piksel mo»na zaznaczy¢ np. poleceniem text(x,y, '*', 'color', [R G B]). Nale»y pami¦ta¢ o zmianie kolejno±ci numerowania. Polecenie impixel(obraz,x,y) jest to»same z komend¡ obraz(y,x) w wierszu polece«. 6 Rozdzielczo±¢ przestrzenna Rozdzielczo±¢ przestrzenna deniowana jest na wiele sposobów. Jedna z najcz¦±ciej spotykanych denicji stanowi, »e jest to rozmiar powierzchni jak¡ zajmuje dany piksel (wielko±¢ terenu). W przypadku wydruków i obrazów cz¦sto spotykan¡ miar¡ rozdzielczo±ci przestrzennej jest DPI (dot per inch) czyli ilo±¢ punktów (pikseli) na 1 cal wydruku lub skanu. Do zmiany rozmiaru (a co za tym idzie rozdzielczo±ci) sªu»y polecenie imresize(obraz, [rozmiar], 'metoda');. W MatLABie istniej¡ 3 metody interpolacji: • 'nearest' - najbli»szego s¡siada, • 'bilinear' - interpolacja dwuliniowa, • 'bicubic' - interpolacja kubiczna (dwukwadratowa). 7 Rozdzielczo±¢ barwna Rozdzielczo±¢ poziomów szaro±ci dla obrazów monochromatycznych RL deniowana jest jako (Wróbel & Koprowski): 1 lw − ln = RL P (1) gdzie: lw i ln - wysoki i niski poziom szaro±ci P - liczba naturalna P ∈ {0, 1, 2, ..., 2b − 2, 2b − 1} b - liczba bitów sªu»¡cych do reprezentacji danego poziomu szaro±ci Do zmiany dynamiki obrazu (ilo±ci wy±wietlanych odcieni) sªu»y polecenie imapprox( mapa, legenda, dynamika). Na wej±ciu i wyj±ciu u»ywane s¡ obrazy indeksowane (konwersja rgb2ind,gray2ind). 3