Spis treści. Programowanie w ImageJ. Zadanie 1. Zadanie 2

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

GIMP Grafika rastrowa (Ćwiczenia cz. 2)

3.4. Opis konfiguracji layoutów.

Jak zrobić klasyczny button na stronę www? (tutorial) w programie GIMP

Operacja macro. czyli jak podpisać zdjęcie i zrobić miniaturę. Tworzymy nową akcję. Anna Góra. Zmiana dpi zdjęcia na 300 piks/cal.

Obsługa programu Paint. mgr Katarzyna Paliwoda

Pomorski Czarodziej 2016 Zadania. Kategoria C

Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

PIXLR EDITOR - Autor: mgr inż. Adam Gierlach

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

Rozmiar i wielkość dokumentu

Ćwiczenie 12 Różdżka, szybkie zaznaczanie i zakres koloru

Jak posługiwać się edytorem treści

GIMP fotografia kolorowa i czarno-biała

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Uzyskanie podkładu topograficznego z Geoportalu przy użyciu biblioteki GDAL. Krzysztof Kochan

Animacje z zastosowaniem suwaka i przycisku

Skaner Mustek Scan Express

Implementacja filtru Canny ego

Matlab Składnia + podstawy programowania

Szybka instrukcja tworzenia testów dla E-SPRAWDZIAN-2 programem e_kreator_2

Scratch pierwszy program

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Pokażę w jaki sposób można zrobić prostą grafikę programem GIMP. 1. Uruchom aplikację GIMP klikając w ikonę na pulpicie.

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

GIMP. Ćwiczenie nr 6 efekty i filtry. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 18

Materiały dla studentów pierwszego semestru studiów podyplomowych Grafika komputerowa i techniki multimedialne rok akademicki 2011/2012 semestr zimowy

4. Funkcje. Przykłady

WIZUALIZER 3D APLIKACJA DOBORU KOSTKI BRUKOWEJ. Instrukcja obsługi aplikacji

Kolory elementów. Kolory elementów

I. Podstawy języka C powtórka

Metody numeryczne Laboratorium 2

LIVE Gra w życie. LIVE w JavaScript krok po kroku. ANIMACJA Rozpoczynamy od podstawowego schematu stosowanego w animacji

Pasek menu. Ustawienia drukowania

WIZUALIZER 3D APLIKACJA DOBORU KOSTKI BRUKOWEJ. Instrukcja obsługi aplikacji

Operacje przetwarzania obrazów monochromatycznych

Matlab Składnia + podstawy programowania

Część II Wyświetlanie obrazów

Ekonometria. Modele regresji wielorakiej - dobór zmiennych, szacowanie. Paweł Cibis pawel@cibis.pl. 1 kwietnia 2007

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

Dokument zawiera podstawowe informacje o użytkowaniu komputera oraz korzystaniu z Internetu.

Instrukcja Pre Press_2019.

Ćwiczenie 2 Warstwy i kształty podstawowe

Cel: Zastosowanie okien pytającychwyświetlających pytania i komunikaty (MessageBox). Klub IKS

Algorytmika i programowanie

Maskowanie i selekcja

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Efekt rollover ze wskaźnikiem wybranej opcji

Zaznaczenie prostokątne. Zaznaczenie eliptyczne. Tekst. Okno warstw. Wypełnienie kubełkiem. Gradient. Kolor pierwszo i drugoplanowy

JAVA?? to proste!! Autor: wojtekb111111

Formaty obrazów rastrowych biblioteki PBM

Pokaz slajdów na stronie internetowej

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

Tworzenie szablonów użytkownika

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Fotografia cyfrowa obsługa programu GIMP. Cz. 18. Tworzenie ramki do zdjęcia. materiały dla osób prowadzących zajęcia komputerowe w bibliotekach

ZAZNACZENIA. Zaznaczenia (inaczej maski) służą do zaznaczania obszarów rysunku.

Instalacja i użytkowanie programu Fotolabo 3.0

Programowanie strukturalne i obiektowe. Funkcje

WSTAWIANIE GRAFIKI DO DOKUMENTU TEKSTOWEGO

WOJEWÓDZTWO PODKARPACKIE

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

Komputery I (2) Panel sterowania:

TWORZENIE DANYCH DO DRUKU W PROGRAMIE MICROSOFT POWERPOINT 2013

Diagnostyka obrazowa

Metodyka wykonania kartogramu z podziałem na klasy wg punktów charakterystycznych wraz z opracowaniem kartogramicznej legendy.

Instrukcja obsługi szablonów aukcji

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

Gimp - poznaj jego możliwości!

Kurs Adobe Photoshop Elements 11

Ćwiczenia I 2011r. zajęcia stacjonarne Przygotowanie grafiki statycznej i animowanej w programie GIMP

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

