POLITECHNIKA BIAŁOSTOCKA

Wielkość: px
Rozpocząć pokaz od strony:

Download "POLITECHNIKA BIAŁOSTOCKA"

Transkrypt

1 POLITECHNIKA BIAŁOSTOCKA WYDZIAŁ INFORMATYKI KATEDRA Systemów Informacyjnych i Sieci Komputerowych PRACA MAGISTERSKA Segmentacja wybranych obrazów magnetycznych nanostruktur Paweł Trzciński Praca napisana pod kierunkiem Prof. dr hab. inż. Waldemara Rakowskiego BIAŁYSTOK

2 SPIS TREŚCI I. Wstęp...4 II. Omówienie obrazów magnetycznych nanostruktur Ogólny wstęp na temat obrazów cyfrowych Magnetooptyczna mikroskopia Rodzaje uzyskiwanych obrazów i ich charakteryzacja Dendryty Igły Fronty Cząstki...13 III. Krótki przerywnik na temat LabVIEW i IMAQ...14 IV. Poprawa kontrastu i odszumianie Poprawa kontrastu Normalizacja Rozciąganie Odszumianie Filtr medianowy Filtr uśredniający Salt and Pepper Usuwanie cząstek...30 V. Segmentacja Podstawowe metody Progowanie Clustering Entropy Metric Moments Interclass Variance Rozrost obszarów Wykrywanie krawędzi Bazujące na modelu fizycznym Przegląd implementacji Implementacja w Borland C++ Builder

3 2.2. Implementacja funkcji na potrzeby kompilacji do DLL Wirtualne instrumenty LabVIEW SZCZEGÓŁOWY OPIS IMPLEMENTACJI W C GaussFit Iteracyjny podział obszaru obrazu Rekursywny podział obszaru obrazu Rozrost obszarów Wyznaczanie punktów początkowych dla struktury Wyznaczanie punktów początkowych dla tła Łączenie obrazów punktów początkowych tła i struktury Wyznaczanie wartości dla warunku przyłączenia Rozrost warunkowy Rozrost agresywny...65 VI. Podsumowanie...67 VII. Literatura...68 DODATEK A - Przykładowe histogramy...70 DODATEK B - Przykładowe obrazy Dendryty Igły Fronty Cząstki...79 DODATEK C - Wyniki segmentacji Iteracyjny podział obszaru obrazu Rekursywny podział obszaru obrazu Rozrost obszarów

4 I. Wstęp Obróbka obrazów cyfrowych jest dziedziną szybko rozwijająca się w dzisiejszych czasach. Jednym z jej centralnych problemów stanowi segmentacja. Istnieje wiele technik i sposobów segmentacji obrazów opierających się na całym wachlarzu technik. Celem pracy jest ogólna prezentacja technik segmentacji oraz stworzenie własnych algorytmów, które w zadowalający sposób zanalizują obrazy będące obiektem zainteresowań wielu fizyków. Obrazy te to nanostruktury magnetyczne uzyskiwane metodą magnetooptycznej mikroskopii przy wykorzystaniu efektu Kerra. Szczególną własnością takich obrazów jest to, ze z natury są one bimodalne, a więc segmentacja zostanie sprowadzona w tym przypadku do wyodrębnienia z obrazu dwóch klas obiektów: tła i struktury. Struktury domen magnetycznych można podzielić na kilka grup, które mają różne właściwości co uwidacznia się w ich kształcie i rozkładzie przestrzennym. Specyficzny sposób uzyskiwania tych obrazów sprawia, że potrzebne są także narzędzia, które usuwałyby duże szumy na nich występujące. Ważnym też problemem jest nierównomierność oświetlenia przez lampę mikroskopu, co uwidacznia się na obrazach jako kierunkowy zanik kontrastu. Oprócz standardowej mediany, w pracy przedstawione zostały dodatkowo dwa algorytmy, z których jeden jest filtrem wysokich częstości zwanym Salt n Pepper. Drugi, to filtr uśredniający pomijający pewną ilość skrajnych wartości w otoczeniu punktu. W pracy zaimplementowany został szereg autorskich algorytmów służących binaryzacji, poprawie kontrastu, usuwaniu szumów itp., których wyniki przedstawione są za pomocą serii obrazów. Zostały one tak wybrane spośród wielu możliwych, aby najlepiej oddawały specyfikę danych wejściowych. Podstawową funkcją dla segmentacji jest dopasowanie dwóch krzywych Gaussa do histogramu, aby wydobyć z nich informację na temat rozkładu tła i struktury domen w przestrzeni jasności pikseli. Problem nierównomiernego oświetlenia był omijany poprzez dzielenie obrazu na szereg mniejszych obszarów, gdzie różnice w kontraście nie były tak drastyczne. Prosty algorytm segmentacji metodą rozrostu obszarów został stworzony jako alternatywa dla progowania histogramu. Implementacja wykonana została w C++. Celem programistycznym było stworzenie funkcji. które mogłyby być wykorzystywane przez środowisko NI LabVIEW. Jest to specyficzne środowisko, w którym programowanie przebiega w diametralnie odmienny 4

5 sposób niż sekwencyjne wykonywanie linii kodu. Z tego powodu w pracy ujęty został jego krótki opis. W celu testowania kodu zbudowany został prosty program przy użyciu Borland C++ Builder, który jednak nie jest finalnym produktem, więc nie należy przykładać wielkiej wagi do jego funkcjonalności, wyglądu czy poprawności działania. Praca ta oparta została głównie na doświadczeniach autora jako programisty oraz implementacjach najpopularniejszych metod analizy numerycznej. 5

6 II. Omówienie obrazów magnetycznych nanostruktur 1. Ogólny wstęp na temat obrazów cyfrowych Przez obraz rozumiemy macierz lub zbiór macierzy pewnych wartości. W zależności w jakim systemie kolorów obraz jest przedstawiany, można te wartości traktować jako np. natężenie jasności pewnego koloru (RGB, CMY) lub spektrum, nasycenie i wartość (HSV). Interpretacji takich macierzy jest wiele. W tej pracy jednak jako obraz przyjęta została pojedyncza macierz, której wartości będą interpretowane jako natężenie światła białego. Macierz ta będzie uzyskiwana za pomocą kamery CCD. Zasadniczą częścią kamery jest światłoczuły detektor CCD, który stanowi krzemowa płytka. Składa się ona z trzech warstw: krzemowego podłoża, izolatora i metalowych elektrod. Całość podzielona jest na niewielkie, niezależne elementy zwane pikselami. Stanowią one najmniejszą jednostkę zbierającą fotony. Ich rozmiar wynosi zazwyczaj od kilku do kilkudziesięciu μm 2. Do każdego piksela doprowadzona jest elektroda. Pod wpływem przyłożonego do niej napięcia powstaje studnia potencjału, w której może zgromadzić się pewien ładunek. Padający w tym miejscu foton dzięki efektowi fotoelektrycznemu wewnętrznemu przekazuje swoją energię elektronowi, który przemieszcza się w kierunku dodatnio naładowanej elektrody i zostaje tam zatrzymany. Na końcu każdego rzędu pikseli znajdują się elektrody, przez które po zakończeniu ekspozycji zgromadzony sygnał (w postaci elektronów) trafia do wyjściowego wzmacniacza i opuszcza chip. [1] Wynika stąd fakt, że przetwarzane obrazy będą przedstawiane w odcieniach szarości. Zakres wartości macierzy może być dowolny, ale dodatni, a jej maksymalna wielkość zdeterminowana jest ilością pikseli na matrycy kamery CCD. Obrazy opisywane w tej pracy a uzyskane techniką magnetooptycznej mikroskopii będą miały zazwyczaj rozdzielczość 1300x1030. Ich reprezentacja w pamięci będzie jednak jednowymiarową tablicą. Żaden szczególny powód takiego sposobu reprezentacji nie istnieje, jednak nie ma też żadnych przeciwwskazań do tego. Zawsze bowiem dostępne będą rozmiary obrazu, dzięki czemu będzie można w łatwy sposób przejść z przestrzeni jednowymiarowej w dwuwymiarową. Chociaż wyświetlanie obrazu odbywa się w 256 odcieniach szarości, to tablica jest typu zmiennoprzecinkowego, a obraz przed każdym wyświetleniem powinien być normalizowany do 256. Powodem nadania takiego typu jest to, że obrazy uzyskiwane za pomocą kamery przechowywane są najczęściej w formacie SPE, dla którego piksel jest reprezentowany przez 6

7 czterobajtową liczbę typu unsigned int. Operacje przeprowadzane na obrazach wcale nie muszą dawać wyniku zawsze całkowitego, więc dobrze jest mieć zmiennoprzecinkową tablicę, żeby nie tracić żadnych informacji. Analiza obrazu w tej pracy będzie miała na celu binaryzację (segmentację, progowanie) obrazu. Binaryzacja rozumiana jest jako, takie przekształcenie obrazu, żeby wszystkie piksele posiadały jedną z dwóch możliwych wartości. Tutaj będą to 0 i 255 z oczywistych powodów. Segmentacja odbywać się będzie, w większości przypadków, w drodze analizy histogramu. Histogram jest to wykres częstości występowania wartości z określonego przedziału. Tutaj ponownie ze względu na ilość wyświetlanych pikseli będzie użytych 256 przedziałów. Każdorazowo po operacji progowania będzie używany filtr cząstek, który zlikwiduje nieprawidłowe przypisanie danych pikseli do tła lub struktury. Rysunek 1. Przykładowy histogram. 2. Magnetooptyczna mikroskopia Magnetooptyczna mikroskopia jest to metoda uzyskiwania obrazów, która korzysta z magnetooptycznego efektu Kerna. Efekt ten polega na tym, iż liniowo spolaryzowane światło o określonej długości fali, odbite od namagnesowanej próbki zmienia swą polaryzację na eliptyczną. Kierunek rzeczywistej i urojonej składowej polaryzacji zależy bezpośrednio od wielkości namagnesowania próbki, dzięki czemu można uzyskać informację o kierunku momentów magnetycznych w np. ultracienkiej próbce. Trzy rodzaje efektu Kerna prezentuje rysunek poniżej. 7

8 Rysunek 2. Trzy rodzaje efektu Kerna. Zależnie od wzajemnego położenia namagnesowania i płaszczyzny padania światła wyróżnia się (od lewej): polarny, wzdłużny, poprzeczny. Aparatura wykorzystana do uzyskania obrazów prezentowanych w tej pracy korzystała z polarnego efektu Kerna. Rysunek 3. Schemat mikroskopu wykorzystującego magnetooptyczny, polarny efekt Kerna.[1] Źródłem oświetlenia tym układzie jest lampa ksenonowa emitująca światło białe. Wiązka światła po przejściu przez filtr podczerwieni, przechodzi następnie przez polaryzator, gdzie zostaje liniowo spolaryzowana. Kierowana jest dalej poprzez pryzmat światłodzielący na obiektyw i dalej na próbkę, skąd po odbiciu wraca poprzez obiektyw, pryzmat światłodzielący, analizator, biegnie do kamery CCD (Charge Coupled Devices), gdzie jest rejestrowany obraz struktury. Sygnał z kamery doprowadzany jest do sprzężonej z komputerem karty graficznej Frame Grabber. Karta przetwarza sygnał analogowy na cyfrowy zapisywany następnie w pamięci komputera. 8

