[ Pobierz całość w formacie PDF ]
.Innymi s³owy, w wyniku operacji otrzymujemy obrazmonochromatyczny bez gradacji szaroœci.Wartoœæ progu mo¿e byæ sztywno ustalona lub obliczana dynamicznie.Typowymzastosowaniem dyskryminacji jest tzw.segmentacja, czyli przekszta³canieobrazów z gradacj¹ szaroœci na obrazy monochromatyczne.W przyk³adzie pokazanym na wydruku 15.7 przeprowadzana jest dyskryminacja zu¿yciem progu o wartoœci 127 [5 U¿ycie w programie wartoœci 128 (a nie 127)wynika z zapisu operatorów nierównoœci w podanym powy¿ej wzorze – przyp.t³um.].Jeœli wartoœæ danego piksela jest równa lub wiêksza od progu, jest on„podci¹gany” do poziomu bieli; w przeciwnym przypadku jest „wygaszany” dopoziomu czerni.Wynik przekszta³cenia obrazu oryginalnego (rysunek 15.5)pokazano na rysunku 15.6.Wydruk 15.7.Przekszta³cenie obrazu przez dyskryminacjêvoid __fastcall TForm1::Button11Click(TObject *Sender){int x, y;BYTE* LinePtr;// dyskryminacjafor (y=0; yPicture->Bitmap->ScanLine[y];for (x=0; x 128)LinePtr[x] = 255;elseLinePtr[x] = 0;}}Image1->Refresh();}Rysunek 15.6.Wynik dyskryminacji dla obrazu z rysunku 15.5Okreœlenie wartoœci progu mo¿e okazaæ siê doœæ k³opotliwe i czêsto wymagawczeœniejszej wiedzy na temat obrazu lub poczynienia pewnych za³o¿eñ.Mo¿natak¿e ustalaæ próg na podstawie okreœlonych statystyk obrazu, jak np.œredniawartoœæ piksela, odchylenie standardowe itp., jednak omawianie tych metodwykracza poza zakres naszej dyskusji.Innym przyk³adem przekszta³cenia punktowego jest inwersja obrazu, daj¹ca efekt„negatywu”.Sprowadza siê ona do prostego odejmowania, co pokazano na wydruku15.8.Wydruk 15.8.Inwersja obrazuvoid __fastcall TForm1::Button4Click(TObject *Sender){int x, y;BYTE* LinePtr;// inwersjafor (y=0; yPicture->Bitmap->ScanLine[y];for (x=0; xRefresh();}Wynik inwersji przedstawiono na rysunku 15.7.Jak widaæ, otrzymaliœmy coœ wrodzaju czarno-bia³ego negatywu.Rysunek 15.7.Obraz z rysunku 15.5 po inwersjiPrzekszta³cenia globalne – wyrównanie histogramuPojêcie „przekszta³cenie globalne” (ang.global operation) oznacza, ¿e daneprzekszta³cenie dotyczy globalnych w³aœciwoœci obrazu, tj.parametrówuzyskanych zeñ jako ca³oœci.Typowym przyk³adem transformacji globalnej jestwyrównanie histogramu (linearyzacja dystrybuanty, ang.histogram equalization).Operacja ta pozwala skorygowaæ obrazy, w których na skutek np.z³ych warunkówoœwietlenia zakres wartoœci pikseli jest mniejszy od teoretycznego zakresudynamiki, wynikaj¹cego z liczby bitów na piksel.Efekt ten objawia siêwizualnie w postaci niskiego kontrastu obrazu.Operacjê wyrównania histogramuzademonstrujemy na przyk³adzie zdjêcia przedstawionego na rysunku 15.8 (plikcouple.bmp na p³ycie CD-ROM).Rysunek 15.8.Zdjêcie o niskim kontraœcieHistogram zdjêcia przedstawiono na rysunku 15.9.Reprezentuje on udzia³ liczbypikseli o danym poziomie szaroœci w ca³ej zawartoœci obrazu.Na osi poziomejznajduj¹ siê kolejne wartoœci poziomu szaroœci, zaœ na osi pionowej – liczbapikseli o danym poziomie.Wysokoœæ poszczególnych s³upków histogramu odpowiadawiêc liczbie pikseli o okreœlonym poziomie szaroœci.Jak widaæ z rysunku 15.9,„punkt ciê¿koœci” histogramu przesuniêty jest znacz¹co w lewo, co oznacza, ¿enajwiêkszy udzia³ w obrazie maj¹ punkty ciemne.Rysunek 15.9.Histogram obrazu o ma³ej jaskrawoœci i kontraœciePierwszym etapem operacji wyrównania histogramu jest obliczenie tegoostatniego, czyli ustalenie udzia³u poszczególnych poziomów szaroœci w ca³ymobrazie.Odpowiedni kod zawarto w funkcji TForm::Button10Click()programu IPro.U¿ywana na wydruku 15.9 tablica Histogram ma 256 elementów, z których ka¿dyodpowiada pojedynczemu poziomowi szaroœci (dla 8-bitowej reprezentacji pikselimaksymalna liczba odcieni wynosi 256).Po wyzerowaniu wszystkich elementów(„s³upków”) histogramu obliczamy ich wartoœci w zagnie¿d¿onych pêtlach for.Wartoœci poszczególnych pikseli s¹ tu traktowane jako indeksy, wskazuj¹ce numerelementu tablicy („s³upka”), który nale¿y zwiêkszyæ o jeden.Wydruk 15.9.Obliczenie histogramu obrazu// Inicjalizuj histogram.for (i=0; i
[ Pobierz całość w formacie PDF ]