Raytracer. Seminaria. Hotline. początkujący zaawansowani na miejscu

Studia podyplomowe dla nauczycieli w zakresie nauczania informatyki i technologii informacyjnej

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła

WARSTWY cd. Narzędzia służące do transformacji warstw są przedstawione na poniższym rysunku: Służą one odpowiednio do:

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

MATERIAŁY DYDAKTYCZNE. Streszczenie: w ramach projektu nr RPMA /16. Praca na warstwach w programie GIMP

edycja szablonu za pomocą programu NVU

Jak zamówić zdjęcia przez FotoSender?

Jak zrobić za pomocą programu SALSA-J kolorowy obrazek, mając trzy zdjęcia w barwach podstawowych?

INSTRUKCJA PRZYGOTOWANIA ZDJĘĆ DO

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

=jeżeli(warunek;prawda;fałsz)

Okna dialogowe ustawień konfiguracyjnych

Wstawianie nowej strony

Opis Edytora postaci Logomocji

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie 1 Automatyczna animacja ruchu

Dostosowanie szerokości kolumn

Platforma szkoleniowa krok po kroku. Poradnik Kursanta

Rozpoczynamy import Kreator uruchamiamy przyciskiem Z tekstu, znajdującym się na karcie Dane, w grupie Dane zewnętrzne.

Transkrypt:

Spis treści 1 Programowanie w ImageJ 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 1.5 Zadanie 5 Programowanie w ImageJ Zadanie 1 Mamy obraz rtg płuc w formacie jpg, w 8-bitowej skali szarości. Zauważyliśmy, że punkty tła mają wartość mniejszą niż 10. Chcielibyśmy na tej podstawie ustalić, jaki procent na obrazie stanowi tło. W tym celu sprawdzamy po kolei wszystkie punkty obrazu i jeśli któregoś wartość jest mniejsza niż wartość graniczna, zliczamy go. Zadanie 2 Mamy obraz w formacie dicom przedstawiający jedną warstwę CT (można wybrać dowolny z obrazów, na których pracowaliśmy na zajęciach). Chcielibyśmy sprawdzić, gdzie na tym obrazie znajduje się najjaśniejszy obszar. Moglibyśmy zrobić to tak, że podzielilibyśmy obraz na 10x10=100 mniejszych obrazków, w każdym z nich sprawdzilibyśmy sumę wartości wszystkich punktów i wskazalibyśmy współrzędne obrazka o największej wartości sumy. Na koniec wybrana część obrazka powinna zostać zaznaczona. Hint: Należy zrobić pętlę, w której 100 razy zaznaczy się coraz to inny obszar, sprawdzi się sumę w nim i czy jest większa niż największa dotąd znaleziona wartość, a jeśli tak, to nową wartość zapamięta wraz z jej współrzędnymi. Pamiętaj: komendy w ImageJ kończy się zawsze średnikiem, a komentarze zaczyna się // open(path) Otwiera obraz o tytule podanym w ścieżce. makerectangle(x, y, width, height) Zaznacza obszar prostokątny o lewym górnym rogu w punkcie x,y, szerokości width i wysokości height. Np.: makerectangle(10,10,50,50); getstatistics(area, mean, min, max, std, histogram) Wywołanie tego polecenia spowoduje, że w zmiennej mean zostanie zapisana średnia wartość pikseli w zaznaczeniu.

getwidth() Zwraca szerokość obrazu w pikselach. Np.: szer=getwidth(); getheight() Zwraca wysokość obrazu w pikselach. getpixel(x, y) Zwraca wartość piksela o współrzędnych (x,y). floor(x) Zwraca wartość x zaokrągloną w dół. Np. n=floor(128/10); //zwróci wartość 12. print(args) Wypisuje wyliczoną wartość lub wartości. Np. jeśli wartość n to 5, wówczas print( Wynik, n); //wypisze Wynik=5 Przykład pętli iterującej n od do 5: for (n=; n<=5; n++) { print n; //lista komend } Przykład instrukcji warunkowej: if (n<100) { print n; } Zadanie 3 Chcemy podzielić obraz na kwadraty o boku n pikseli i w każdym z nich znaleźć średnią wartość gradientu. Gradient to wektor o dwóch współrzędnych. Pierwsza współrzędna może być oszacowana jako różnica między wartością danego piksela a piksela po lewej stronie od niego, druga jako różnica wartości danego piksela i piksela ponad nim. Wynik obliczeń ma zostać przedstawiony jako osobny obraz, na którym w każdym kwadracie zostanie wyrysowany odcinek o długości n i nachyleniu zgodnym z gradientem. Wartość gradientu może zostać zobrazowana jasnością lub jeszcze lepiej kolorem odcinka. Przydadzą się do tego następujące komendy: a=newarray(n); //tworzy jednowymiarową tablicę o długości n //W ImageJ nie istnieją tablice wielowymiarowe. //Ale tablicy 1-D można użyć jako 2-D odpowiednio adresując jej komórki. //Np. gdybyśmy chcieli mieć tablicę o wymiarach nx na ny, stworzylibyśmy ją: tabl=newarray(nx*ny); //Wypisanie wartości elementu tablicy o współrzędnych i, j wykonalibyśmy:

