Zajęcia 3 - Obsługa okienek
Zadania
- Napisać program w którym można suwakiem ustawić stopień szarości (0-255) całego obrazu. Po każdej zmianie ustawienia powinien być wyświetlony zaktualizowany obrazek o zadanym kolorze.
Jeśli wykorzystujemy bibliotekę cvshow, to należy użyć funkcji trackbar
(analogiczna funkcja do cv2.createTrackbar
).
- Napisać podobny program ale z trzema suwakami ustawiającymi wartości kanałów RGB. Do odczytywania aktualnej wartości dowolnego suwaka można użyć funkcji cv2.getTrackbarPos.
- Napisać program w którym można na (początkowo czarnym) obrazie rysować myszką białe kreski (ustawiać piksele pod kursorem myszki).
Jeśli wykorzystujemy bibliotekę cvshow, to należy użyć funkcji mouseCallback
(analogiczna funkcja do cv2.setMouseCallback
).
- Zmodyfikować powyższy program tak, aby można było suwakami ustawiać wielkość "pędzla" (zamiast ustawiania pojedynczych pikseli rysować np. od razu całe koła) oraz jego kolor.
- Napisać funkcję umożliwiającą zaznaczanie przez użytkownika (myszką) prostokątnego fragmentu obrazu (będącego pierwszym argumentem funkcji). Po każdym zaznaczeniu obszaru należy uruchomić podaną funkcję (drugi argument) przekazując jej zaznaczony fragment.
Innymi słowy - należy:
- stworzyć funkcję przyjmująca dwa argumenty, np.
zaznacz(caly_obrazek, funkcja_do_uruchomienia)
- po zaznaczeniu przez użytkownika jakiegoś fragmentu należy uruchomić podaną jako argument funkcję, np:
funkcja_do_uruchomienia(zaznaczony_fragment_obrazu)
- użytkownik po zaznaczeniu jednego fragmentu może ponownie zaznaczyć jakiś inny.
Zaznaczenie ma odbywać się poprzez naciśnięcie lewego klawisza myszki w jednym narożniku zaznaczanego obszaru i puszczenia tego klawisza w przeciwległym narożniku. W trakcie przeciągania kursora powinien być rysowany (np. kolorowym prostokątem) aktualnie wskazywany obszar.
Uwaga: zaznaczenie rysujemy na stworzonej kopii oryginalnego obrazu (np. przed każdym narysowaniem kopiujemy sobie oryginalny obraz).
Stworzoną funkcję należy sobie zapisać - może być później przydatna do badania cech analizowanego obrazu.
Przykładowe rozwiązanie zadań