Wyrównanie histogramu obrazu. Podstawowe operacje przetwarzania obrazu. Import, eksport i konwersja

PORÓWNANIE ALGORYTMÓW WYRÓWNAWCZYCH

HISTOGRAM OBRAZÓW PÓŁTONOWYCH

1 "2 Aleksandrovskaya A.A., Mavrin E.M.

1 Aleksandrowska Anna Andreevna – studentka studiów magisterskich; Mavrin Evgeniy Michajłowicz – student studiów magisterskich, wydział systemy informacyjne i telekomunikacja,

Wydział Informatyki i Systemów Sterowania, Moskiewski Państwowy Uniwersytet Techniczny. NE Baumana, Moskwa

Streszczenie: w artykule porównano algorytmy cyfrowego przetwarzania obrazu, czyli algorytmy wyrównywania histogramów. Rozważane są trzy algorytmy: globalne wyrównywanie histogramu (GHE), adaptacyjne wyrównywanie histogramu (AHE) i adaptacyjne wyrównywanie histogramu z ograniczeniem kontrastu (CANE). Efektem pracy opisanej w artykule jest wizualne porównanie działania algorytmów na identycznych obrazach.

Słowa kluczowe: histogram obrazu, wyrównywanie obrazu histogramu, COI, wizja komputerowa, ANE, SYANE.

Aby poprawić jakość obrazu, konieczne jest zwiększenie zakresu jasności, kontrastu, ostrości i przejrzystości. Łącznie parametry te można poprawić poprzez wyrównanie histogramu obrazu. Do określenia konturów obiektów w większości przypadków wystarczą dane zawarte na obrazie w skali szarości. Obraz rastrowy to obraz, który zawiera informacje tylko o jasności, ale nie o kolorze pikseli. W związku z tym wskazane jest skonstruowanie histogramu obrazu rastrowego.

Niech rozpatrywany obraz składa się z n pikseli o intensywności (jasności) r z zakresu od 0 do 2bpp, gdzie bpp to liczba bitów przeznaczonych do zakodowania jasności jednego piksela. W większości modeli kolorów do kodowania

Jasność jednego koloru jednego piksela wymaga 1 bajtu. W związku z tym intensywność pikseli jest definiowana w zestawie od 0 do 255. Wykres przedstawiający liczbę pikseli obrazu o intensywności r w funkcji samej intensywności nazywa się histogramem obrazu. Na ryc. Rysunek 1 przedstawia przykład obrazów testowych i histogramów skonstruowanych na ich podstawie:

Ryż. 1. Przetestuj obrazy i ich histogramy

Oczywiście, badając odpowiedni histogram, można wyciągnąć wnioski na temat oryginalnego obrazu. Przykładowo histogramy bardzo ciemnych obrazów charakteryzują się koncentracją niezerowych wartości histogramu w pobliżu zerowych poziomów jasności, natomiast w przypadku jasnych obrazów odwrotnie, wszystkie niezerowe wartości zbierane są po prawej stronie histogram.

Algorytmy wyrównywania histogramów są popularnymi algorytmami poprawiającymi przetworzony obraz rastrowy. Generalnie algorytmy HE (Histogram Equalization) charakteryzują się stosunkowo niskim kosztem obliczeniowym, a jednocześnie charakteryzują się dużą wydajnością. Istotą tego typu algorytmów jest regulacja poziomów obrazu rastrowego zgodnie z funkcją rozkładu prawdopodobieństwa danego obrazu (1) i w efekcie zwiększenie zakresu dynamicznego rozkładu jasności. Prowadzi to do poprawy efektów wizualnych,

takie jak: kontrast jasności, ostrość, klarowność.

p(i) = -, i = 0, 0,255, n

gdzie p(i) to prawdopodobieństwo wystąpienia piksela o jasności i, znormalizowana funkcja histogramu obrazu oryginalnego, k to współrzędne pikseli przetworzonego obrazu, g(k) to wyrównany obraz.

Algorytmy wyrównywania histogramów dzielą się na dwa typy: wyrównywanie histogramu lokalnego (adaptacyjnego) i wyrównywanie histogramu globalnego. W metodzie globalnej konstruuje się jeden diagram i wyrównuje histogram całego obrazu (ryc. 3 a). W metodzie lokalnej (ryc. 3b) przeprowadza się budowę duże ilości histogramy, gdzie każdy histogram odpowiada tylko części przetworzonego obrazu. Metoda ta poprawia lokalny kontrast