print (tabl[i+ny*j]); //Nowy obraz tworzy się: newimage(tytul, typ, szerokosc, wysokosc, grubosc); //Typ to może być np. "8-bit". "8-bit black" oznacza, że na początku piksele wszystkie będą czarne. setpixel(x,y,100); //ustawianie wartości piksela o współrzędnych (x, y) na 100 drawline(x1, y1, x2, y2); //Rysowanie linii między punktami o współrzędnych (x1, y1) i (x2, y2) Rozmiar kwadratu można wpisać do programu "na siłę". Ale można by też poprosić użytkownika, aby go podał. ImageJ ma do tego bardzo miłe narzędzia do tworzenia okienek dialogowych. Poniżej przykład, który możesz skopiować i uruchomić, a następnie wykorzystać do ulepszenia Twojego skryptu do liczenia gradientów. //Proste pytanie o jedną liczbę: n=getnumber("ile masz lat?", 18); //drugi parametr to domyślna odpowiedź print("dowiedziałem się, że masz "+n+" lat"); //Tak definiuje się i wyświetla bardziej zaawansowane okienko: Dialog.create("Przedstaw się, proszę!"); //pole liczbowe: Dialog.addNumber("Rok urodzenia", 1985); //Drugi parametr to domyślna wartość pojawiająca się w okienku Dialog.addNumber("Miesiąc", 1); Dialog.addNumber("Dzień", 1); //pole tekstowe Dialog.addString("Twoje imię:", "Hermenegilda"); //Drugi parametr to domyślny tekst Dialog.show(); //a tak odczytuje się wpisane przez użytkownika wartości: rok=dialog.getnumber(); //odczytuje wartość kolejnego pola liczbowego mies=dialog.getnumber(); dzien=dialog.getnumber(); imie=dialog.getstring(); //odczytuje tekst z kolejnego pola tekstowego print("twoje imie to "+imie+", a data urodzenia to "+dzien+"."+mies+"."+rok); Zadanie 4 Otwórz wszystkie pliki z rozszerzeniem.jpg w wybranym katalogu i zapisz w formacie.png

katalog=getdirectory("wybierz katalog"); //otwiera okienko do wyboru katalogu tabl=getfilelist(katalog); //tworzy tablicę zawierającą wszystkie nazwy plików w danym katalogu l1=lengthof(tabl); //zwraca długość tablicy l2=lengthof(tabl[3]); //zwraca długość tekstu będącego czwartym elementem tablicy saveas("png", "nowy_plik.png"); //zapisuje otwarty obraz w formacie.png, pod zadanym tytułem endswith("ala ma kota", "kota"); //zwraca true, jeśli pierwszy tekst kończy się drugim tekstem substring("ala ma kota", 4, 6); //zwraca "ma", czyli część tekstu między pierwszym indeksem a drugim indeksem, bez tego ostatniego Zadanie 5 Wczytaj plik flashpad-hand-clinical.jpg. Możesz zmniejszyć jego wielkość tak, by usunąć niepotrzebne czarne tło zaznaczając prostokąt z ręką i wybierając Image > Crop. Naszym zadaniem będzie napisać algorytm, który znajdzie i zaznaczy automatycznie na tym obrazie granice między kośćmi palców. Dla oka to łatwe, ale jak wytłumaczyć komputerowi co widzi oko? Otóż tu kłania się nam czystej wody algorytmika (plus trochę wiedzy o analizie obrazu). Proszę spojrzeć na poniższy obraz. Prawda, że granice między kostkami mają charakterystyczne kształty? Udało się je zaznaczyć (trochę za dużo, skrypt należałoby jeszcze dopracować).

Zamiana obrazu na format 32-bit Normalizacja obrazu do wartości od -1 do 1 za pomocą funkcji sigmoidalnej: Gdzie k to stała mówiąca o nachyleniu funkcji w zerze, a t_0 to wartość środkowa (np. średnia wartość pikseli na obszarze zdjęcia ręki). Splot z filtrem krawędzi o zadanej wielkości, np. Znalezienie i zaznaczenie różdżką (Wand) spójnych fragmentów poniżej pewnego progu,

dodanie ich do roimanagera Powyższe kroki można wykonać wyklikując je w ImageJ i od tego zaczniemy. Ale potem należy napisać własny skrypt, który całą tę pracę zrobi za nas automatycznie.