9 Sterowanie impulsami pola H oraz procesem rejestracji obrazów domenowych odbywa się za pośrednictwem komputera przy wykorzystaniu specjalnych programów napisanych w NI LabView. [2] Natężenie światła, które rejestruje kamera zależne jest od kąta między płaszczyzną polaryzacji a osią analizatora. Domeny magnetyczne, to obszary o różnym namagnesowaniu, przy czym w każdej domenie, dla danego materiału kierunki momentów magnetycznych są takie same. I = I cos 2 t + I0 ( α + ϕ) Prawo Mallusa wyrażające natężenie spolaryzowanego światła po przejściu przez analizator; I t natężenie światła pochodzące od tła, I 0 natężenie światła przed przejściem przez analizator, I natężenie światła po przejściu przez analizator; α kąt miedzy płaszczyzną polaryzacji a osią analizatora; φ przesunięcie fazowe Zgodnie z powyższym wzorem, idealny histogram uzyskanego obrazu powinien wyglądać następująco: Rysunek 4. Wyidealizowany histogram obrazu magnetycznych domen; I 1 linia punktów tła; I 2 linia punktów struktury Tego tupu histogramu nie da się uzyskać na żadnej aparaturze. Obie linie będą zawsze rozmyte. W pracy tej, zakłada się, iż rozmycie to ma postać rozkładu normalnego. 9

10 Rysunek 5. Spodziewany histogram równomiernie oświetlonego obrazu Obrazy bardzo często mogą być nierówno oświetlone. W pracy tej algorytmy segmentacji będą uwzględniały ten defekt. Typowe histogramy obrazów przedstawione są w Dodatku A. Przedstawione tam zostały histogramy, do których, z dobrym przybliżeniem, można dopasować krzywe Gaussa i na tej podstawie ustalić wartość progu. 3. Rodzaje uzyskiwanych obrazów i ich charakteryzacja Obrazy struktur magnetycznych możemy podzielić na cztery rodzaje ze względu na kształt struktur. Są to: dendryty, igły, fronty i cząstki. Każdy z rodzajów tych obrazów wymaga oddzielnego podejścia zarówno jeśli chodzi o odszumianie jak i segmentację. Istnieje jednak wiele cech wspólnych, które mogą być rozpatrywane ogólnie. Obrazy każdego z typów są mocno zaszumiane, a przez szum rozumiemy to, iż jasność pikseli zmienia się mocno od punktu do punktu. Trójwymiarowy, przykładowy wykres takiej powierzchni przedstawiono poniżej. Rysunek 6. Wykres powyższy przedstawia jak zwykle wygląda w skali szarości jasność pikseli na powierzchni, która powinna być uznana za jednolitą. 10

11 Tego typu szum jest niezależny od struktury umieszczonej na obrazie; jest przypadkowy. Ponieważ rozłożony jest on równomiernie w przedziale wysokich częstotliwości, to słusznym byłoby zastosować jakiś dolnoprzepustowy filtr. Można to zrobić zarówno w przestrzeni częstotliwości jak i amplitud obrazu. Jednak z powodu dużego obciążenia obliczeniowego jakie pociąga za sobą użycie transformacji Fourierowskiej lepsze wydają się operacje prowadzone bezpośrednio na poziomach jasności. Najlepszymi filtrami tego typu są filtr uśredniający, medianowy, gaussowski oraz filtr typu salt and pepper. W pracy tej zbudowane zostały trzy algorytmy: Mediana, Średnia oraz Salt&Pepper. Należy jednak być ostrożnym w stosowaniu filtrów, mogą one spowodować uszkodzenia w kształcie struktur, przez co analiza numeryczna binarnych obrazów da błędne wyniki. Poza tym wszystkie obrazy mogą zawierać zanieczyszczenia magnetyczne, których jednak nie da się usunąć inaczej niż ręcznie w programie typu PhotoShop. Przykładowe obrazy znajdują się w Dodatku B. Rysunek 7. Fragment obrazu dendrytów z widocznymi zanieczyszczeniami. Najpoważniejszym problemem przy segmentacji jest nierównomierność oświetlenia danego obrazu. Jest to związane z tym, iż układ optyczny zazwyczaj skupia więcej światła w środku obrazu niż na zewnątrz, przez co progowanie całego obrazu daje błędne wyniki. Ponieważ rozkład struktury i tła nie jest zawsze równomierny na całej powierzchni, to ustalenie progu może nastręczyć poważnych problemów. 11

12 (a) (b) Rysunek 8. (a) Obraz próbki bez przyłożonego pola magnetycznego, równoważne to jest zdjęciu tła. Widać tutaj wyraźnie różnice w oświetleniu. (b) Obraz struktury igieł. Poziome naprzemienne pasy jaśniejsze i ciemniejsze przy globalnym progowaniu mogą spowodować zamazanie struktury 3.1.Dendryty Dendryty, to najbardziej skomplikowane, jeśli chodzi o kształt, struktury. Mają one postać rozrastającego się drzewa, co rzeczywiście można zauważyć obserwując ich kształt przy zmieniającym się polu magnetycznym. Problem występujący tutaj, to bliskie sąsiedztwo między dendrytami i tzw. punkty siodłowe. Przez bliskie sąsiedztwo dendrytów rozumiemy takie położenie elementów struktury, że niemal się stykają, choć po segmentacji powinny być rozdzielone. Punkty siodłowe, to podwyższenie jasności niewielkiego obszaru znajdującego się pomiędzy końcami dwóch dendrytów. (a) (b) Rysunek 9. (a) Przykład Bliskiego sąsiedztwa struktur. Widoczny wąski pas tła jest szerokości około 10 punktów. (b) Przykład punktu siodłowego; widoczne wyraźne podwyższenie jasności pomiędzy dwoma dendrytami, które należy rozdzielić. 12

13 3.2.Igły Igły, to struktura, której front posiada szereg szpiczastych wypustek, które są równoległe. Szerokość jak i długość poszczególnych igieł może być różna. Często przy małej szerokości może występować problem zamazywania się granicy pomiędzy poszczególnymi igłami. Również ich końce, o szerokości nawet jednego piksela, są bardzo czułe na poziom progowania jak i na działanie filtrów takich jak mediana. W przypadku igieł występuje lekkie rozmycie kierunków igieł, a także nie zawsze proste granice ich występowania, co często utrudnia ich późniejszą analizę. Rysunek 10. Fragment frontu struktury igłowej. Czerwoną linią zaznaczono granice jasnego obszaru. Widać tu niewielki rozrzut w kierunkach, a także różnorodność długości i szerokości wypustek. 3.3.Fronty Są to struktury nie wyróżniające się niczym szczególnym. Ich kształtu są mało skomplikowane, a progowanie najłatwiejsze. Częste postrzępienie frontów i oddzielne wysepki wysokich jasności występują przypadkowo i nie można im przypisać jakiejkolwiek regularności. Z powodu niewielkiej złożoności kształtu używanie filtrów nie zmienia charakterystyki struktury. 3.4.Cząstki Tent typ obrazów charakteryzuje się występowaniem na całej powierzchni dużej ilości niewielkich obiektów. W rzeczywistości są to najczęściej dendryty, lecz na tyle małe, że zastosowanie nawet najsilniejszego obiektywu nie ujawnia ich rzeczywistej struktury. Także bardzo mocno postrzępione fronty można uznać za obraz cząstek, właśnie z tego powodu, iż cząstki nie są oddzielnymi obiektami fizycznymi, a jedynie małymi dendrytami lub centrami nukleacji struktury. 13

14 III. Krótki przerywnik na temat LabVIEW i IMAQ LabVIEW[3,4] jest graficznym środowiskiem programowania stworzonym przez National Instruments z myślą o naukowcach i inżynierach. Algorytmy tworzone są w języku nazwanym G. Programy tworzy się w nim za pomocą ikon połączonych ze sobą przewodami. Każdy taki przewód odpowiada za przepływ danych. Każda funkcja (w postaci ikony) posiada odpowiednie połączenia na wejściu odpowiadające za wprowadzanie danych wejściowych do funkcji oraz połączenia na wyjściu, którymi są wyprowadzane dane wyjściowe z funkcji. Wykonywanie programu zdeterminowane jest więc, nie poprzez wykonywanie kolejnych linijek kodu, a poprzez kolejność przepływu danych pomiędzy kolejnymi ikonami nazywanymi Virtual Instruments, w skrócie VI. Dla użytkownika dostępnych jest szereg funkcji do komunikacji z różnymi urządzeniami (GPIB, RS232, IrDA, Bluetooth, Ethernet, itd.), ponad 400 funkcji matematycznych, a także podstawowe struktury programowe takie jak pętle, warunki, sekwencje, zmienne lokalne i globalne. Dla programisty ważna jest możliwość tworzenia własnych VI, a także korzystanie z zewnętrznych bibliotek funkcji, np. DLL. Istnieje tutaj też obsługa zdarzeń, wątków, rejestru Windows i wiele jeszcze innych możliwości. Interfejs buduje się poprzez wstawianie kolejnych elementów z podręcznego menu. Dostępne są przeróżne przyciski, pokrętła, wskaźniki, tabele, wykresy itp. (a) (b) Rysunek 11. Przykład prostego programu w LabVIEW. Panel (a) służy jako interfejs do wprowadzania i wyświetlania danych. Diagram jest to miejsce, gdzie konstruuje się program. W tym przypadku jest to prosta operacja matematyczna " x * y" = ( x + y)* y2. 14

15 National Instruments stworzyło pakiet IMAQ[5] służący do obróbki obrazów. Zawiera on szereg funkcji, wykonujących najprzeróżniejsze operacje, takich jak: zarządzanie obrazami, ich wielkością, formatem, operacje otwierania i zapisywania najpopularniejszych formatów( BMP, JPG, PNG, TIFF), dostarczanie wskaźników do struktury obrazu, które można wykorzystać w zewnętrznych bibliotekach, zarządzanie kolorami poszczególnych pikseli jak i całych kolumn oraz wierszy, wyświetlanie obrazów w oknach, jak i tworzenie bardziej zaawansowanych przeglądarek graficznych, tworzenie histogramów, ich wyrównywanie, skalowanie itp., binaryzacja zarówno automatyczna jak i ręczna, nakładanie dowolnych masek dowolnej wielkości na obrazy, operacje morfologiczne ( filtry cząstek, budowanie szkieletów, statystyka cząstek itp.), szereg operatorów dla całych jak i fragmentów obrazów (dodawanie, mnożenie, operatory logiczne, itd.), transformacja Fouriera i odwrotna transformacja Fouriera. Jest to tylko część dostępnych możliwości. Najważniejsze tutaj są możliwości segmentacji obrazów. Wszystkie one opierają się jednak na analizie histogramu całego obrazu. A są to: Manual Threshold segmentuje obraz na podstawie podanych przez użytkownika wartości minimalnej i maksymalnej, pomiędzy którymi teoretycznie powinna znajdować się jakaś struktura, Auto Threshold: Clustering binaryzuje obraz bazując na statystycznej metodzie nazwanej po angielsku Clustering, Auto Threshold: Entropy binaryzuje obraz stosując metodę maksymalnej entropii, Auto Threshold: Metric, Auto Threshold: Moments metoda, która zakłada, że obraz jest binarny i próbuje go odtworzyć, Auto Threshold: Inter Variance metoda opierająca się na klasycznej, statystycznej technice zwanej Interclass variance 15