obrazów, co pozwala ogólnie uzyskać lepsze wyniki przetwarzania.

Algorytmy przetwarzania lokalnego można podzielić na następujące typy: nakładające się lokalne jednostki przetwarzające, niezachodzące na siebie lokalne jednostki przetwarzające i częściowo nakładające się lokalne jednostki przetwarzające (rys. 2).

Ryż. 2. Ilustracja pracy różne rodzaje lokalne algorytmy przetwarzania obrazu: a) nakładające się lokalne bloki przetwarzania, b) nienakładające się lokalne bloki przetwarzania, c) częściowo nakładające się lokalne bloki przetwarzania

Algorytm blokowania nakładania się daje najlepszy wynik przetwarzania, ale jest najwolniejszy spośród wymienionych. Przeciwnie, algorytm nienakładających się bloków wymaga krótszego czasu przetwarzania, przy wszystkich pozostałych czynnikach, ale ponieważ przetwarzane bloki nie nakładają się na siebie, możliwe są ostre zmiany jasności w końcowym obrazie. Rozwiązaniem kompromisowym jest algorytm bloków częściowo nakładających się. Wadami adaptacyjnych algorytmów wyrównywania histogramu jest nadmierne wzmocnienie parametrów obrazu i możliwy wynikający z tego wzrost szumu w ostatecznym obrazie.

Ulepszoną wersją powyższego algorytmu jest algorytm adaptacyjnej korekcji histogramu z ograniczonym kontrastem (CLAHE) (ryc. 4c). Główną cechą tego algorytmu jest ograniczenie

zakres histogramu na podstawie analizy wartości jasności pikseli w przetwarzanym bloku (2), dzięki czemu powstały obraz wygląda bardziej naturalnie i mniej zaszumiony.

gdzie add jest współczynnikiem przyrostu wartości funkcji histogramu, ps jest liczbą przekroczonych pikseli Wartość progowa. Ilustrację zmiany histogramu pokazano na rysunku 3.

Ryż. 3. Ograniczenie zakresu histogramu w algorytmie CLAHE

Warto zaznaczyć, że klasyczny algorytm SILIB wykorzystuje interpolację dwuliniową w celu eliminacji granic pomiędzy przetwarzanymi blokami.

Ryż. 4. Wyniki algorytmów wyrównywania histogramów: a) globalne wyrównywanie histogramu (HE), b) adaptacyjne wyrównywanie histogramu (ANE), c) adaptacyjne wyrównywanie histogramu z ograniczeniem kontrastu (CANE)

Podczas wizualnego porównywania wyników przetwarzania najlepsza metoda to CLAHE (ryc. 3c). Obraz przetworzony tą metodą ma mniej szumów niż obraz przetworzony przez AHE, a kontrast luminancji jest bardziej naturalny. W porównaniu do obrazu przetwarzanego metodą globalnej korekcji, metoda CLAHE poprawia wyrazistość drobnych i nieostrych szczegółów przetwarzanego obrazu, a także zwiększa kontrast, ale nie tak przesadnie, jak w przypadku metody AHE. Poniżej znajduje się także tabela szacująca czas wykonania omawianych metod w środowisku programistycznym MATLAB 2016.

Tabela 1. Szacunkowy czas realizacji rozważanego rozwiązania

czas realizacji

Nazwa programu c Czas wykonania

metoda rozważaną metodą, c metoda, c

CLAHE 0,609 0,519

Bibliografia

1. Chichvarin N.V. Wykrywanie i rozpoznawanie sygnału // Biblioteka Narodowa ich. NE Baumana [ Zasób elektroniczny] 2016, Tryb dostępu: https://ru.bmstu.wiki/Correction_of_brightness_and_contrast_ of images (data dostępu: 05.03.2019).

2. Gonzalez R.K. , Woods RE . Cyfrowe przetwarzanie obrazu, wydanie 3, New Jersey: Pearson Education, 2008. 950 s.

