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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ć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

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

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

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

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

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

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

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

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

WYMAGANIA EDUKACYJNE

WYMAGANIA EDUKACYJNE GIMNAZJUM NR 2 W RYCZOWIE WYMAGANIA EDUKACYJNE niezbędne do uzyskania poszczególnych śródrocznych i rocznych ocen klasyfikacyjnych z INFORMATYKI w klasie II gimnazjum str. 1 1. Algorytmika i programowanie

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

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 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

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

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

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

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

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

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA AMFETAMINY Waldemar S. Krawczyk Centralne Laboratorium Kryminalistyczne Komendy Głównej Policji, Warszawa (praca obroniona na Wydziale Chemii Uniwersytetu

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

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

Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik

Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik Dlaczego obiekty Załóżmy, że mamy napisać program o następującej specyfikacji: 1. Program wyświetla

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

CZWÓRNIKI KLASYFIKACJA CZWÓRNIKÓW.

CZWÓRNIKI KLASYFIKACJA CZWÓRNIKÓW. CZWÓRNK jest to obwód elektryczny o dowolnej wewnętrznej strukturze połączeń elementów, mający wyprowadzone na zewnątrz cztery zaciski uporządkowane w dwie pary, zwane bramami : wejściową i wyjściową,

Bardziej szczegółowo

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory GRAFIKA Rodzaje grafiki i odpowiadające im edytory Obraz graficzny w komputerze Może być: utworzony automatycznie przez wybrany program (np. jako wykres w arkuszu kalkulacyjnym) lub urządzenie (np. zdjęcie

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny semestr III, studia stacjonarne I stopnia Rok akademicki 2015/2016 Pracownia nr 1 (21/23.09.2015) Rok akademicki 2015/2016, Pracownia nr 1 2/22

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

Opis postępowania przy eksportowaniu geometrii z systemu Unigraphics NX do pakietu PANUKL (ver. A)

Opis postępowania przy eksportowaniu geometrii z systemu Unigraphics NX do pakietu PANUKL (ver. A) 1 Opis postępowania przy eksportowaniu geometrii z systemu Unigraphics NX do pakietu PANUKL (ver. A) Przedstawiony poniżej schemat przygotowania geometrii w systemie Unigraphics NX na potrzeby programu

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

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy

Bardziej szczegółowo

Ćwiczenia Skopiować do swojego folderu plik cwiczenia-kl.ii.xls, a następnie zmienić jego nazwę na imię i nazwisko ucznia

Ćwiczenia Skopiować do swojego folderu plik cwiczenia-kl.ii.xls, a następnie zmienić jego nazwę na imię i nazwisko ucznia Temat 23 : Poznajemy podstawy pracy w programie Excel. 1. Arkusz kalkulacyjny to: program przeznaczony do wykonywania różnego rodzaju obliczeń oraz prezentowania i analizowania ich wyników, utworzony (w

Bardziej szczegółowo

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

Pomiar drogi koherencji wybranych źródeł światła

Pomiar drogi koherencji wybranych źródeł światła Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Optoelektroniki i Systemów Elektronicznych Pomiar drogi koherencji wybranych źródeł światła Instrukcja do ćwiczenia laboratoryjnego

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

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć Katalog wymagań programowych na poszczególne stopnie szkolne Matematyka. Poznać, zrozumieć Kształcenie w zakresie podstawowym. Klasa 3 Poniżej podajemy umiejętności, jakie powinien zdobyć uczeń z każdego

Bardziej szczegółowo

Outlier to dana (punkt, obiekt, wartośd w zbiorze) znacznie odstająca od reszty. prezentacji punktów odstających jest rysunek poniżej.

Outlier to dana (punkt, obiekt, wartośd w zbiorze) znacznie odstająca od reszty. prezentacji punktów odstających jest rysunek poniżej. Temat: WYKRYWANIE ODCHYLEO W DANYCH Outlier to dana (punkt, obiekt, wartośd w zbiorze) znacznie odstająca od reszty. prezentacji punktów odstających jest rysunek poniżej. Przykładem Box Plot wygodną metodą

Bardziej szczegółowo

Edytor tekstu MS Word 2003 - podstawy

Edytor tekstu MS Word 2003 - podstawy Edytor tekstu MS Word 2003 - podstawy Cz. 4. Rysunki i tabele w dokumencie Obiekt WordArt Jeżeli chcemy zamieścić w naszym dokumencie jakiś efektowny napis, na przykład hasło reklamowe, możemy wykorzystać

Bardziej szczegółowo

Przetwarzanie obrazu

Przetwarzanie obrazu Przetwarzanie obrazu Przekształcenia geometryczne Obroty Przesunięcia Odbicia Rozciągnięcia itp Przekształcenia geometryczne Obroty Wielokrotność 90 stopni Inne Przekształcenia geometryczne Obroty Wielokrotność

Bardziej szczegółowo

Podstawy przetwarzania obrazów teledetekcyjnych. Format rastrowy

Podstawy przetwarzania obrazów teledetekcyjnych. Format rastrowy Podstawy przetwarzania obrazów teledetekcyjnych Format rastrowy Definicja rastrowego modelu danych - podstawowy element obrazu cyfrowego to piksel, uważany w danym momencie za wewnętrznie jednorodny -

Bardziej szczegółowo

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

KADD Metoda najmniejszych kwadratów funkcje nieliniowe Metoda najmn. kwadr. - funkcje nieliniowe Metoda najmniejszych kwadratów Funkcje nieliniowe Procedura z redukcją kroku iteracji Przykłady zastosowań Dopasowanie funkcji wykładniczej Dopasowanie funkcji

Bardziej szczegółowo

Spis treści. Konwencje zastosowane w książce...5. Dodawanie stylów do dokumentów HTML oraz XHTML...6. Struktura reguł...9. Pierwszeństwo stylów...

Spis treści. Konwencje zastosowane w książce...5. Dodawanie stylów do dokumentów HTML oraz XHTML...6. Struktura reguł...9. Pierwszeństwo stylów... Spis treści Konwencje zastosowane w książce...5 Dodawanie stylów do dokumentów HTML oraz XHTML...6 Struktura reguł...9 Pierwszeństwo stylów... 10 Klasyfikacja elementów... 13 Sposoby wyświetlania elementów...

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

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie:

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie: Repozytorium służy do przechowywania plików powstających przy pracy nad projektami we w miarę usystematyzowany sposób. Sam mechanizm repozytorium jest zbliżony do działania systemu plików, czyli składa

Bardziej szczegółowo

Animacje cz. 2. Rysujemy koło zębate

Animacje cz. 2. Rysujemy koło zębate Animacje cz. 2 1. Do wykonania poniższej animacji będziemy potrzebować dodatkowego desenia. Znajduje się on w folderze z instrukcją, żeby program Gimp mógł z niego skorzystać musimy wskazać mu ścieżkę

Bardziej szczegółowo

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10. ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach

Bardziej szczegółowo

MS Office Picture Manager

MS Office Picture Manager MS Office Picture Manager Edycja obrazów cyfrowych Poradnik powstał w ramach projektu Informacja dla obywateli cybernawigatorzy w bibliotekach, zainicjowanego przez polskich uczestników programu wymiany

Bardziej szczegółowo

Grafika w dokumencie tekstowym. Technologia Informacyjna Lekcja 26

Grafika w dokumencie tekstowym. Technologia Informacyjna Lekcja 26 Grafika w dokumencie tekstowym Technologia Informacyjna Lekcja 26 Wstawianie obiektów Do dokumentu tekstowego moŝna wstawić róŝnego rodzaju obiekty, między innymi: grafikę,, animację,, tabelę, wykres.

Bardziej szczegółowo

Podstawy grafiki komputerowej

Podstawy grafiki komputerowej Podstawy grafiki komputerowej Krzysztof Gracki K.Gracki@ii.pw.edu.pl tel. (22) 6605031 Instytut Informatyki Politechniki Warszawskiej 2 Sprawy organizacyjne Krzysztof Gracki k.gracki@ii.pw.edu.pl tel.

Bardziej szczegółowo

Systemy multimedialne 2015

Systemy multimedialne 2015 Systemy multimedialne 2015 Nazwa nowej warstwy nie ma znaczenia pod względem funkcjonalnym. Warto jednak ją nadać, łatwiej możemy się wtedy poruszać po bardziej rozbudowanym projekcie. Domyślny rozmiar

Bardziej szczegółowo

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16 Spis treści Przedmowa.......................... XI Rozdział 1. Pomiar: jednostki miar................. 1 1.1. Wielkości fizyczne i pozafizyczne.................. 1 1.2. Spójne układy miar. Układ SI i jego

Bardziej szczegółowo

Analiza i przetwarzanie obrazo w

Analiza i przetwarzanie obrazo w Analiza i przetwarzanie obrazo w Temat projektu: Aplikacja na system ios rozpoznająca tekst Michał Opach 1. Cel projektu Celem projektu było stworzenie aplikacji mobilnej na system operacyjny ios, która

Bardziej szczegółowo

GIMP Grafika rastrowa (Ćwiczenia cz. 2)

GIMP Grafika rastrowa (Ćwiczenia cz. 2) Zjazd 1 GIMP Grafika rastrowa (Ćwiczenia cz. 2) Zaznaczenia Aby zacząć profesjonalnie rysować w programie GIMP należy opanować tematykę zaznaczeń. Zaznaczenia (inaczej maski) służą do zaznaczania obszarów

Bardziej szczegółowo

TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła

TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła 1. Cel ćwiczenia Celem ćwiczenia jest nabycie umiejętności tworzenia tła poprzez wykorzystanie funkcji dostępnych w programie GIMP. 2. Wiadomości

Bardziej szczegółowo

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów W ramach zajęć oprogramujemy jedną, wybraną metodę numeryczną: metodę bisekcji numerycznego rozwiązywania równania nieliniowego

Bardziej szczegółowo

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2.

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2. Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2. Technika obrazu 24 W.3. Normalizacja w zakresie obrazu cyfrowego

Bardziej szczegółowo

Problematyka budowy skanera 3D doświadczenia własne

Problematyka budowy skanera 3D doświadczenia własne Problematyka budowy skanera 3D doświadczenia własne dr inż. Ireneusz Wróbel ATH Bielsko-Biała, Evatronix S.A. iwrobel@ath.bielsko.pl mgr inż. Paweł Harężlak mgr inż. Michał Bogusz Evatronix S.A. Plan wykładu

Bardziej szczegółowo

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Materiał jest zbiorem informacji o właściwościach powierzchni. Składa się na niego kolor, sposób odbijania światła i sposób nakładania

Bardziej szczegółowo

III. ZMIENNE LOSOWE JEDNOWYMIAROWE

III. ZMIENNE LOSOWE JEDNOWYMIAROWE III. ZMIENNE LOSOWE JEDNOWYMIAROWE.. Zmienna losowa i pojęcie rozkładu prawdopodobieństwa W dotychczas rozpatrywanych przykładach każdemu zdarzeniu była przyporządkowana odpowiednia wartość liczbowa. Ta

Bardziej szczegółowo

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

WSTAWIANIE GRAFIKI DO DOKUMENTU TEKSTOWEGO

WSTAWIANIE GRAFIKI DO DOKUMENTU TEKSTOWEGO WSTAWIANIE GRAFIKI DO DOKUMENTU TEKSTOWEGO Niezwykle uŝyteczną cechą programu Word jest łatwość, z jaką przy jego pomocy moŝna tekst wzbogacać róŝnymi obiektami graficznymi, np. zdjęciami, rysunkami czy

Bardziej szczegółowo

Politechnika Warszawska

Politechnika Warszawska Politechnika Warszawska Wydział Elektryczny Laboratorium Teletechniki Skrypt do ćwiczenia T.02. Woltomierz RMS oraz Analizator Widma 1. Woltomierz RMS oraz Analizator Widma Ćwiczenie to ma na celu poznanie

Bardziej szczegółowo

Testy nieparametryczne

Testy nieparametryczne Testy nieparametryczne Testy nieparametryczne możemy stosować, gdy nie są spełnione założenia wymagane dla testów parametrycznych. Stosujemy je również, gdy dane można uporządkować według określonych kryteriów

Bardziej szczegółowo

Wymagania edukacyjne z matematyki w klasie III gimnazjum

Wymagania edukacyjne z matematyki w klasie III gimnazjum Wymagania edukacyjne z matematyki w klasie III gimnazjum - nie potrafi konstrukcyjnie podzielić odcinka - nie potrafi konstruować figur jednokładnych - nie zna pojęcia skali - nie rozpoznaje figur jednokładnych

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

MODELE KOLORÓW. Przygotował: Robert Bednarz

MODELE KOLORÓW. Przygotował: Robert Bednarz MODELE KOLORÓW O czym mowa? Modele kolorów,, zwane inaczej systemami zapisu kolorów,, są różnorodnymi sposobami definiowania kolorów oglądanych na ekranie, na monitorze lub na wydruku. Model RGB nazwa

Bardziej szczegółowo

Skalowanie i ustawianie arkuszy/układów wydruku w AutoCAD autor: M. Motylewicz, 2012

Skalowanie i ustawianie arkuszy/układów wydruku w AutoCAD autor: M. Motylewicz, 2012 1 z 72 Rysunek rysujemy w skali rzeczywistej tzn. jeżeli pas ruchu ma szerokość 3,5m to wpisujemy w AutoCAD: 3,5 jednostki (mapa oczywiście również musi być wstawiona w skali 1:1). Opisany w dalszym ciągu

Bardziej szczegółowo

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

Wykrywanie twarzy na zdjęciach przy pomocy kaskad Wykrywanie twarzy na zdjęciach przy pomocy kaskad Analiza i przetwarzanie obrazów Sebastian Lipnicki Informatyka Stosowana,WFIIS Spis treści 1. Wstęp... 3 2. Struktura i funkcjonalnośd... 4 3. Wyniki...

Bardziej szczegółowo

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 5.0

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 5.0 ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 5.0 Przeznaczenie sylabusa Dokument ten zawiera szczegółowy sylabus dla modułu ECDL/ICDL Przetwarzanie tekstów. Sylabus opisuje zakres wiedzy i

Bardziej szczegółowo

Monitory Opracował: Andrzej Nowak

Monitory Opracował: Andrzej Nowak Monitory Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz PC Format, nr 3 2008r. Kineskop ogólna budowa Monitory CRT Zasada działania monitora Monitory służą do

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

FOTOGRAMETRIA I TELEDETEKCJA

FOTOGRAMETRIA I TELEDETEKCJA FOTOGRAMETRIA I TELEDETEKCJA 2014-2015 program podstawowy dr inż. Paweł Strzeliński Katedra Urządzania Lasu Wydział Leśny UP w Poznaniu Format Liczba kolorów Rozdzielczość Wielkość pliku *.tiff CMYK 300

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Chcąc osiągnąć realizm renderowanego obrazu, należy rozwiązać problem świetlenia. Barwy, faktury i inne właściwości przedmiotów postrzegamy

Bardziej szczegółowo