16 Dokładniejszy opis tych metod znajduje się w Rozdziale V. Ponieważ cały obraz jest analizowany przy użyciu tej samej metody, to niezależnie od jej skomplikowania, nie wykona ona dobrej segmentacji na obrazach ze zmienną jasnością tła (zmiennym oświetleniem obrazu). Dlatego też powstała ta praca, aby spróbować zaimplementować algorytmy, które opierałyby się na lokalnej analizie, a czas tej analizy byłby do przyjęcia dla użytkownika. 16

17 IV. Poprawa kontrastu i odszumianie Jak już była mowa wcześniej, większość obrazów uzyskanych metodą magnetooptycznej mikroskopii zawiera szum wysokiej częstotliwości równomiernie rozłożony na całej powierzchni. Jeśli obraz zapisany jest w formacie, który narzuca całkowite wartości poziomów szarości, to mogą także pojawić się problemy z kontrastem i chociaż informacja jest zawarta w obrazie, to często struktura może nie być dobrze widoczna dla obserwatora. Poprawa kontrastu i odszumianie, to dwie operacje, które są wstępem to segmentacji. Nie są jednak koniecznością. 1. Poprawa kontrastu 1.1. Normalizacja Obrazy wyświetlane są najczęściej w 256 poziomach szarości. Jednak nie za każdym razem ten przedział jest wykorzystywany w całości. Ponadto, dla obrazów przechowywanych w formacie SPE, każdy piksel jest opisywany czterobajtową, dodatnią liczbą całkowitą, co oznacza, że wartości mogą być dowolnej wielkości (nawet do 2 32 = ). Także wszelkie operacje filtrowania przeprowadzane są, w tej pracy, w przestrzeni 256 poziomów jasności. Normalizacja jest prostą operacją, którą wykonuje poniższa funkcja: extern "C" declspec (dllexport) void normalize(float *image, long width, long height){ float min,k; int i,size=width*height; } min=imageminvalue(image,size); k=255/(imagemaxvalue(image,size)-min); for(i=0;i<size;i++) image[i]=k*(image[i]-min); Jak widać jest to proste przekształcenie liniowe do przestrzeni 256 poziomów jasności. 1.2.Rozciąganie Dopasowanie dwóch krzywych Gaussa jest tym lepsze, im bliżej rozwiązania znajdują się zadane warunki początkowe algorytmu dopasowania. Warunki te zostały dobrane z założeniem, iż znaczące części krzywych wypełniają w pełni 256-wartościowy przedział jasności. Istnienie zanieczyszczeń na obrazie może powodować, iż większość informacji zgromadzi się w niewielkim przedziale jasności. Reszta miejsc w histogramie zawierać będzie pomijalnie małe wartości pochodzące od tych właśnie zanieczyszczeń. 17

18 Algorytm rozciągania histogramu powstał dla automatycznego przypisania zanieczyszczeniom przynależności do tła lub struktury. Funkcja Stretch została napisana w celu rozciągnięcia histogramu w granicach minimalnej i maksymalnej wartości jasności obrazu. Oczywiście, żeby tego dokonać, należy zmienić wartości pewnych punktów. Poniżej deklaracja funkcji: extern "C" declspec (dllexport) void stretch(float *im, long width, long height, float border, float percent) Funkcja, przyjmując dwa parametry: border i percent, wyznacza na ich podstawie punkty, których wartości zmieniane są na maksymalne lub minimalne. Border mówi o tym, punkty z jakiego przedziału licząc od minimum i maksimum będą przydzielone bezpośrednio do tła i struktury. Ponieważ przedział jasności może być zupełnie dowolny, to podana wartość jest podawana z myślą o tym, iż obraz posiada jasności od 0 do 255. Dopiero w funkcji jest to przeskalowane na odpowiednią liczbę. Percent służy do pomijania nieistotnych części histogramu. Wielkość tę, użytkownik wyraża w procencie jasności, gdzie 100%, to wartość maksymalna histogramu. Algorytm działa w ten sposób, że bada, zaczynając od minimalnej wartości, jaka jest ilość punktów w histogramie dla danej jasności. Kiedy napotka ilość punktów, która jest większa niż zadany procent,to ustala nową wartość minimalną, a punkty o jasności poniżej minimum uznawane są za tło (przypisuje się im nową, minimalną wartość). Adekwatnie dzieje się z maksimum. Na rysunkach przedstawionych poniżej, ta ostatnia operacja jest przedstawiona inaczej, ale mając na uwadze, że obraz przechowywany jest w formacie zmiennoprzecinkowym, to nie ma znaczenia jak zostanie wykonana ta operacja. Funkcja realizuje to w sposób opisany w tekście z powodu krótszego czasu wykonywania całej operacji (lepiej podstawić wartości do kilku punktów niż zmieniać wartości około 80% punktów). Wiele obrazów posiada zanieczyszczenia magnetyczne, które realizują się w postaci plam, cętek itp. z bardzo dużą lub bardzo małą jasnością. Operacja rozciągania eliminuje wpływ tych zanieczyszczeń na skład obrazu przypisując je do struktury lub tła. 18

19 (a) (b) (c) (d) Rysunek 12. Etapy działania algorytmu funkcji Stretch: (a) Histogram oryginalnego obrazu z widocznym zagęszczeniem informacji w środku przedziału. Wartości punktów z przedziałów wyznaczonych przez parametr border zostaną zmienione na Min lub Max. (b) Jeśli wartości histogramu będę mniejsze od pewnej zadanej wielkości zostaną przypisane do struktury lub tła. (c) Histogram będzie rozciągnięty (za pomocą liniowego przekształcenia) tak aby wypełniał cały przedział jasności. (d) Otrzymany histogram. (a) (b) Rysunek 13. Oryginalny obraz (a) i wynik działania funkcji Stretch (b). Czerwoną barwą zaznaczone zostały obszary, uznane za zanieczyszczenia i przypisane do struktury lub tła. 19