3. Gupta S., Kaur Y. Review of Different Local and Global Contrast Enhancement Techniques for a Digital Image // International Journal of Computer Applications [Zasoby elektroniczne] 2014, URL: https://pdfs.semanticscholar.org/7fb1/bf8775a1a1eaad9b3d1f4 5bc85adc5c3212f.pdf (data dostępu: 3.05 2019).

4. Ma J., Fan X. , Młody S. X. , Zang X. , Ztsu Ks. . Funkcja adaptacyjnej korekcji histogramu z ograniczonym kontrastem w celu uwydatnienia obrazu podwodnego // Preprinty [Zasoby elektroniczne] 2017, URL: https: //www. przeddruki. org/manuscript/201703.0086/v 1 (Data dostępu: 03.05.2019).

Istnieją trzy główne metody zwiększania kontrastu obrazu:

  • rozciąganie histogramu liniowego (kontrast liniowy),
  • normalizacja histogramu,
  • wyrównanie (linearyzacja lub wyrównanie) histogramu.

Rozciągnięcie liniowe sprowadza się do przypisania nowych wartości intensywności każdemu pikselowi na obrazie. Jeżeli intensywności obrazu oryginalnego zmieniały się w zakresie od do , to należy liniowo „rozciągnąć” podany zakres tak, aby wartości zmieniły się od 0 do 255. W tym celu wystarczy przeliczyć stare wartości intensywności dla wszystkich pikseli według wzoru, gdzie współczynniki są po prostu obliczane w oparciu o to, że granica powinna wynosić 0, a 255.

Normalizacja histogramu W odróżnieniu od poprzedniej metody nie rozciąga ona całego zakresu zmian intensywności, a jedynie jego najbardziej informacyjną część. Przez część informacyjną rozumie się zbiór pików histogramu, tj. intensywności, które pojawiają się częściej niż inne na obrazie. Pojemniki odpowiadające rzadko występującym natężeniom są odrzucane w procesie normalizacji, a następnie przeprowadzane jest zwykłe liniowe rozciąganie powstałego histogramu.

Wyrównanie histogramy są jedną z najpowszechniejszych metod. Celem wyrównywania jest zapewnienie, że wszystkie poziomy jasności mają tę samą częstotliwość i że histogram ma równomierny rozkład. Załóżmy, że otrzymaliśmy obraz w skali szarości o rozdzielczości w pikselach. Liczba poziomów kwantyzacji jasności pikseli (liczba przedziałów) wynosi . Wtedy średnio dla każdego poziomu jasności powinno być pikseli. Podstawowa matematyka polega na porównaniu dwóch rozkładów. Niech będą zmiennymi losowymi opisującymi zmianę intensywności pikseli na obrazach, będą gęstością rozkładu intensywności na oryginalnym obrazie i będą pożądaną gęstością rozkładu. Należy znaleźć transformację gęstości rozkładu, która pozwoliłaby uzyskać pożądaną gęstość:

Oznaczmy przez i integralne prawa rozkładu zmiennych losowych i . Z warunku probabilistycznej równoważności wynika, że . Zapiszmy z definicji całkowe prawo dystrybucji:

Stąd to rozumiemy

Pozostaje dowiedzieć się, jak oszacować całkowe prawo dystrybucji. Aby to zrobić, musisz najpierw zbudować histogram oryginalnego obrazu, a następnie znormalizować powstały histogram, dzieląc wartość każdego pojemnika przez całkowitą liczbę pikseli. Wartości bin można traktować jako przybliżenie funkcji gęstości rozkładu. Zatem wartość funkcji rozkładu skumulowanego można przedstawić jako sumę w postaci:

Skonstruowane oszacowanie można wykorzystać do obliczenia nowych wartości intensywności. Należy pamiętać, że wymienione przekształcenia histogramu można zastosować nie tylko do całego obrazu, ale także do jego poszczególnych części.

Biblioteka OpenCV implementuje funkcjęqualizeHist, która zapewnia poprawę kontrastu obrazu poprzez wyrównanie histogramu [,]. Prototyp funkcji pokazano poniżej.

voidqualizeHist(const Mat& src, Mat& dst)

Funkcja działa w czterech etapach:

