Krzysztof Krawiec


Home

Research:

edit SideBar

Strona laboratorium

Zajęcia 2 - Operacje na pojedynczych pikselach

Zadania

  1. Stworzyć i wyświetlić obrazek o szerokości 300 pikseli a wysokości 200 i zamalować go na żółto (kanały są w kolejności BGR). Do przypisania wartości można użyć konstrukcji:
    obrazek[...] = (niebieski, zielony, czerwony)
    
  2. W obrazku z poprzedniego ćwiczenia odjąć od kanału zielonego wartość 100.
  3. Kolor każdego piksela ustawić w zależności od jego współrzędnych (x,y) następująco:
    • kanał czerwony ustawić na wartość y-100,
    • kanał zielony ustawić na wartość x,
    • kanał niebieski ustawić na wartość x+y.
  4. Napisać funkcję obliczającą stopień podobieństwa jednego koloru do innego koloru (funkcja z dwoma argumentami - każdy to tablica z 3 elementami B,G,R).
    Podobieństwo należy policzyć jako odległość euklidesową w przestrzeni RGB a następnie odpowiednio przeskalować w przedział [0;255]:
    • 0 oznacza maksymalną różnicę w kolorach,
    • 255 oznacza identyczny kolor.
  5. Napisać funkcję która jako argument przyjmuje dowolny, kolorowy obraz oraz jakiś kolor (jako tablica/krotka/lista trójelementowa - składowe BGR).
    Funkcja ma zwrócić nowy, jednokanałowy (w odcieniach szarości) obraz o tym samym rozmiarze będący "mapą" podobieństwa pikseli oryginalnego obrazu do wskazanego koloru (podobieństwo liczone funkcją z poprzedniego zadania).
  6. Napisać analogiczną funkcję jak w poprzednim ćwiczeniu ale tym razem wszystkie obliczenia należy przeprowadzać dla całego obrazu równocześnie.
    Uwagi:
    • a**5 - podniesienie do 5 potęgi
    • img.sum(2) - sumowanie po 3 osi (pierwsza - wiersze, druga - kolumny, trzecia - kanały)

Przykładowe rozwiązanie zadań


Powered by PmWiki