Aleksander Denisiuk. Materiały dydaktyczne PJWSTK

Przekształcenia geometryczne

  1. .. (Powrót)
  2. nogat.jpg (2.5 punkty) Napisz program w C/C++, który wykonuje na obrazie wybrane przekształcenia geometryczne. Ocena: ½ punktu za każde przekształcenie. 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ą --output-file outfile. Program powinien wykonać podaną operację, zapisać wynik i zakończyć pracę. Możesz założyć, że infile zawsze jest poprawnych plikiem JPEG. W testach zawsze będą podawane poprawne opcje. Skompilowany program powinien się nazywać geometry (w wersji na Windows geometry.exe). Wszystkie wymiary będę względnymi, w szczególności, zakłada się, że wysokość i szerokość obrazu wynosi~1. Lista przekształceń i odpowiednich opcji:
    1. --flip x — odbicie względem osi poziomej (--flip y — odbicie względem osi pionowej — będzie podany jeden z parametrów)
    2. --scale-x λ₁ --scale-y λ₂ — skalowanie, będą zawsze podawane obywa parametry
    3. --rotate φ — obrót dookoła środka obrazu
    4. --shear-x φ — pochylenie do osi Ox o kąt φ
    5. --shear-y φ — pochylenie do osi Oy o kąt φ
    6. --translate-x x --translate-y y — przesunięcie równoległe o wektor xy
  3. tagon.jpg (1.5 punkty) Rozbuduj program o następujące opcje (po punkcie za opcję):
    1. --ll-x x₀ --ll-y y₀ --lr-x x₁ --lr-y y₁ --ul-x x₂ --ul-y y₂ --ur-x x₃ --ur-y y₃ — Transformacja perspektywiczna:
      • ll — współrzędne lewego dolnego rogu zdjęcia (zakłada się, że obraz oryginalny ma ten róg w punkcie 00
      • lr — współrzędne prawego dolnego rogu zdjęcia (zakłada się, że obraz oryginalny ma ten róg w punkcie 10
      • ul — współrzędne lewego górnego rogu zdjęcia (zakłada się, że obraz oryginalny ma ten róg w punkcie 10
      • ur — współrzędne prawego górnego rogu zdjęcia (zakłada się, że obraz oryginalny ma ten róg w punkcie 11
    2. --implode k — implozja o współczynniku k
  4. 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