Poniżej podajemy przykład programu, który zapewnia wyrównanie histogramu. Aplikacja przyjmuje nazwę obrazu źródłowego jako argument wiersza poleceń. Po wykonaniu operacji wyrównywania histogramu wyświetlony zostanie oryginalny obraz 1 Wykorzystany obraz jest częścią bazy danych PASACL VOC 2007., przekonwertowany na skalę szarości (ryc. 7.11, po lewej) i obraz z wyrównanym histogramem (ryc. 7.11, po prawej).

#włączać #włączać używając przestrzeni nazw cv; const char pomocnik = "Sample_equalizeHist.exe \n\ \t - nazwa pliku obrazu\n"; int main(int argc, char* argv) ( const char *initialWinName = "Obraz początkowy", *equalizedWinName = "Obraz wyrównany"; Mat img, GrayImg,qualizedImg; if (argc< 2) { printf("%s", helper); return 1; } // загрузка изображения img = imread(argv, 1); // преобразование в оттенки серого cvtColor(img, grayImg, CV_RGB2GRAY); // выравнивание гистограммы equalizeHist(grayImg, equalizedImg); // отображение исходного изображения и гистограмм namedWindow(initialWinName, CV_WINDOW_AUTOSIZE); namedWindow(equalizedWinName, CV_WINDOW_AUTOSIZE); imshow(initialWinName, grayImg); imshow(equalizedWinName, equalizedImg); waitKey(); // закрытие окон destroyAllWindows(); // осовобождение памяти img.release(); grayImg.release(); equalizedImg.release(); return 0; }


Ryż. 7.11.

Wstępna obróbka obrazu- proces poprawy jakości obrazu, mający na celu uzyskanie, na podstawie oryginału, jak najdokładniejszego i dostosowanego do potrzeb automatyczna analiza Obrazy.

Wśród wad obrazu cyfrowego możemy wyróżnić następujące typy:

  • Cyfrowy szum
  • Wady kolorów (niewystarczająca lub nadmierna jasność i kontrast, nieprawidłowy odcień kolorów)
  • Rozmycie (rozmycie)

Metody wstępnej obróbki obrazu zależą od celów badawczych i mogą obejmować następujące rodzaje prac:

Filtrowanie zaszumionych obrazów

Cyfrowy szum obrazu- wada obrazu powodowana przez fotoczujniki i elektronikę urządzeń je wykorzystujących. Aby go stłumić, stosuje się następujące metody:

Uśrednianie liniowe punktów następne drzwi - najprostszy rodzaj algorytmów usuwania szumu. Ich główną ideą jest przyjęcie średniej arytmetycznej punktów w pewnym sąsiedztwie jako nowej wartości punktu.

Fizycznie takie filtrowanie realizowane jest poprzez przechodzenie pikseli obrazu przez macierz splotu, która ma następującą postać:

Przykład:

div jest współczynnikiem normalizacji, dzięki czemu średnia intensywność pozostaje niezmieniona. Jest ona równa sumie współczynników macierzy, w przykładzie div = 6.

rozmycie Gaussa(rodzaj splotu liniowego) jest realizowany poprzez przechodzenie pikseli obrazu przez macierz splotu, która wygląda następująco:

Macierz 5x5 jest wypełniona zgodnie z prawem normalnym (Gaussa). Poniżej znajduje się ta sama macierz, w której współczynniki są już znormalizowane, więc div dla tej macierzy jest równy jeden.

Siła rozmycia zależy od wielkości matrycy.

Lewy górny piksel nie ma „sąsiadów” po lewej i powyżej, dlatego nie mamy przez co mnożyć współczynników macierzy!

Rozwiązanie tego problemu wymaga stworzenia obrazu pośredniego. Pomysł polega na stworzeniu tymczasowego obrazu z wymiarami

szerokość + 2 szczelina / 2, wysokość + 2 szczelina / 2, gdzie

szerokość i wysokość – szerokość i wysokość filtrowanego obrazu,

przerwa – wymiar macierzy splotu.

Obraz wejściowy jest kopiowany na środek obrazu, a krawędzie są wypełniane zewnętrznymi pikselami obrazu. Rozmycie jest stosowane do bufora pośredniego, a następnie pobierany jest z niego wynik.

