Autor | Olga Anna Kalinowska |
Opiekun | dr inż. Grzegorz Galiński |
Praca | inżynierska |
Data obrony | luty 2020 |
Celem projektu była implementacja aplikacji do wykrywania krawędzi w obrazach rastrowych i ich wektoryzacji. Efektem przetwarzania jest plik w formacie SVG zawierający zbiór obiektów „path” odpowiadających poszczególnym krawędziom i zapisanych za pomocą krzywych Béziera trzeciego rzędu (sześciennych).
Parametry przetwarzania obrazu mogą być dostosowywane przez użytkownika indywidualnie do każdego obrazu w celu uzyskania satysfakcjonujących rezultatów (np. jak najdokładniejsze odwzorowanie obiektów, bądź przygotowanie uproszczonej grafiki do dalszego przetwarzania w edytorze graficznym).
Proces wykrywania krawędzi opiera się na binaryzacji obrazu wejściowego oraz odczycie punktów opisujących krawędzie otrzymanych w ten sposób kształtów. Zniekształcone krawędzie poddawane są wygładzaniu. W celu wektoryzacji krawędzie dzielone są na sekcje nie zawierające załamań (ciągłość dwóch pochodnych), które następnie dzielone są na odcinki aproksymowane sześciennymi krzywymi Béziera lub liniami prostymi.
Aplikacja została zrealizowana w języku Java, z wykorzystaniem bibliotek OpenCV (przetwarzanie obrazów) oraz SVGSalamander (obsługa grafik SVG).