20 Poniżej ważniejsze fragmenty kodu funkcji: extern "C" declspec (dllexport) void stretch(float *im, long width, long height, float border, float percent){ float min, max, k, k1,br, brhi, brlo, brhlo, brhhi; int i,size=width*height; double *hist, maxh; //get maximum and minimum points min=imageminvalue(im,size); max=imagemaxvalue(im,size); //calculate new borders br=border*(max-min)/256; brlo=min+br; brhi=max-br; /.../ //make pixels below brlo black and above brhi white for(i=0;i<size;i++) if(im[i]<brlo) im[i]=min; //male robimy jako min else if(im[i]>brhi) im[i]=max; //duze robimy jako max //build histogram of 256 values /.../ //pass the insignificant values in the histogram for(i=1;i<=254;i++) if(hist[i]>(maxh*percent/100)){ brhlo=i; break; } for(i=254;i>=1;i--) if(hist[i]>(maxh*percent/100)){ brhhi=i; break; } //calculate new borders that include insignificant values brlo=brhlo/k1+min; brhi=brhhi/k1+min; } //make insignificant values black or white for(i=0;i<size;i++) if(im[i]<brlo) im[i]=brlo; //male robimy jako brlo else if(im[i]>brhi) im[i]=brhi; //duze robimy jako brhi Jak widać funkcja nie jest skomplikowana obliczeniowo. Poniżej pokazane są przykładowe wyniki działania Stretch. Patrząc na histogramy należy mieć na uwadze, iż oba oryginalne obrazy zapisane były w formacie TIFF, przez co ilość poziomów jasności była niewielka, a rozciągnięte histogramy mają postać oddzielnych linii. 20

21 (a) (b) Rysunek 14. Wynik działania funkcji Stretch na obraz (a). Widoczne zanieczyszczenie na obrazie lewym nie pozwala aby zajmował on całą przestrzeń poziomów jasności. Po zastosowaniu funkcji histogram wypełnia cały przedział (b). (a) (b) Rysunek 15. Przypadek, gdzie zanieczyszczenie obrazu (a) uniemożliwia dostrzeżenie struktury pomimo iż jest ona obecna. Uwidacznia się ona po zastosowaniu opisywanej funkcji (b). 21

22 2. Odszumianie Jednym z poważniejszych problemów, występujących przy segmentacji obrazów magnetycznych nanostruktur, jest ich duże zaszumienie i specyfika tych szumów. Specyfika ta objawia się w dużych zmianach jasności na przestrzeni pojedynczych punktów. Zniwelowanie lub przynajmniej ograniczenie takiego zaszumienia jest bardzo istotne w przypadku struktur o wielkości kilku pikseli lub w przypadku, kiedy odległości pomiędzy poszczególnymi elementami struktury są małe. (a) (b) Rysunek 16. Przykład typowo zaszumianego obrazu (a). Na widocznym fragmencie widoczne jest wyraźnie, że o obszarze struktury i tła decyduje niewielka przewaga jasnych i ciemnych punktów. Po prawej (b) histogram całego obrazu, gdzie większość punktów umieszczone jest w pojedynczej krzywej Gaussa. Automatyczne progowanie takiego obrazu, na podstawie dopasowania dwóch krzywych Gaussa do histogramu, jest często niewykonalna, ponieważ dopasowanie daje tylko jedną krzywą. Binaryzacja za pomocą innych technik (rysunek poniżej) także daje niezadowalające wyniki, ponieważ granice obszarów nie są dobrze określone, a zaszumienie znaczne. 22

23 (a) (b) (c) (d) (e) (f) Rysunek 17. Przykład zastosowania technik automatycznego progowania dostępnych w pakiecie NI IMAQ. Obrazy przed progowaniem nie były odszumiane (za wyjątkiem ostatniego). Metody te zostaną omówione w kolejnym rozdziale. (a) Oryginalny obraz (b) Wynik działania metody Clustering (c) Wynik działania metody Entropy (d) Wynik działania metody Metric (e) Wynik działania metody Moments (f) Wynik działania metody Moments po uprzednim zastosowaniu filtru uśredniającego 23

24 Powstaje potrzeba zastosowania filtrów odszumiających, które nie tylko ograniczą drastyczne punktowe zmiany jasności, ale także pozwolą na skuteczną eliminację niewielkich cząstek po wybraniu punktu progowania. Napisane zostały trzy funkcje, które w założeniu niwelują niedoskonałości badanych obrazów. Wszystkie bazują na badaniu bezpośredniego otoczenia punktu. 2.1.Filtr medianowy Jest to podstawowy filtr, który wyrównuje znaczne nierówności jasności pikseli w zależności od ich bezpośrednich sąsiadów. Funkcja wykonująca filtrowanie ma następującą deklarację: extern "C" declspec (dllexport) void mediana(float *im, long width, long height, long masksize); Odszumiony obraz zwracany jest wskaźnikiem, którym podany został obraz wejściowy. Rysunek 18. Ogólny schemat blokowy funkcji realizującej filtr medianowy dla pojedynczego punktu obrazu. Algorytm jest bardzo prosty. Dla każdego punktu tworzona jest tablica bezpośrednich sąsiadów, następnie jest ona sortowana (sortowanie bąbelkowe), a środkowy piksel jest przepisywany na to samo miejsce do nowego obrazu. Wynikiem jest obraz, którego jasności nie wahają się lokalnie tak mocno jak w oryginale. Zagrożeniem dla obrazu jest to, iż dla małych różnic między jasnością struktury i tła, mediana może zniwelować różnicę między nimi. Wadą tego filtru jest także to, że aby uzyskać dobrze wygładzony obszar, należałoby użyć maski większej niż 3x3. Ponieważ już maska o rozmiarze 3x3 może uszkodzić ważne informacje zawarte w obrazie, to wynika stąd, że ten typ odszumiania nie jest właściwy dla obrazów domen, szczególnie, że stosowanie większych masek znacznie zwiększa czas obliczeń. Poniżej ważniejsze elementy kodu funkcji: extern "C" declspec (dllexport) void mediana(float *im, long width, long height, long masksize){ int i,j,k,l,m,n,il, zamiana; long s; float *im1,tab[225],pom; im1=(float*)malloc(width*height*sizeof(float)); s=masksize;s=(s-1)/2; 24

25 for(i=0;i<width;i++){ for(j=0;j<height;j++){ //for every pixel il=0; for(k=-s;k<=s;k++) for(l=-s;l<=s;l++) if((i+k)>=0)if((i+k)<width)if((j+l)>=0)if((j+l)<height) //if neighbour is in picture area tab[il++]=im[(i+k)+(j+l)*width]; //bubble sort - no need for more sophisticated zamiana=1; n=0; while(zamiana!=0){ /.../ } }} //choose median im1[i+j*width]=tab[(il-1)/2]; } //put new one in the old one for(i=0;i<width*height;i++) im[i]=im1[i]; free(im1); Rysunek 19. Przykładowy wynik działania filtru medianowego z maską 3x3. Obraz wynikowy (po prawej) został poddany operacji rozciągania histogramu w celu poprawy kontrastu. 2.2.Filtr uśredniający Filtr ten każdemu kolejnemu punktowi przypisuje wartość średniej jasności jego otoczenia. W czasie obliczania wartości średniej pewna ilość punktów o skrajnych wartościach nie jest brana pod uwagę. Ilość ta, to wielkość sąsiedztwa minus 1. Z założenia filtr ten ma usuwać najbardziej znaczące różnice jasności sąsiadujących punktów. Rysunek 20. Ogólny schemat działania filtru uśredniającego dla jednego punktu. 25

26 Poniżej ważniejsze elementy kodu funkcji: template <class imagetype, class histtype, class sizetype> void ImageStuff<imageType,histType,sizeType>::srednia (imagetype *im, const sizetype width, const sizetype height, const sizetype masksize){ int i,j,k,l,m,n,il,zamiana; sizetype s; imagetype *im1,tab[225],pom; im1=(imagetype*)malloc(width*height*sizeof(imagetype)); s=masksize;//edit1->text.toint(); s=(s-1)/2; for(i=0;i<width;i++){ for(j=0;j<height;j++){ //for every pixel il=0; for(k=-s;k<=s;k++) for(l=-s;l<=s;l++) if((i+k)>=0)if((i+k)<width)if((j+l)>=0)if((j+l)<height) //if neighbour is in picture area tab[il++]=im[(i+k)+(j+l)*width]; //bubble sort - no need for more sophisticated /.../ }} //SREDNIA BEZ SKRAJNYCH pom=0; for(m=(masksize-1);m<(il-masksize-1);m++) pom+=tab[m]; im1[i+width*j]=pom/(2*(masksize-1)); } //put new one in the old one /.../ 26

27 (a) (b) (c) (d) Rysunek 21. Wynik działania filtru uśredniającego z różnymi wielkościami sąsiedztwa. Oryginalny obraz (a) posiada unimodalny histogram. Pozostałe obrazy powstały w wyniku działania filtrem uśredniającym o wielkości sąsiedztwa kolejno: (b) - 3, (c) - 5 i (d) - 7. Wraz ze wzrostem otoczenia obraz zatraca więcej szczegółów, a na histogramie wyraźniej zaznaczają się dwie krzywe. 27

28 2.3.Filtr Salt and Pepper Algorytm tego rozwiązania bazuje na prostej metodzie, która mówi, ze jeśli punkt różni się znacznie jasnością od swego sąsiada, to należy podnieść lub obniżyć jasność tego punktu o określoną wartość. Rozwiązanie to, choć dość proste w założeniu daje zaskakująco dobre efekty, co nie znaczy, że nie jest pozbawione swoich wad. Przedstawiona tutaj funkcja jest autorską implementacją algorytmu T.Crimmins a usuwającego szum typu salt and pepper.[6] Rysunek 22. Crimmins speckle removal algorithm. Funkcja wykonująca operacje przedstawione na powyższym rysunku jest zdeklarowana jak poniżej: extern "C" declspec (dllexport) void sandp(float *im, long width, long height, float difference, float change) Dostarczane parametry, to oczywiście tablica obrazu, jego szerokość oraz wysokość. Parametr difference określa o ile może różnić się jasność punktu od jasności swojego sąsiada aby jego wartość była zmniejszona lub powiększona o wielkość przekazaną przez parametr change. Algorytm ten bardzo dobrze usuwa szumy występujące w segmentowanych obrazach, lecz ma też tę wadę, że w konkretnych przypadkach może mocno zniekształcić obraz i silnie rozciągać pojedyncze kolory wzdłuż prostej nachylonej do brzegu pod kątem 45 stopni. Efekt 28

29 ten jest szczególnie widoczny kiedy porówna się działanie na obszary obrazu, gdzie kontrast jest niewielki. Przykład poniżej: (a) (b) Rysunek 23. Przykład niepożądanego rozmazywania struktury przez filtr Salt and Pepper. Obraz (a) zmienia swój kontrast w sposób ciągły z góry na dół. Obraz (b) został uzyskany poprzez poddanie oryginału działaniu omawianego filtra oraz funkcji stretch (w celu poprawienia kontrastu). Widoczne jest wyraźne rozmazywanie dendrytów. Pokazane wyżej efekty sprawiają, że wykorzystanie tego algorytmu może spowodować problemy przy automatycznej binaryzacji obrazów, które wykazują zróżnicowanie oświetlenia. Poniżej ważniejsze elementy kodu funkcji: extern "C" declspec (dllexport) void sandp(float *im, long width, long height, float difference, float change){ int i,j,size=width*height; float *im1; im1=(float*)calloc(size,sizeof(float)); for(i=1;i<(width-1);i++)for(j=1;j<(height-1);j++){ //N pepper if((im[i+(j-1)*width]-im[i+j*width])>=difference) im1[i+j*width]=im[i+j*width]+change; else im1[i+j*width]=im[i+j*width]; 29

30 //S pepper if((im[i+(j+1)*width]-im[i+j*width])>=difference) im1[i+j*width]=im[i+j*width]+change; else im1[i+j*width]=im[i+j*width]; } //przepisz im1 do im for(i=0;i<size;i++) im[i]=im1[i]; } for(i=1;i<(width-1);i++)for(j=1;j<(height-1);j++){ //N salt if((im[i+j*width]-im[i+(j-1)*width])>=difference) im1[i+j*width]=im[i+j*width]-change; else im1[i+j*width]=im[i+j*width]; //S salt if((im[i+j*width]-im[i+(j+1)*width])>=difference) im1[i+j*width]=im[i+j*width]-change; else im1[i+j*width]=im[i+j*width]; } //przepisz im1 do im for(i=0;i<size;i++) im[i]=im1[i]; /...to co wyżej dla każdej pary sąsiadów.../ free(im1); Rysunek 24. Przykładowy wynik działania filtru Salt and Pepper. Obraz wynikowy (po prawej) został poddany operacji rozciągania histogramu w celu poprawy kontrastu. 2.4.Usuwanie cząstek Po dokonaniu binaryzacji obrazy, pozostaje na nim zazwyczaj szereg cząstek, które można zinterpretować jako binarny szum. Ten szum jest wynikiem nakładania się na siebie obszarów występowania klas obiektów na histogramie. W celu eliminacji tych cząstek powstał algorytm, który usuwa te niepożądane elementy, kończąc proces segmentacji. Funkcja implementująca ten algorytm posiada następującą deklarację: extern "C" declspec (dllexport) void removeparticles(float* im, const long width, const long height, const long areasize); 30

31 gdzie areasize mówi o wielkości boku kwadratu, w którym musi zmieścić się cząstka aby została uznana za dostatecznie małą do usunięcia. Funkcja realizując usuwanie cząstek skanuje cały obraz usuwając najpierw pojedyncze, wyizolowane piksele, kolejno zwiększając maskę, aż rozmiar tej osiągnie wielkość zadaną przez areasize. Przykładowo: jeśli zadana wielkość obszaru wyniesie 4, to najpierw obraz będzie przeskanowany kwadratem 1x1, następnie 2x2, 3x3, a na końcu cały obraz zostanie przeskanowany kwadratem o rozmiarze 4x4. Cząstka zostanie tylko wtedy usunięta, jeśli mieści się cała w obszarze kwadratu oraz jeśli zewnętrzny jego obszar jest czarny (należy do tła). (a) (b) (c) (d) (e) (f) Rysunek 25. Przykład działania algorytmu usuwania cząstek dla areasize równego 5. Obszary pogrubione, to zewnętrzne krawędzie kwadratu filtra. Jasne pole oznacza tło, a ciemne strukturę. (a) Ta sytuacja nie będzie miała nigdy miejsca, ponieważ cząstka o rozciągłości 2x2 zostanie wcześniej usunięta, przy skanowaniu obrazy kwadratem o wymiarze 2x2. (b) Kolejny przykład, gdzie cząstki mogą być usunięte już przez mniejsze filtry o wymiarach 4x4 i 1x1. (c) Do usunięcia tej cząstki wymagany jest filtr o rozmiarze 5x5. (d) Ta cząstka nie zostanie usunięta, ponieważ zawsze zaistnieje sytuacja, że będzie ona wypełniać część krawędzi obszaru. (e) W tym położeniu kwadratu cząstka nie zostanie usunięta, lecz po obniżeniu jego położenia o 1, zostanie spełnione kryterium niewypełnionych krawędzi i cząstka zostanie zamieniona w tło. (f) Ta cząstka nie zostanie usunięta, ponieważ zawsze zaistnieje sytuacja, że będzie ona wypełniać część krawędzi obszaru. Poniżej ważniejsze elementy kodu funkcji: void removeparticles(float* im, const long width, const long height, const long areasize){ int i,j,a,k,l,d; int black4,black,pom; long size=width*height; ////usun czastki for(a=1; a<=areasize; ++a){ //petla wielkosci maski for(i=0; i<width; i=i+1+d) for(j=0; j<height; j=j+1+d){ //petle polozenia ////sprawdzwy dla danego polozenia czy ma obwodke czarna (nie wliczmy rogow) 31

32 black4=0; //czy wszystkie linie czarne //gorna linia if((j-1)>=0){ //czy gorna linia w obrazie pom=(j-1)*width; black=1; //czy linia czarna for(k=i; k<(i+a); k++){ //petla gornej linii k - polozenie x if(k<width) //czy linia nie wychodzi poza obszar if(im[k+pom]!=0) {black=0; break; } } if(black==1) ++black4; }else ++black4; //dolna linia if((j+a)<height){ //czy dolna linia w obrazie /.../ }else ++black4; //lewa linia if((i-1)>=0){ //czy lewa linia w obrazie black=1; //czy linia czarna pom=i-1; for(k=j; k<(j+a); k++){ //petla lewej linii k - polozenie y if(k<height) //czy linia nie wychodzi poza obszar if(im[pom+k*width]!=0) {black=0; break; } } if(black==1) ++black4; }else ++black4; //prawa linia /.../ ////kasujemy srodek if(black4==4){ //jesli obwodka czarna, to zamienmy wszystko w srodku tez na czern for(k=i; k<(i+a); k++) //petla x if(k<width) //jesli w obrazie for(l=j; l<(j+a); l++) //petla y if(l<height) //jesli w obrazie im[k+l*width]=0; //wyzeruj }}} d=a; //mozemy przeskoczyc ten obszar }else{ d=0; //nie przeskakujemy obszaru ////inwersja for(i=0; i<size; i++) im[i]=255-im[i]; ////usun czastki /.../ } ////inwersja for(i=0; i<size; i++) im[i]=255-im[i]; 32

33 (a) (b) Rysunek 26. Przykład zastosowania filtra usuwającego binarny szum z obrazu. Na górze (a) obraz przed usuwaniem cząstek, na dole (b) po operacji usuwania kwadratem 20x20. 33

34 V. Segmentacja Segmentacja jest podstawową operacją, dzięki której można analizować ilościowo obrazy. Przez segmentację rozumie się podział występujących na obrazie obiektów na dwie lub więcej klas. W przypadku tej pracy będą to tylko dwie klasy, które po obróbce obrazu będą reprezentowane przez dwa, różne poziomy jasności pikseli. 1. Podstawowe metody Metody segmentacja obrazów monochromatycznych bazują zazwyczaj na dwóch podejściach: nieciągłości i jednorodności. Podejście bazujące na nieciągłości ma zwyczaj segmentowania obrazu znajdując wyizolowane punkty, linie i krawędzie na podstawie dużych zmian w jasności pikseli. Podejścia bazujące na jednorodności zawierają progowanie, rozrost regionów, łączenie i rozłączanie regionów Progowanie Progowanie jest jedną z najczęstszych technik używanych do segmentacji obrazów. Metoda ta, polega na znalezieniu takiej wartości, że punkty o wartości większej należą do tła/struktury, a punkty o wartości mniejszej do struktury/tła. Optymalną wartością będzie oczywiście taka, która minimalizuje błędne przypisanie punktu do którejś z klas. Dlatego też, jeśli założyć, że histogram jest sumą dwóch krzywych Gaussa, to optymalna wartość progu znajdować się będzie w miejscu przecięcia się dwóch krzywych. (a) (b) Rysunek 27. Wyidealizowane histogramy bimodalne. Punkty optymalnego przecięcia znajdują się w miejscu zaznaczonym czarną linią. 34

35 Jeśli oba wzniesienia nie mają wspólnego obszaru, to progowanie powinno dać idealny wynik. Nakładanie się na siebie krzywych powoduje zaszumienie i przekłamanie obrazu binarnego. Wielkość tego zaszumienia i przekłamania zależy od wielkości obszaru wspólnego. Po operacji progowania należy użyć filtra usuwającego cząstki, które zostały źle sklasyfikowane. W pakiecie NI IMAQ zaimplementowanych jest kilka algorytmów do automatycznego wyznaczania progów Clustering Metoda zaproponowana przez Ridlera [7]. Jest to iteracyjny algorytm, który wybiera jako próg punkt o wartości: μ 1 + μ k = 2, 2 gdzie: μ 1 średnia jasność wszystkich pikseli, których wartość jest mniejsza od k, μ 2 średnia jasność wszystkich pikseli, których wartość jest większa od k Entropy Metoda zaproponowana przez Kapuar, Sahoo i Wonga [8]. Jest to zaadoptowanie teorii informacji dla obróbki obrazów. Tło i struktura są tutaj traktowane jako dwa oddzielne źródła sygnału. Niech: h( i) p ( i) = 255, h( i) i= 0 będzie prawdopodobieństwem wystąpienia piksela o poziomie jasności równym i, gdzie h(i) jest histogramem. Entropia histogramu z jasnościami w przedziale (0;N-1) dana jest formułą: H = i= N 1 i= 0 p( i)ln p( i) 35

36 i mówi o ilości informacji związanej z histogramem w danym przedziale jasności. Wynika stąd, iż entropie dla struktury i tła w obrazie mają postać: H H tłł = struktura i= k i= 0 = p( i)ln p( i) i= 255 i= k + 1 p( i)ln p( i) Algorytm szuka takiej wartości progu, aby entropia całkowita: H = H tłł + H struktura była maksymalna, a więc aby wartość progu dawała maksymalnie dużo informacji zawartej w tle i strukturze Metric W tej metodzie wartość progu k jest tak wybierana aby zminimalizować następujące wyrażenie: k i= = h( i) i= k + 1 h( i) i μ i μ, 2 gdzie: μ 1 średnia jasność wszystkich pikseli, których wartość jest mniejsza od k, μ 2 średnia jasność wszystkich pikseli, których wartość jest większa od k, h(i) histogram Moments Metoda podana przez Tsai a [9]. Próg jest obliczany w ten sposób, ze trzy pierwsze momenty obrazu o poziomach jasności w przedziale (0;255) równają się trzem pierwszym momentom obrazu binarnego. k-ty moment zdefiniowany jest jako: 36

37 255 1 k m k = i h( i), n i= 0 gdzie h(i) jest histogramem Interclass Variance Zaproponowana przez Otsu [10]. Zasada jest podobna jak w iteracyjnym algorytmie Ridlera. Tutaj jednak minimalizuje się ważoną sumę wariancji w obu klasach Rozrost obszarów Segmentacja bazująca na rozroście, dzieleniu i łączeniu obszarów jest popularną techniką [11,12,13]. W pracy tej skupiono się na metodzie bazującej na rozroście obszarów z pewnych punktów początkowych ( seeded region growing ). Działanie algorytmów opartych na rozroście obszarów polega na oznaczeniu początkowych punktów obrazu, mogą to być pojedyncze piksele lub ich grupy, które rozrastają się poprzez iteracyjne łączenie punktów lub obszarów sąsiadujących spełniających pewne kryterium podobieństwa. Zwykle brane są pod uwagę dwa kryteria podobieństwa: sąsiedztwo geometryczne: odległość przestrzenna piksela, który ma zostać przyłączony do obszaru; właściwości kolorymetryczne: odległość w przestrzeni cech związanej z przestrzenią barw lub tekstury pomiędzy pikselem, który ma zostać przyłączony, a obszarem. W swojej pierwotnej formie algorytmy oparte na rozroście obszarów nie spełniają dobrze swojej roli, gdyż wynik segmentacji jest ściśle zależny od wyboru punktów początkowych i kolejności przetwarzania punktów [14], tzn. czy obszary przetwarzane są szeregowo, czy równolegle. Czasami zdarza się, że pewne piksele po zakończeniu przetwarzania nie zostaną przypisane do żadnego z istniejących obszarów, dlatego zwykle w fazie właściwej segmentacji należy wykonać korektę. Do wymienionych tu wad należy zaliczyć jeszcze brak precyzji w wyznaczaniu krawędzi obszarów. Metoda ma wszak dwie niewątpliwe zalety: szybkość działania oraz przejrzystą konstrukcję co daje możliwość budowania licznych wariantów. [15] 37

38 1.3. Wykrywanie krawędzi Wykrywanie krawędzi obszarów opiera się o wykrywanie nieciągłości w poziomach jasności obrazu. Metoda ta stara się znaleźć miejsca, gdzie zmiany w jasności są znaczące. Metody wykrywania krawędzi dzieli się zazwyczaj na dwa rodzaje: sekwencyjne i równoległe. Sekwencyjne znajdowanie krawędzi oznacza, iż decyzja czy punkt jest na granicy obszarów podejmowana jest na podstawie analizy poprzednich punktów. Szereg technik wykorzystujących takie podejście używa technik heurystycznego szukania i dynamicznego programowania. Jakość segmentacji zależy tu silnie od wyboru punktu początkowego. Równoległe szukanie znaczy tyle, że wybór krawędzi zależy tylko od otoczenia punktu, na które stosuje się odpowiednią maskę. Można więc ją stosować naraz do wszystkich punktów Bazujące na modelu fizycznym Mody te wykorzystują fakt dobrej znajomości sposobu otrzymania obrazu i jego idealnej charakterystyki. Dzięki tej wiedzy można numerycznie rozróżniać obszary tła i struktury. Podejście to, będzie stosowane w tej pracy.. Tak jak była mowa wcześniej: histogram obrazu magnetycznej struktury będzie traktowany jako suma dwóch krzywych Gaussa, co znacznie ułatwi ich analizę i rozróżnienie dwóch klas obiektów. 2. Przegląd implementacji Cały projekt prezentowany w tej pracy został napisany na trzy sposoby: 1. Implementacja szablonu klasy wraz z interfejsem użytkownika w Borland C++ Builder 6.0 [16,17,18,19] 2. Implementacja funkcji na potrzeby kompilacji do DLL. 3. LabVIEW VIs używające stworzonych bibliotek DLL. 2.1.Implementacja w Borland C++ Builder 6.0 Zakładam, że czytający prace zna podstawy programowania w tym środowisku, więc nie będę podawał tutaj jego szczegółowego opisu. Program składa się z czterech plików kodu: 38

39 ImageStuff.cpp Implementacja szablonu klasy zawierającej funkcje napisane na potrzeby tej pracy. Lista.cpp Implementacja struktury listy, która używana jest jak kolejka. Potrzebna jest ona dla jednej z metod segmentacji. Unit1.cpp Obsługa interfejsu programu. readspe.cpp Plik główny wywołujący funkcję WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int). Jest on tworzony automatycznie i nie ma potrzeby, zeby programista cokolwiek w nim zmieniał. ImageStuff.cpp jest to implementacja szablonu klasy, której metody są używane do analizy i obróbki obrazów. Deklaracja: template <class imagetype, class histtype, class sizetype> class ImageStuff{ public: ImageStuff(); //konstruktor ~ImageStuff(); //destruktor /*dll*/imagetype imageminvalue(imagetype *table, sizetype size); //największa wartość w tablicy obrazu /*dll*/imagetype imagemaxvalue(imagetype *table, sizetype size); //najmniejsza wartość w tablicy obrazu /*dll*/histtype histminvalue(histtype *table, sizetype size); //największa wartość w tablicy histogramu /*dll*/histtype histmaxvalue(histtype *table, sizetype size); //najmniejsza wartość w tablicy histogramu /*dll*/void normalize(imagetype *im, const sizetype width, const sizetype height); //normalizacja obrazu /*dll*/void stretch(imagetype *im, const sizetype width, const sizetype height, const imagetype border, const imagetype percent); //rozciąganie histogramu /*dll*/void givehistogram(imagetype *image, sizetype x1, sizetype x2, sizetype y1, sizetype y2, int classcount, histtype **hist); //budowa histogramu /*dll*/void mediana(imagetype *im, const sizetype width, const sizetype height, const sizetype masksize); //filtr mediany /*dll*/void srednia(imagetype *im, const sizetype width, const sizetype height, const sizetype masksize); //filtr mediany2 /*dll*/void sandp(imagetype *im, const sizetype width, const sizetype height, const imagetype difference, const imagetype change); //filtr Salt and Pepper /*dll*/histtype Gauss(const imagetype x,const histtype a,const histtype ni, const histtype d); //funkcja Gaussa /*dll*/histtype bigauss(const imagetype x,const histtype a1,const histtype ni1, const histtype d1, const histtype a2,const histtype ni2, const histtype d2); //suma dwóch funkcji Gaussa /*dll*/histtype chi(const histtype *hist,const histtype a1,const histtype ni1,const histtype d1, const histtype a2,const histtype ni2, 39

40 const histtype d2); //funkcja Х 2 dla podwójnego Gaussa /*dll*/histtype bigaussfit(const histtype *hist4,histtype &a1,histtype &ni1,histtype &d1, histtype &a2,histtype &ni2,histtype &d2, const float scale, const imagetype width, int maxiter); //dopasowanie dwóch Gaussów do histogramu /*dll*/void manualthres(imagetype *image, const sizetype width, const sizetype height, const imagetype t); //ręczna binaryzacja /*dll*/void recurthresh(imagetype* im, const sizetype width, const sizetype height, const sizetype minimagesurf, const int maxiter); //rekursywna binaryzacja /*dll*/private: void recurt(imagetype* im, const sizetype x1, const sizetype y1, const sizetype x2, const sizetype y2, const sizetype width, const imagetype tm, const histtype prevchi2, const sizetype minimagesurf, const float scale, const int maxiter);public: /*dll*/void iterthresh(imagetype* im, const sizetype width, const sizetype height, const int count, const int maxiter); //iteracyjna binaryzacja /*dll*/void removeparticles(imagetype* im, const sizetype width, const sizetype height, const sizetype areasize); /*dll*/void regiongrow(imagetype* im, const sizetype width, const sizetype height, const imagetype iterations, const float percent); //binaryzacja na zasadzie rozrostu obszaru // Borland Builder stuff AnsiString strtopath(ansistring str); void openspe(ansistring path1, imagetype **image, sizetype &width, sizetype &height); void opentif(ansistring path1, imagetype **image, sizetype &width, sizetype &height); TStringList* getmsg(); TStringList* geterr(); void clearmsg(); private: // Borland Builder stuff TStringList *msglist; TStringList *errlist; }; Wszystkie metody, z przypiskiem /*dll*/ znalazły się w implementacji dynamicznej biblioteki. Wszystkie te metody wykonują takie same zadania jak funkcje napisane dla DLL. Implementacja w Builderze służy jedynie sprawdzeniu poprawności działania poszczególnych metod, bo końcowym produktem są tak na prawdę VIs. Dlatego też opisany tu zostanie jedynie sposób posługiwania się tym prostym programem, a dokładny opis algorytmów zostanie zaprezentowany później. Dlaczego szablony klas? Otóż standardowo obraz jest przechowywany jako float, histogram jako double, a wielkości jako int. Jeśli jednak zaistniałaby potrzeba użycia tego kodu w np. Visual C++, to wystarczy tylko zmienić typy na np. WORD, BYTE i tym podobne. 40

Filtracja obrazu operacje kontekstowe

Filtracja obrazu operacje kontekstowe Filtracja obrazu operacje kontekstowe Podział metod filtracji obrazu Metody przestrzenne i częstotliwościowe Metody liniowe i nieliniowe Główne zadania filtracji Usunięcie niepożądanego szumu z obrazu

Bardziej szczegółowo

Analiza obrazów - sprawozdanie nr 3

Analiza obrazów - sprawozdanie nr 3 Analiza obrazów - sprawozdanie nr 3 Przekształcenia morfologiczne Przekształcenia morfologiczne wywodzą się z morfologii matematycznej, czyli dziedziny, która opiera się na teorii zbiorów, topologii i

Bardziej szczegółowo

Przetwarzanie obrazów wykład 4

Przetwarzanie obrazów wykład 4 Przetwarzanie obrazów wykład 4 Adam Wojciechowski Wykład opracowany na podstawie Komputerowa analiza i przetwarzanie obrazów R. Tadeusiewicz, P. Korohoda Filtry nieliniowe Filtry nieliniowe (kombinowane)

Bardziej szczegółowo

Przetwarzanie obrazów rastrowych macierzą konwolucji

Przetwarzanie obrazów rastrowych macierzą konwolucji Przetwarzanie obrazów rastrowych macierzą konwolucji 1 Wstęp Obrazy rastrowe są na ogół reprezentowane w dwuwymiarowych tablicach złożonych z pikseli, reprezentowanych przez liczby określające ich jasność

Bardziej szczegółowo

Operacje przetwarzania obrazów monochromatycznych

Operacje przetwarzania obrazów monochromatycznych Operacje przetwarzania obrazów monochromatycznych Obraz pobrany z kamery lub aparatu często wymaga dalszej obróbki. Jej celem jest poprawienie jego jakości lub uzyskaniem na jego podstawie określonych

Bardziej szczegółowo

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab Zygmunt Wróbel i Robert Koprowski Praktyka przetwarzania obrazów w programie Matlab EXIT 2004 Wstęp 7 CZĘŚĆ I 9 OBRAZ ORAZ JEGO DYSKRETNA STRUKTURA 9 1. Obraz w programie Matlab 11 1.1. Reprezentacja obrazu

Bardziej szczegółowo

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wyższa Szkoła Informatyki Stosowanej i Zarządzania Wyższa Szkoła Informatyki Stosowanej i Zarządzania Grupa ID308, Zespół 11 PRZETWARZANIE OBRAZÓW Sprawozdanie z ćwiczeń Ćwiczenie 6 Temat: Operacje sąsiedztwa wyostrzanie obrazu Wykonali: 1. Mikołaj Janeczek

Bardziej szczegółowo

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) LABORATORIUM 5 - LOKALIZACJA OBIEKTÓW METODĄ HISTOGRAMU KOLORU 1. WYBÓR LOKALIZOWANEGO OBIEKTU Pierwszy etap laboratorium polega na wybraniu lokalizowanego obiektu.

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny

Bardziej szczegółowo

9. OBRAZY i FILTRY BINARNE 9.1 Erozja, dylatacja, zamykanie, otwieranie

9. OBRAZY i FILTRY BINARNE 9.1 Erozja, dylatacja, zamykanie, otwieranie 9. OBRAZY i FILTRY BINARNE 9.1 Erozja, dylatacja, zamykanie, otwieranie Obrazy binarne to takie, które mają tylko dwa poziomy szarości: 0 i 1 lub 0 i 255. ImageJ wykorzystuje to drugie rozwiązanie - obrazy

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Analiza i przetwarzanie obrazów

Analiza i przetwarzanie obrazów Analiza i przetwarzanie obrazów Temat projektu: Aplikacja na system Android wyodrębniająca litery(znaki) z tekstu Marcin Nycz 1. Wstęp Tematem projektu była aplikacja na system Android do wyodrębniania

Bardziej szczegółowo

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT. WYDZIAŁ: GEOLOGII, GEOFIZYKI I OCHRONY ŚRODOWISKA KIERUNEK STUDIÓW: INFORMATYKA STOSOWANA RODZAJ STUDIÓW: STACJONARNE I STOPNIA ROK AKADEMICKI 2014/2015 WYKAZ PRZEDMIOTÓW EGZAMINACYJNYCH: I. Systemy operacyjne

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

EXCEL. Diagramy i wykresy w arkuszu lekcja numer 6. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 20

EXCEL. Diagramy i wykresy w arkuszu lekcja numer 6. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 20 Diagramy i wykresy w arkuszu lekcja numer 6 Tworzenie diagramów w arkuszu Excel nie jest sprawą skomplikowaną. Najbardziej czasochłonne jest przygotowanie danych. Utworzymy następujący diagram (wszystko

Bardziej szczegółowo

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów WYKŁAD 1 Analiza obrazu Wyznaczanie parametrów ruchu obiektów Cel analizy obrazu: przedstawienie każdego z poszczególnych obiektów danego obrazu w postaci wektora cech dla przeprowadzenia procesu rozpoznania

Bardziej szczegółowo

Obraz jako funkcja Przekształcenia geometryczne

Obraz jako funkcja Przekształcenia geometryczne Cyfrowe przetwarzanie obrazów I Obraz jako funkcja Przekształcenia geometryczne dr. inż Robert Kazała Definicja obrazu Obraz dwuwymiarowa funkcja intensywności światła f(x,y); wartość f w przestrzennych

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

Diagnostyka obrazowa

Diagnostyka obrazowa Diagnostyka obrazowa Ćwiczenie czwarte Przekształcenia morfologiczne obrazu 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie uczestników kursu Diagnostyka obrazowa z definicjami operacji morfologicznych

Bardziej szczegółowo

Ćwiczenie 6. Transformacje skali szarości obrazów

Ćwiczenie 6. Transformacje skali szarości obrazów Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 6. Transformacje skali szarości obrazów 1. Obraz cyfrowy Obraz w postaci cyfrowej

Bardziej szczegółowo

SEGMENTACJA OBRAZU Wprowadzenie

SEGMENTACJA OBRAZU Wprowadzenie Oprogramowanie Systemów Obrazowania SEGMENTACJA OBRAZU Wprowadzenie Segmentacja obszarów to operacja wydzielenia z obrazu obszarów w oparciu o zdefiniowane kryterium. Głównym uzasadnieniem celowości takiego

Bardziej szczegółowo

Raport. Bartosz Paprzycki xed@mat.umk.pl UMK 2009/2010

Raport. Bartosz Paprzycki xed@mat.umk.pl UMK 2009/2010 Raport Bartosz Paprzycki xed@mat.umk.pl UMK 2009/2010 1. Wykrywanie krawędzi 1.0. Obraz oryginalny 1. 1.1. Sobel. Parametry: domyślne. 1.2. Prewitt. Parametry: domyślne. 1.3. Roberts. Parametry: domyślne.

Bardziej szczegółowo

Przetwarzanie obrazów wykład 6. Adam Wojciechowski

Przetwarzanie obrazów wykład 6. Adam Wojciechowski Przetwarzanie obrazów wykład 6 Adam Wojciechowski Przykłady obrazów cyfrowych i ich F-obrazów Parzysta liczba powtarzalnych wzorców Transformata Fouriera może być przydatna przy wykrywaniu określonych

Bardziej szczegółowo

CECHY BIOMETRYCZNE: ODCISK PALCA

CECHY BIOMETRYCZNE: ODCISK PALCA CECHY BIOMETRYCZNE: ODCISK PALCA Odcisk palca można jednoznacznie przyporządkować do osoby. Techniki pobierania odcisków palców: Czujniki pojemnościowe - matryca płytek przewodnika i wykorzystują zjawisko

Bardziej szczegółowo

Zastosowanie Informatyki w Medycynie

Zastosowanie Informatyki w Medycynie Zastosowanie Informatyki w Medycynie Dokumentacja projektu wykrywanie bicia serca z sygnału EKG. (wykrywanie załamka R) Prowadzący: prof. dr hab. inż. Marek Kurzyoski Grupa: Jakub Snelewski 163802, Jacek

Bardziej szczegółowo

Formaty obrazów rastrowych biblioteki PBM

Formaty obrazów rastrowych biblioteki PBM Formaty obrazów rastrowych biblioteki PBM Reprezentacja obrazu Obrazy pobierane z kamery, bądź dowolnego innego źródła, mogą być składowane na pliku dyskowym w jednym z wielu istniejących formatów zapisu

Bardziej szczegółowo

Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu?

Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu? Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu? Po zainstalowaniu DigitLabu na komputerze otrzymujemy pakiet programów niezbędnych do przygotowania cyfrowych wersji obiektów tekstowych.

Bardziej szczegółowo

Przetwarzanie obrazów wykład 2

Przetwarzanie obrazów wykład 2 Przetwarzanie obrazów wykład 2 Adam Wojciechowski Wykład opracowany na podstawie Komputerowa analiza i przetwarzanie obrazów R. Tadeusiewicz, P. Korohoda Etapy obróbki pozyskanego obrazu Obróbka wstępna

Bardziej szczegółowo

Grafika komputerowa. Zajęcia IX

Grafika komputerowa. Zajęcia IX Grafika komputerowa Zajęcia IX Ćwiczenie 1 Usuwanie efektu czerwonych oczu Celem ćwiczenia jest usunięcie efektu czerwonych oczu u osób występujących na zdjęciu tak, aby plik wynikowy wyglądał jak wzor_1.jpg

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości

Bardziej szczegółowo

i ruchów użytkownika komputera za i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Promotor: dr Adrian Horzyk

i ruchów użytkownika komputera za i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Promotor: dr Adrian Horzyk System śledzenia oczu, twarzy i ruchów użytkownika komputera za pośrednictwem kamery internetowej i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Mirosław ł Słysz Promotor:

Bardziej szczegółowo

Grafika komputerowa. Dla DSI II

Grafika komputerowa. Dla DSI II Grafika komputerowa Dla DSI II Rodzaje grafiki Tradycyjny podział grafiki oznacza wyróżnienie jej dwóch rodzajów: grafiki rastrowej oraz wektorowej. Różnica pomiędzy nimi polega na innej interpretacji

Bardziej szczegółowo

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C. Ustawienia materiałów i tekstur w programie KD Max. 1. Dwa tryby własności materiału Materiał możemy ustawić w dwóch trybach: czysty kolor tekstura 2 2. Podstawowe parametry materiału 2.1 Większość właściwości

Bardziej szczegółowo

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30 Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30 2.3. Model rastrowy Rastrowy model danych wykorzystywany jest dla gromadzenia i przetwarzania danych pochodzących ze skanowania istniejących

Bardziej szczegółowo

Operator rozciągania. Obliczyć obraz q i jego histogram dla p 1 =4, p 2 =8; Operator redukcji poziomów szarości

Operator rozciągania. Obliczyć obraz q i jego histogram dla p 1 =4, p 2 =8; Operator redukcji poziomów szarości Operator rozciągania q = 15 ( p p1 ) ( p p ) 0 2 1 dla p < p p 1 2 dla p p, p > p 1 2 Obliczyć obraz q i jego histogram dla p 1 =4, p 2 =8; Operator redukcji poziomów szarości q = 0 dla p p1 q2 dla p1

Bardziej szczegółowo

Akademia Górniczo - Hutnicza im. Stanisława Staszica w Krakowie. Projekt. z przedmiotu Analiza i Przetwarzanie Obrazów

Akademia Górniczo - Hutnicza im. Stanisława Staszica w Krakowie. Projekt. z przedmiotu Analiza i Przetwarzanie Obrazów 30 czerwca 2015 Akademia Górniczo - Hutnicza im. Stanisława Staszica w Krakowie Projekt z przedmiotu Analiza i Przetwarzanie Obrazów Wykrywanie tablic rejestracyjnych Jagieła Michał IS (GKiPO) Michał Jagieła

Bardziej szczegółowo

Przetwarzanie obrazów wykład 7. Adam Wojciechowski

Przetwarzanie obrazów wykład 7. Adam Wojciechowski Przetwarzanie obrazów wykład 7 Adam Wojciechowski Przekształcenia morfologiczne Przekształcenia podobne do filtrów, z tym że element obrazu nie jest modyfikowany zawsze lecz tylko jeśli spełniony jest

Bardziej szczegółowo

Wykład 4: Statystyki opisowe (część 1)

Wykład 4: Statystyki opisowe (część 1) Wykład 4: Statystyki opisowe (część 1) Wprowadzenie W przypadku danych mających charakter liczbowy do ich charakterystyki można wykorzystać tak zwane STATYSTYKI OPISOWE. Za pomocą statystyk opisowych można

Bardziej szczegółowo

Maskowanie i selekcja

Maskowanie i selekcja Maskowanie i selekcja Maska prostokątna Grafika bitmapowa - Corel PHOTO-PAINT Pozwala definiować prostokątne obszary edytowalne. Kiedy chcemy wykonać operacje nie na całym obrazku, lecz na jego części,

Bardziej szczegółowo

Ćwiczenia z grafiki komputerowej 4 PRACA NA WARSTWACH. Miłosz Michalski. Institute of Physics Nicolaus Copernicus University.

Ćwiczenia z grafiki komputerowej 4 PRACA NA WARSTWACH. Miłosz Michalski. Institute of Physics Nicolaus Copernicus University. Ćwiczenia z grafiki komputerowej 4 PRACA NA WARSTWACH Miłosz Michalski Institute of Physics Nicolaus Copernicus University Październik 2015 1 / 14 Wykorzystanie warstw Opis zadania Obrazy do ćwiczeń Zadania

Bardziej szczegółowo

Zbigniew JERZAK Adam KOTLIŃSKI. Studenci kierunku Informatyka na Politechnice Śląskiej w Gliwicach

Zbigniew JERZAK Adam KOTLIŃSKI. Studenci kierunku Informatyka na Politechnice Śląskiej w Gliwicach Studenci kierunku Informatyka na Politechnice Śląskiej w Gliwicach Program zrealizowany na potrzeby Pracowni Komputerowej Analizy Obrazu i Mikroskopii Konfokalnej w Centrum Onkologii w Gliwicach Gliwice,

Bardziej szczegółowo

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne Metody numeryczne materiały do wykładu dla studentów 7. Całkowanie numeryczne 7.1. Całkowanie numeryczne 7.2. Metoda trapezów 7.3. Metoda Simpsona 7.4. Metoda 3/8 Newtona 7.5. Ogólna postać wzorów kwadratur

Bardziej szczegółowo

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010 Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010 Czym jest Excel 2010 Excel jest programem umożliwiającym tworzenie tabel, a także obliczanie i analizowanie danych. Należy do typu

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne Grafika komputerowa Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności December 12, 2016 1 Wprowadzenie 2 Optyka 3 Geometria 4 Grafika rastrowa i wektorowa 5 Kompresja danych Wprowadzenie

Bardziej szczegółowo

Techniki wstawiania tabel

Techniki wstawiania tabel Tabele w Wordzie Tabela w Wordzie to uporządkowany układ komórek w postaci wierszy i kolumn, w które może być wpisywany tekst lub grafika. Każda komórka może być formatowana oddzielnie. Możemy wyrównywać

Bardziej szczegółowo

MS EXCEL KURS DLA ZAAWANSOWANYCH Z WYKORZYSTANIEM VBA

MS EXCEL KURS DLA ZAAWANSOWANYCH Z WYKORZYSTANIEM VBA COGNITY Praktyczne Skuteczne Szkolenia i Konsultacje tel. 12 421 87 54 biuro@cognity.pl www.cognity.pl MS EXCEL KURS DLA ZAAWANSOWANYCH Z WYKORZYSTANIEM VBA C O G N I T Y SZKOLENIE MS EXCEL KURS ZAAWANSOWANYCH

Bardziej szczegółowo

Rozpoznawanie Twarzy i Systemy Biometryczne

Rozpoznawanie Twarzy i Systemy Biometryczne Filtry Plan wykładu Przegląd dostępnych filtrów Zastosowanie filtrów na różnych etapach pracy systemu Dalsze badania Kontrast i ostrość Kontrast różnica w kolorze i świetle między częściami ś i obrazu

Bardziej szczegółowo

Diagnostyka obrazowa

Diagnostyka obrazowa Diagnostyka obrazowa Ćwiczenie szóste Transformacje obrazu w dziedzinie częstotliwości 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie uczestników kursu Diagnostyka obrazowa z podstawowymi przekształceniami

Bardziej szczegółowo

Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy Instytut Informatyki Uniwersytetu Śląskiego Laborki funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji. Zadania funkcja dodająca dwie liczby;

Bardziej szczegółowo

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka + Plan wykładu Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie 2 Po co obrabiamy zdjęcia Poprawa jasności, kontrastu, kolorów itp. Zdjęcie wykonano w niesprzyjających warunkach (złe

Bardziej szczegółowo

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka + Plan wykładu Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie 2 Wprowadzenie Po co obrabiamy zdjęcia Obrazy wektorowe i rastrowe Wielkość i rozdzielczość obrazu Formaty graficzne

Bardziej szczegółowo

Komputerowe przetwarzanie obrazu Laboratorium 5

Komputerowe przetwarzanie obrazu Laboratorium 5 Komputerowe przetwarzanie obrazu Laboratorium 5 Przykład 1 Histogram obrazu a dobór progu binaryzacji. Na podstawie charakterystyki histogramu wybrano dwa różne progi binaryzacji (120 oraz 180). Proszę

Bardziej szczegółowo

Teoria przetwarzania A/C i C/A.

Teoria przetwarzania A/C i C/A. Teoria przetwarzania A/C i C/A. Autor: Bartłomiej Gorczyński Cyfrowe metody przetwarzania sygnałów polegają na przetworzeniu badanego sygnału analogowego w sygnał cyfrowy reprezentowany ciągiem słów binarnych

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

1 LEKCJA. Definicja grafiki. Główne działy grafiki komputerowej. Programy graficzne: Grafika rastrowa. Grafika wektorowa. Grafika trójwymiarowa

1 LEKCJA. Definicja grafiki. Główne działy grafiki komputerowej. Programy graficzne: Grafika rastrowa. Grafika wektorowa. Grafika trójwymiarowa 1 LEKCJA Definicja grafiki Dział informatyki zajmujący się wykorzystaniem komputerów do generowania i przetwarzania obrazów (statycznych i dynamicznych) oraz wizualizacją danych. Główne działy grafiki

Bardziej szczegółowo

Analiza Statystyczna

Analiza Statystyczna Lekcja 5. Strona 1 z 12 Analiza Statystyczna Do analizy statystycznej wykorzystać można wbudowany w MS Excel pakiet Analysis Toolpak. Jest on instalowany w programie Excel jako pakiet dodatkowy. Oznacza

Bardziej szczegółowo

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie. SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

oraz kilka uwag o cyfrowej rejestracji obrazów

oraz kilka uwag o cyfrowej rejestracji obrazów oraz kilka uwag o cyfrowej rejestracji obrazów Matryca CCD i filtry Bayera Matryca CCD i filtry Bayera Demozaikowanie Metody demozaikowania Tradycyjne metody interpolacyjne (nienajlepsze efekty) Variable

Bardziej szczegółowo

Podstawy OpenCL część 2

Podstawy OpenCL część 2 Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024

Bardziej szczegółowo

KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT

KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT Temat: Zaimplementować system kryptografii wizualnej http://www.cacr.math.uwaterloo.ca/~dstinson/visual.html Autor: Tomasz Mitręga NSMW Grupa 1 Sekcja 2 1. Temat projektu

Bardziej szczegółowo

Dodatek B - Histogram

Dodatek B - Histogram Dodatek B - Histogram Histogram to nic innego, jak wykres pokazujący ile elementów od czarnego (od lewej) do białego (prawy koniec histogramu) zostało zarejestrowanych na zdjęciu. Może przedstawiać uśredniony

Bardziej szczegółowo

Wstęp do GIMP wycinanie obiektu z obrazka, projekt napisu. Rozpoczynamy prace w GIMP-e

Wstęp do GIMP wycinanie obiektu z obrazka, projekt napisu. Rozpoczynamy prace w GIMP-e Rozpoczynamy prace w GIMP-e 1. Odpalamy program GIMP szukamy go albo na pulpicie albo w programach (ikonka programu widoczna w prawym górnym rogu). 2. Program uruchamia się na początku widzimy tzw. Pulpit

Bardziej szczegółowo

AKWIZYCJA I PRZETWARZANIE WSTĘPNE

AKWIZYCJA I PRZETWARZANIE WSTĘPNE WYKŁAD 2 AKWIZYCJA I PRZETWARZANIE WSTĘPNE Akwizycja (pozyskiwanie) obrazu Akwizycja obrazu - przetworzenie obrazu obiektu fizycznego (f(x,y)) do postaci zbioru danych dyskretnych (obraz cyfrowy) nadających

Bardziej szczegółowo

Inteligentna analiza danych

Inteligentna analiza danych Numer indeksu 150946 Michał Moroz Imię i nazwisko Numer indeksu 150875 Grzegorz Graczyk Imię i nazwisko kierunek: Informatyka rok akademicki: 2010/2011 Inteligentna analiza danych Ćwiczenie I Wskaźniki

Bardziej szczegółowo

Narodowe Centrum Badań Jądrowych Dział Edukacji i Szkoleń ul. Andrzeja Sołtana 7, Otwock-Świerk

Narodowe Centrum Badań Jądrowych Dział Edukacji i Szkoleń ul. Andrzeja Sołtana 7, Otwock-Świerk Narodowe Centrum Badań Jądrowych Dział Edukacji i Szkoleń ul. Andrzeja Sołtana 7, 05-400 Otwock-Świerk ĆWICZENIE L A B O R A T O R I U M F I Z Y K I A T O M O W E J I J Ą D R O W E J Zastosowanie pojęć

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem

Bardziej szczegółowo

Instrukcja obsługi programu PowRek

Instrukcja obsługi programu PowRek Instrukcja obsługi programu PowRek środa, 21 grudnia 2011 Spis treści Przeznaczenie programu... 4 Prezentacja programu... 5 Okno główne programu... 5 Opis poszczególnych elementów ekranu... 5 Nowy projekt...

Bardziej szczegółowo

Analiza obrazu. wykład 4. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009

Analiza obrazu. wykład 4. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Analiza obrazu komputerowego wykład 4 Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Filtry górnoprzepustowe - gradienty Gradient - definicje Intuicyjnie, gradient jest wektorem, którego zwrot wskazuje

Bardziej szczegółowo

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie

Bardziej szczegółowo

FORMUŁY AUTOSUMOWANIE SUMA

FORMUŁY AUTOSUMOWANIE SUMA Wskazówki do wykonania Ćwiczenia 1, ocena sprawdzianu (Excel 2007) Autor: dr Mariusz Giero 1. Pobierz plik do pracy. W pracy należy wykonać obliczenia we wszystkich żółtych polach oraz utworzyć wykresy

Bardziej szczegółowo

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 9 AiR III

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 9 AiR III 1 Na podstawie materiałów autorstwa dra inż. Marka Wnuka. Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE Temat: Podstawowe pojęcia z logiki rozmytej Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE Dr inż. Barbara Mrzygłód KISiM, WIMiIP, AGH mrzyglod@ agh.edu.pl 1 Wprowadzenie Sterowanie

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Ćwiczenie 1 Wyznaczanie prawidłowej orientacji zdjęcia słonecznej fotosfery, wykonanego teleskopem TAD Gloria.

Ćwiczenie 1 Wyznaczanie prawidłowej orientacji zdjęcia słonecznej fotosfery, wykonanego teleskopem TAD Gloria. Ćwiczenie 1 Wyznaczanie prawidłowej orientacji zdjęcia słonecznej fotosfery, wykonanego teleskopem TAD Gloria. Autorzy: Krzysztof Ropek, uczeń I Liceum Ogólnokształcącego w Bochni Grzegorz Sęk, astronom

Bardziej szczegółowo

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność

Bardziej szczegółowo

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe FUNKCJA LINIOWA - WYKRES Wzór funkcji liniowej (postać kierunkowa) Funkcja liniowa to funkcja o wzorze: y = ax + b a i b to współczynniki funkcji, które mają wartości liczbowe Szczególnie ważny w postaci

Bardziej szczegółowo

Ćwiczenie 1 Automatyczna animacja ruchu

Ćwiczenie 1 Automatyczna animacja ruchu Automatyczna animacja ruchu Celem ćwiczenia jest poznanie procesu tworzenia automatycznej animacji ruchu, która jest podstawą większości projektów we Flashu. Ze względu na swoją wszechstronność omawiana

Bardziej szczegółowo

Ćwiczenie 2. Przetwarzanie graficzne plików. Wprowadzenie teoretyczne

Ćwiczenie 2. Przetwarzanie graficzne plików. Wprowadzenie teoretyczne Ćwiczenie Przetwarzanie graficzne plików Wprowadzenie teoretyczne ddytywne składanie kolorów (podstawowe barwy R, G, ) arwy składane addytywnie wykorzystywane są najczęściej w wyświetlaczach, czyli stosuje

Bardziej szczegółowo

TP1 - TABELE PRZESTAWNE od A do Z

TP1 - TABELE PRZESTAWNE od A do Z TP1 - TABELE PRZESTAWNE od A do Z Program szkolenia 1. Tabele programu Excel 1.1. Wstawianie tabeli 1.2. Style tabeli 1.3. Właściwości tabeli 1.4. Narzędzia tabel 1.4.1. Usuń duplikaty 1.4.2. Konwertuj

Bardziej szczegółowo

Diagnostyka obrazowa

Diagnostyka obrazowa Diagnostyka obrazowa Ćwiczenie trzecie Operacje na dwóch obrazach 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie uczestników kursu Diagnostyka obrazowa z operacjami jakie możemy wykonywać na dwóch obrazach,

Bardziej szczegółowo

Analiza obrazu. wykład 3. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009

Analiza obrazu. wykład 3. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Analiza obrazu komputerowego wykład 3 Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Binaryzacja Binaryzacja jest jedną z ważniejszych ż czynności punktowego przetwarzania obrazów. Poprzedza prawie zawsze

Bardziej szczegółowo

Zamiana reprezentacji wektorowej na rastrową - rasteryzacja

Zamiana reprezentacji wektorowej na rastrową - rasteryzacja MODEL RASTROWY Siatka kwadratów lub prostokątów stanowi elementy rastra. Piksel - pojedynczy element jest najmniejszą rozróŝnialną jednostką powierzchniową, której własności są opisane atrybutami. Model

Bardziej szczegółowo

Wprowadzenie do MS Excel

Wprowadzenie do MS Excel Wprowadzenie do MS Excel Czym jest Excel? Excel jest programem umożliwiającym tworzenie tabel, a także obliczanie i analizowanie danych. Należy do typu programów nazywanych arkuszami kalkulacyjnymi. W

Bardziej szczegółowo

Metoda Karnaugh. B A BC A

Metoda Karnaugh. B A BC A Metoda Karnaugh. Powszechnie uważa się, iż układ o mniejszej liczbie elementów jest tańszy i bardziej niezawodny, a spośród dwóch układów o takiej samej liczbie elementów logicznych lepszy jest ten, który

Bardziej szczegółowo

Grafika komputerowa. Dr inż. Michał Kruk

Grafika komputerowa. Dr inż. Michał Kruk Grafika komputerowa Dr inż. Michał Kruk Operacje kontekstowe Z reguły filtry używane do analizy obrazów zakładają, że wykonywane na obrazie operacje będą kontekstowe Polega to na wyznaczeniu wartości funkcji,

Bardziej szczegółowo

Plan wykładu. Akcelerator 3D Potok graficzny

Plan wykładu. Akcelerator 3D Potok graficzny Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D

Bardziej szczegółowo

PRACA Z PLIKAMI RAW W COREL PHOTO-PAINT X5 NA PRZYKŁADOWYM ZDJĘCIU

PRACA Z PLIKAMI RAW W COREL PHOTO-PAINT X5 NA PRZYKŁADOWYM ZDJĘCIU PRACA Z PLIKAMI RAW W COREL PHOTO-PAINT X5 NA PRZYKŁADOWYM ZDJĘCIU Nasz tutorial składa się z dwóch części. W pierwszej przedstawiłyśmy krótki opis narzędzi jaki oferuje Corel Draw Photo-Paint X5, natomiast

Bardziej szczegółowo

Technologia Informacyjna

Technologia Informacyjna Technologia Informacyjna dr inż. Paweł Myszkowski arkusz kalkulacyjny Microsoft Excel Arkusz kalkulacyjny Microsoft Excel Przechowywanie danych: Komórka autonomiczna jednostka organizacyjna, służąca do

Bardziej szczegółowo

Analiza danych z nowej aparatury detekcyjnej "Pi of the Sky"

Analiza danych z nowej aparatury detekcyjnej Pi of the Sky Uniwersytet Warszawski Wydział Fizyki Bartłomiej Włodarczyk Nr albumu: 306849 Analiza danych z nowej aparatury detekcyjnej "Pi of the Sky" Praca przygotowana w ramach Pracowni Fizycznej II-go stopnia pod

Bardziej szczegółowo

Badanie rozkładu pola elektrycznego

Badanie rozkładu pola elektrycznego Ćwiczenie 8 Badanie rozkładu pola elektrycznego 8.1. Zasada ćwiczenia W wannie elektrolitycznej umieszcza się dwie metalowe elektrody, połączone ze źródłem zmiennego napięcia. Kształt przekrojów powierzchni

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

Sposoby przedstawiania algorytmów

Sposoby przedstawiania algorytmów Temat 1. Sposoby przedstawiania algorytmów Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły

Bardziej szczegółowo

PRZETWARZANIE OBRAZÓW Sprawozdanie z ćwiczeń. Ćwiczenie 2. Korekcja zniekształceń radiometrycznych

PRZETWARZANIE OBRAZÓW Sprawozdanie z ćwiczeń. Ćwiczenie 2. Korekcja zniekształceń radiometrycznych WyŜsza Szkoła Informatyki Stosowanej i Zarządzania Warsaw School of Information Technology WIT Grupa ID306, Zespół 2 PRZETWARZANIE OBRAZÓW Sprawozdanie z ćwiczeń Ćwiczenie 2 Temat: : Korekcja zniekształceń

Bardziej szczegółowo

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki

Bardziej szczegółowo