Filtr medianowy to filtr okienny, który sekwencyjnie skanuje obraz i zwraca na każdym kroku jeden z elementów, który wpadł do okna filtra.

Piksele, które „wpadają” do okna, są sortowane w kolejności rosnącej i wybierana jest wartość znajdująca się pośrodku posortowanej listy.

Filtr medianowy jest zwykle używany do redukcji szumów lub „wygładzenia” obrazu.

Aby poprawić przejrzystość image używany jest następujący filtr (div=1):

Przekształcenia morfologiczne

Filtrowanie morfologiczne służy do rozszerzania (dylatacji) lub zawężania (erozji) elementów obrazu binarnego.

Dylatacja(ekspansja morfologiczna) – splot obrazu lub wybranego obszaru obrazu z jakimś szablonem. Szablon może mieć dowolny kształt i rozmiar. Jednocześnie jedyne, co się w nim wyróżnia, to pozycję lidera(kotwica), która jest łączona z bieżącym pikselem podczas obliczania splotu.

Obraz binarny to uporządkowany zbiór (uporządkowany zbiór) czarno-białych kropek (pikseli). Maksymalna intensywność pikseli obrazu wynosi jeden, a minimalna wynosi zero.

Zastosowanie dylatacji sprowadza się do nałożenia szablonu na cały obraz i zastosowania operatora wyszukiwania lokalnego maksymalnego natężenia pikseli obrazu objętych szablonem. Jeśli maksimum wynosi 1, wówczas punkt, w którym znajduje się kotwica szablonu, będzie biały. Operacja ta powoduje powiększenie jasnych obszarów obrazu. Na rysunku piksele są zaznaczone na szaro, które w wyniku zastosowania dylatacji staną się białe.

Erozja(zwężenie morfologiczne) jest operacją odwrotną do dylatacji. Efekt erozji jest podobny do dylatacji, jedyną różnicą jest to, że używany jest lokalny operator wyszukiwania minimalnego. Jeśli minimum wynosi 0, wówczas punkt, w którym znajduje się kotwica szablonu, będzie czarny. Na rysunku po prawej szare piksele to piksele, które zmienią kolor na czarny w wyniku erozji.

Operacja " Dylatacja" - analogia logicznej operacji "lub" Erozja„ jest odpowiednikiem logicznego „i”.

Wynik operacji morfologicznych w dużej mierze zależy od użytego szablonu (elementu konstrukcyjnego). Wybierając inny element konstrukcyjny, możesz rozwiązać różne problemy z przetwarzaniem obrazu:

  • Wyciszenie dźwięku.
  • Wybór granic obiektu.
  • Wybór szkieletu obiektu.

Korygowanie jasności i kontrastu obrazu

Jasność to cecha określająca, jak bardzo kolory pikseli różnią się od czerni. Na przykład, jeśli zdigitalizowane zdjęcie zostało wykonane przy słonecznej pogodzie, jego jasność będzie znacząca. Z drugiej strony, jeśli zdjęcie zostało zrobione wieczorem lub w nocy, wówczas jego jasność będzie niska.

Kontrast jest cechą określającą stopień zróżnicowania kolorów pikseli obrazu. Im większy rozrzut wartości kolorów pikseli, tym większy kontrast ma obraz.

W przypadku wszystkich transformacji element po elemencie zmienia się prawo rozkładu prawdopodobieństwa opisujące obraz. Przy kontraście liniowym postać gęstości prawdopodobieństwa zostaje zachowana, ale w przypadku ogólnym, tj. przy dowolnych wartościach parametrów transformacji liniowej zmieniają się parametry gęstości prawdopodobieństwa przekształconego obrazu.

Określenie probabilistycznych cech obrazów poddanych przetwarzaniu nieliniowemu jest bezpośrednim zadaniem analizy. Rozwiązując praktyczne problemy przetwarzania obrazu, można sformułować problem odwrotny: wykorzystując znany typ gęstości prawdopodobieństwa p.f(F) i pożądany wygląd str. gl(G) określić wymaganą transformację G= ϕ( F), któremu powinien zostać poddany obraz oryginalny. W praktyce cyfrowego przetwarzania obrazu przekształcenie obrazu do rozkładu równie prawdopodobnego często daje przydatne wyniki. W tym przypadku

