Skip to content

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.

Notifications You must be signed in to change notification settings

WojciechxFalkowski/Obrobka-obrazow

Repository files navigation

Obróbka obrazów

Użyte technologie:

Electron Bootstrap Vue HTML5 CSS3 JavaScript Git NPM

Spis treści

1. Wprowadzenie

1.1. Skład projektu

1.2. Uruchomienie aplikacji

2. Interfejs programu i podstawowe operacje

2.1. Zamykanie programu

2.2. Praca z programem

3. Histogram i tablica LUT

4. Rozciąganie histogramu

4.1. Wyrównanie / equalizacja

5. Negacja

6. Progowanie binarne z progiem wskazanym suwakiem

6.1. Progowanie z zachowaniem poziomów szarości z progiem wskazanym suwakiem

7. Redukcja poziomów szarości przez powtórna kwantyzacje z liczba poziomów szarości wskazana przez użytkownika

8. Rozciąganie histogramu z zakresu p1 – p2 do zakresu q3 – q

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.

10.1. Operacja medianowa na otoczeniu 3x3, 5x5, 7x7, 9x9 z uzupełnianiem brzegów.

11. Operacje logiczne AND, OR, XOR

12. Progowanie metoda Otsu, progowanie z dwoma progami z uwzględnieniem progowania z zachowanie poziomów szarości

13. Segmentacja

14. Błędy aplikacji

15. Dodatkowe elementy aplikacji

16. Projekt

1. Wprowadzenie

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.

1.1. Projekt składa się z:

  • 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

1.2. Uruchomienie aplikacji

Aby uruchomić aplikację należy pobrać plik „apo_wojciech_falkowski.exe” (link) i uruchomić na własnym komputerze

Home page

1.3. Uruchomienie aplikacji (wersja developerska)

  1. yarn
  2. yarn start

2. Interfejs programu i podstawowe operacje

Po uruchomieniu aplikacji wyświetla się okno główne programu.

Home page

Aplikacja składa się z menu górnego z dwoma przyciskami „Obraz” i „Operacje” oraz miejsca gdzie będą pokazywane dane operacje aplikacji.

2.1. Zamykanie programu

Aby zamknąć program należy kliknąć na ikonę krzyżyka w prawym górnym rogu okna głównego

Home page

2.2. Praca z programem

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’.

Home page

Home page

Po wgraniu zdjęcia obraz będzie wyświetlony w prawej części okna aplikacji, aby zacząć prace nad nim należy kliknąć przycisk „+”.

Home page

Home page

3. Histogram i tablica LUT

Z menu górnego należy wybrać opcje ‘Obraz’ -> ‘Zdjęcia’.

Home page

Następnie należy kliknąć w obraz, aby pokazały nam się dane na jego temat (histogram i tablica LUT).

Home page

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.

Home page

4. Rozciąganie histogramu

Z menu górnego należy wybrać opcje ‘Operacje’ -> ‘Rozciągnij / wyrównaj histogram’

Home page

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.

Home page

4.1. Wyrównanie / equalizacja

Home page

5. Negacja

Home page

Home page

6. Progowanie binarne z progiem wskazywanym suwakiem

Home page

Home page

6.1. Progowanie z zachowaniem poziomów szarości z progiem wskazywanym suwakiem

Home page

7. Redukcja poziomów szarości przez powtórna kwantyzacje z liczba poziomów szarości wskazana przez użytkownika

Home page

Home page

8. Rozciąganie histogramu z zakresu p1-p2 do zakresu q3-q

Home page

Home page

9. Wygładzanie liniowe oparte na typowych maskach wygładzania(uśrednianie, uśrednianie z wagami, filtr gaussowski)

Home page

Home page

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.

Home page

Home page

Home page

Home page

10.1. Operacja medianowa na otoczeniu 3x3, 5x5, 7x7, 9x9 z uzupełnianiem brzegów.

Home page

Home page

11. Operacje logiczne AND, OR, XOR

Aby wykonać operacje na wielu obrazach trzeba mieć zaznaczone minimum 2 obrazy.

Home page

Następnie w menu górnym zostaną pokazane opcje, które można wykonać z dana liczba obrazów.

Home page

Home page

Home page

12. Progowanie metoda Otsu, progowanie z dwoma progami z uwzględnieniem progowania z zachowanie poziomów szarości

Home page

Home page

13. Segmentacja

Home page

Home page

14. Błędy aplikacji

W histogramie nie zawsze zaznaczony jest który wykres jest pokazany

Home page

Home page

15. Dodatkowe elementy aplikacji:

  1. 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

Home page

  1. Aplikacja sprawdza czy posiada już obraz wynikowy i dopiero jeżeli go posiada to pozwala zapisac obraz

Home page

16. Projekt

Home page

Home page

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”.

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published