7. Redukcja poziomów szarości przez powtórna kwantyzacje z liczba poziomów szarości wskazana przez użytkownika
9. Wygładzanie liniowe oparte na typowych maskach wygładzania (uśrednianie, uśrednianie z wagami, filtr gaussowski)
10. Wyostrzanie liniowe na 3 maskach laplasjanowych, kierunkowa detekcja krawędzi w oparciu o maski 8 kierunkowych masek Sobela.
12. Progowanie metoda Otsu, progowanie z dwoma progami z uwzględnieniem progowania z zachowanie poziomów szarości
Projekt został zrealizowany w ramach programu implementującego funkcjonalności do obróbki obrazów, który został wykonany w języku JavaScript z wykorzystaniem biblioteki OpenCV i frameworka electron.js do tworzenia aplikacji desktop’owych.
- folderu „public” gdzie można znaleźć wykorzystane czcionki w projekcie, przykładowe obrazy, biblioteke OpenCV
- folderu „images” w którym znajdują się zdjęcia w tym svg wykorzystane w projekcie
- folderu „src” zawierające wszystkie komponenty i logikę biznesową projektu
- linku pod którym można pobrać wersję produkcyjną programu „apo_wojciech_falkowski.exe” link
Aby uruchomić aplikację należy pobrać plik „apo_wojciech_falkowski.exe” (link) i uruchomić na własnym komputerze
- yarn
- yarn start
Po uruchomieniu aplikacji wyświetla się okno główne programu.
Aplikacja składa się z menu górnego z dwoma przyciskami „Obraz” i „Operacje” oraz miejsca gdzie będą pokazywane dane operacje aplikacji.
Aby zamknąć program należy kliknąć na ikonę krzyżyka w prawym górnym rogu okna głównego
Aby zacząć prace z programem na sam początek należy dodać zdjęcia do „bazy projektu” – zdjęcia są przechowywane w miejscu gdzie aplikacja w utworzonym folderze ‘uploads’.
Po kliknięciu przycisku ‘Dodaj plik’ ukaże się okno, gdzie może wybrać zdjęcie, które ma zostać dodane do projektu. W moim przypadku jest to plik ‘lena.jpg’. Uwaga do poprawnego działania aplikacji należy korzystać z formatów plików ‘.png’, ‘.jpg’, ‘.bmp’.
Po wgraniu zdjęcia obraz będzie wyświetlony w prawej części okna aplikacji, aby zacząć prace nad nim należy kliknąć przycisk „+”.
Z menu górnego należy wybrać opcje ‘Obraz’ -> ‘Zdjęcia’.
Następnie należy kliknąć w obraz, aby pokazały nam się dane na jego temat (histogram i tablica LUT).
Obraz w zależności czy jest szaro odcieniowy czy tez nie pokaże nam innej opcje histogramu (GRAY / RGB). Dodatkowo histogram ma możliwość wyodrębnienia konkretnego kanału (R/G/B) dla obrazów kolorowych.
Z menu górnego należy wybrać opcje ‘Operacje’ -> ‘Rozciągnij / wyrównaj histogram’
Po przejściu na dana podstronę ukaże nam się tylko obraz po lewej stronie (bazowy). Użytkownik ma możliwość wybrania zakresu jaki go interesuje przykładowo zaznaczyłem zakres 60 - 200 po wciśnięciu przycisku ‘Rozciągnij histogram’ zostanie wygenerowany obraz wynikowy.
7. Redukcja poziomów szarości przez powtórna kwantyzacje z liczba poziomów szarości wskazana przez użytkownika
9. Wygładzanie liniowe oparte na typowych maskach wygładzania(uśrednianie, uśrednianie z wagami, filtr gaussowski)
10. Wyostrzanie liniowe na 3 maskach laplasjanowych, kierunkowa detekcja krawędzi w oparciu o maski 8 kierunkowych masek Sobela
UWAGA – openCV dla javascript’u udostępnia tylko detekcje krawędzi w osi X i Y, detekcja krawędzi operatorem opartym na masce Cannyego.
Aby wykonać operacje na wielu obrazach trzeba mieć zaznaczone minimum 2 obrazy.
Następnie w menu górnym zostaną pokazane opcje, które można wykonać z dana liczba obrazów.
12. Progowanie metoda Otsu, progowanie z dwoma progami z uwzględnieniem progowania z zachowanie poziomów szarości
W histogramie nie zawsze zaznaczony jest który wykres jest pokazany
- Aplikacja bada stan aktywnych zdjęć przez co nie można wejść na dane podstrony, jeżeli mamy np. niewystarczająca ilość zaznaczonych zdjęć -> operacje logiczne – 2 obrazy
- Aplikacja sprawdza czy posiada już obraz wynikowy i dopiero jeżeli go posiada to pozwala zapisac obraz
Obraz kolorowy nie ma oddzielenia informacji o chromie (kolorze) od informacji o jasności. Dopiero przejście na model Lab daje nam możliwość oddzielenia tych dwóch typów informacji. Informacje o intensywnościach, które będę modyfikował będą znajdowały się w kanale „L”, a informacje o kolorach w kanałach „a” i „b”.