Aleksander Denisiuk. Materiały dydaktyczne PJWSTK

Przetwarzanie obrazów

  1. .. (Powrót)
  2. point.zip Wykorzystaj dany projekt i napisz program w C, który wykonuje na obrazie wybrane transformacje z dziedziny przetwarzania obrazów. Obraz wejściowy jest określany w wierszu poleceń opcją --input-file infile. Działania i jego parametry są określane w opcjach. Obraz wyjściowy powinien zostać zapisany do pliku, określonemu opcją --out-file outfile. Program powinien wykonać jedną podaną operację, zapisać wynik i zakończyć pracę. Możesz założyć, że infile zawsze jest poprawnym plikiem JPEG. W testach zawsze będą podawane poprawne opcje. Skompilowany program powinien się nazywać point (w wersji na Windows point.exe). Lista przekształceń i odpowiednich opcji dana jest poniżej. Zwróć uwagę, aby po przekształceniu kolory pikseli nie wykroczyły poza zakres od 0 do 255.
  3. negate.jpg (2 punkty) --filter negate — negacja, piksel C zamienia się na 255-C
  4. brightness.jpg (2 punkty) --filter brightness --percent k — zwiększenie/zmniejszenie jasności o k% (k może być ujemnym): CC+k%C
  5. contrast.jpg (2 punkty) --filter contrast --times t — zmiana kontrastu według wzoru Ct(C-127)+127
    • t>1 zwiększa kontrast,
    • 0<t<1 zmniejsza kontrast.
  6. flip.jpg (2 punkty) --filter flip --axis a — odbicie względem osi a: --axis x odbicie pionowe, --axis y odbicie poziome (jak na obrazku po lewej)
  7. rotate.jpg (4 punkty) --filter rotate --direction d — obrót o 90° w kierunku d: --direction left obrót w lewo, --direction right obrót w prawo (jak na obrazku po lewej)
  8. image/svg+xml Dodanie nowego parametru wiersza poleceń:
    1. Deklaracja zmiennej globalnej na początku programu.
    2. Inicjalizacja odpowiedniej struktury w funkcji main. Zwróć unwagę na końcówkę funkcji inicjalizacji: 0 — argument opcjonalny, 1 — wymagany.
    3. Uzupełnenie tablicy argtable. Zmienna end powinna zostać ostatnią.
    4. Ustawienie dla parametru opcjonalnego wartości domyślnej.
    5. Odczytanie wartości z odpowiedniej struktury.
  9. Termin oddania zadań:
    • klasowych: na zajęciach. Zadania, oddane po terminie, warte są połowę punktów
    • domowych: do momentu, gdy się pojawi następne zadanie. Zadania, oddane po terminie, warte są 0 (słownie: zero) punktów