Gdzie G min i G max – minimalne i maksymalne wartości jasności konwertowanego obrazu. Określmy charakterystykę konwertera rozwiązującego ten problem. Pozwalać F I G połączone funkcją G(N, M) = j( F(N, M)), A Pf(F) I str(G) – całkowe prawa rozkładu jasności wejściowej i wyjściowej. Biorąc pod uwagę (6.1), znajdujemy:

Podstawienie tego wyrażenia pod warunek równoważności probabilistycznej

po prostych przekształceniach otrzymujemy zależność

reprezentujący cechę G(N, M) = j( F(N, M)) w rozwiązywanym problemie. Zgodnie z (6.2) obraz oryginalny ulega transformacji nieliniowej, której cechą charakterystyczną jest: Pf(F) jest określone przez integralne prawo dystrybucji oryginalnego obrazu. Następnie wynik jest doprowadzany do określonego zakresu dynamicznego za pomocą operacji kontrastu liniowego.

Zatem transformacja gęstości prawdopodobieństwa zakłada znajomość skumulowanego rozkładu obrazu pierwotnego. Z reguły nie ma na ten temat wiarygodnych informacji. Aproksymacja funkcjami analitycznymi, ze względu na błędy aproksymacji, może prowadzić do znacznych różnic wyników w stosunku do wymaganych. Dlatego w praktyce przetwarzania obrazu transformacja rozkładów odbywa się dwuetapowo.



W pierwszym etapie mierzony jest histogram oryginalnego obrazu. W przypadku obrazu cyfrowego, którego skala szarości należy na przykład do zakresu liczb całkowitych, histogram jest tabelą zawierającą 256 liczb. Każdy z nich pokazuje liczbę punktów obrazu (ramki) posiadających daną jasność. Dzieląc wszystkie liczby w tej tabeli przez całkowitą wielkość próbki równą liczbie próbek na obrazie, otrzymujemy oszacowanie rozkładu prawdopodobieństwa jasności obrazu. Oznaczmy to oszacowanie przez q p.f(f q), 0 ≤ f q≤ 255. Następnie oszacowanie rozkładu skumulowanego uzyskuje się ze wzoru:

W drugim etapie wykonywana jest sama transformacja nieliniowa (6.2), zapewniająca niezbędne właściwości obrazu wyjściowego. W tym przypadku zamiast nieznanego prawdziwego rozkładu skumulowanego stosuje się jego oszacowanie na podstawie histogramu. Biorąc to pod uwagę, wszystkie metody transformacji obrazu element po elemencie, których celem jest modyfikacja praw rozkładu, nazywane są metodami histogramowymi. W szczególności nazywa się transformację, w której obraz wyjściowy ma rozkład równomierny wyrównanie (wyrównanie) histogramu.

Należy pamiętać, że procedury konwersji histogramu można zastosować zarówno do obrazu jako całości, jak i do jego poszczególnych fragmentów. To ostatnie może być przydatne przy przetwarzaniu obrazów niestacjonarnych, których charakterystyka znacznie się różni w różnych obszarach. W tym przypadku lepszy efekt można uzyskać stosując obróbkę histogramową do poszczególnych obszarów – obszarów zainteresowania. To prawda, że ​​\u200b\u200bwartości odczytów i wszystkich innych obszarów ulegną zmianie. Rysunek 6.1 przedstawia przykład wyrównania wykonanego zgodnie z opisaną metodologią.

Cechą charakterystyczną wielu obrazów uzyskiwanych w rzeczywistych systemach obrazowania jest znaczny udział obszarów ciemnych i stosunkowo niewielka liczba obszarów o dużej jasności.

Rysunek 6.1 – Przykład wyrównywania histogramu obrazu: a) obraz oryginalny i jego histogram c); b) przekształcony obraz i jego histogram d)

Wyrównanie histogramu prowadzi do wyrównania obszarów całkowych równomiernie rozłożonych zakresów jasności. Porównanie obrazów oryginalnych (rysunek 6.1 a) i przetworzonych (rysunek 6.1 b) pokazuje, że redystrybucja jasności zachodząca podczas przetwarzania prowadzi do poprawy percepcji wzrokowej.