Вирівнювання гістограми зображення. Еквалізація гістограм для підвищення якості зображень

Стіни

Всім привіт. Зараз ми з науковим керівником готуємо до видання монографію, де намагаємось простими словами розповісти про основи цифрової обробки зображень. У цій статті розкривається дуже проста, але водночас дуже ефективна методика підвищення якості зображень – еквалізація гістограм.

Для простоти почнемо розгляд з монохромних зображень (тобто зображень, що містять інформацію тільки про яскравість, але не про колір пікселів). Гістограмою зображення називатимемо дискретну функцію H, визначену на безлічі значень , де bpp – кількість біт, що відводиться для кодування яскравості одного пікселя. Хоча це не є обов'язковим, але гістограми часто нормують в діапазон , виконуючи розподіл кожного значення функції H[i] на загальну кількість пікселів зображення. У Табл. 1 представлені приклади тестових зображень та гістограм, побудованих на їх основі:
Табл. 1. Зображення та їх гістограми

Уважно вивчивши відповідну гістограму можна зробити деякі висновки і про вихідне зображення. Наприклад, гістограми дуже темних зображень характеризуються тим, що ненульові значення гістограми сконцентровані біля нульових рівнів яскравості, а для дуже світлих зображень навпаки – усі ненульові значення сконцентровані у правій частині гістограми.
Інтуїтивно можна зробити висновок, що найбільш зручним для сприйняття людиною буде зображення, яке має гістограму близьку до рівномірного розподілу. Тобто. для покращення візуальної якості до зображення треба застосувати таке перетворення, щоб гістограма результату містила всі можливі значення яскравості і при цьому приблизно однаковій кількості. Таке перетворення називається еквалізацією гістограми і може бути виконано за допомогою коду, наведеного в Лістинг 1.
Лістинг 1. Реалізація процедури еквалізації гістограми

  1. Процес TCGrayscaleImage. HistogramEqualization;
  2. const
  3. k = 255;
  4. h: array [0..k] of double;
  5. i, j: word;
  6. begin
  7. for i : = 0 to k do
  8. h[i]: = 0;
  9. h [ round ( k * self . Pixels [ i, j ] ) ] : = h [ round ( k * self . Pixels [ i, j ] ) ] + 1 ;
  10. for i : = 0 to k do
  11. h[i]: = h[i]/(self. Height * self. Width);
  12. for i : = 1 to k do
  13. h[i]: = h[i - 1] + h[i];
  14. for i: = 0 to self. Height - 1 do
  15. for j: = 0 to self. Width - 1 do
  16. self. Pixels [i, j]: = h [round (k * self. Pixels [i, j]))];
  17. end;

В результаті еквалізації гістограми в більшості випадків істотно розширюється динамічний діапазон зображення, що дозволяє відобразити деталі, що раніше не помічені. Особливо сильно цей ефект проявляється на темних зображеннях, що показано в Табл. 2. Крім того, варто відзначити ще одну важливу особливість процедури еквалізації: на відміну від більшості фільтрів та градаційних перетворень, що потребують налаштування параметрів (апертури та констант градаційних перетворень), еквалізація гістограми може виконуватися в повністю автоматичному режимі без участі оператора.
Табл. 2. Зображення та їх гістограми після еквалізації


Легко можна побачити, що гістограми після еквалізації мають своєрідні помітні розриви. Це з тим, що динамічний діапазон вихідного зображення ширше діапазону вихідного. Очевидно, що у цьому випадку розглянуте у Лістинг 1 відображення не може забезпечити ненульові значення у всіх кишенях гістограми. Якщо все-таки необхідно досягти більш природного виду вихідної гістограми, можна використовувати випадковий розподіл значень i-ої кишені гістограми в деякій його околиці.
Очевидно, що еквалізація гістограм дозволяє легко підвищувати якість монохромних зображень. Звичайно хочеться застосувати подібний механізм і до кольорових зображень.
Більшість не дуже досвідчених розробників представляють зображення у вигляді трьох колірних каналів RGB і намагаються застосувати процедуру еквалізації гістограми до кожного кольору окремо. У деяких рідкісних випадках це дозволяє досягти успіху, але в більшості випадків результат так собі (кольори виходять неприродними та холодними). Це пов'язано з тим, що модель RGB неточно відображає сприйняття кольору людини.
Згадаймо про інший колірний простір – HSI. Ця колірна модель (та інші споріднені з нею) дуже широко використовуються ілюстраторами та дизайнерами так як дозволяють оперувати більш звичними для людини поняттями колірного тону, насиченості та інтенсивності.
Якщо розглянути проекцію RGB-куба у напрямку діагоналі білий-чорний, то вийде шестикутник, кути якого відповідають первинним та вторинним кольорам, а всі сірі відтінки (що лежать на діагоналі куба) при цьому проектуються в центральну точку шестикутника (див. рис. 1):

Мал. 1. Проекція колірного куба
Щоб за допомогою цієї моделі можна було закодувати всі кольори, доступні в RGB-моделі, необхідно додати вертикальну вісь світла (або інтенсивності) (I). У результаті виходить шестигранний конус (Рис. 2, Рис. 3):


Мал. 2. Піраміда HSI (вершини)
У цій моделі колірний тон (H) задається кутом щодо осі червоного кольору, насиченість (S) характеризує чистоту кольору (1 означає чистий колір, а 0 відповідає відтінку сірого). При нульовому значенні насиченості тон немає сенсу і визначено.


Мал. 3. Піраміда HSI
У Табл. 3 показано розкладання зображення по компонентах HSI (білі пікселі в каналі тону відповідають нульовій насиченості):
Табл. 3. Колірний простір HSI


Вважається, що для підвищення якості кольорових зображень найефективніше застосовувати процедуру еквалізації каналу інтенсивності. Саме це й продемонстровано в Табл. 4
Табл. 4. Еквалізація різних колірних каналів


Сподіваюся, цей матеріал здався вам щонайменше цікавим, як максимум корисним. Спасибі.

Попередня обробка зображення-процес поліпшення якості зображення, що ставить за мету отримання на основі оригіналу максимально точного та адаптованого для автоматичного аналізу зображення.

Серед дефектів цифрового зображення можна виділити такі види:

  • Цифровий шум
  • Колірні дефекти (недостатні або надмірні яскравість та контраст, неправильний колірний тон)
  • Розмитість (розфокусування)

Методи попередньої обробки зображень залежать від завдань досліджень і можуть включати такі види робіт:

Фільтрування зашумлених зображень

Цифровий шум зображення- дефект зображення, що вноситься фотосенсорами та електронікою пристроїв, що їх використовують. Для його придушення використовують такі методи:

Лінійне усереднення крапокпо сусідах - найпростіший вид алгоритмів видалення шуму. Основна ідея їх у тому, щоб брати середнє арифметичне значення точок в деякій околиці як нове значення точки.

Фізично така фільтрація реалізується за допомогою обходу пікселів зображення матрицею згортки, що має такий вигляд:

Приклад:

div – це коефіцієнт нормування, щоб середня інтенсивність залишалася не зрадою. Він дорівнює сумі коефіцієнтів матриці, на прикладі div = 6.

Розмиття по гаусу(різновид лінійного згортання) реалізується за допомогою обходу пікселів зображення матрицею згортки, що має такий вигляд:

Матриця 5×5 заповнюється за нормальним (гаусовим законом). Нижче наведена та сама матриця, де коефіцієнти вже є нормованими, так що div для цієї матриці дорівнює одному.

Від розміру матриці залежить сила розмиття.

У верхнього лівого пікселя не існує «сусідів» зліва і зверху, отже, нам нема на що множити коефіцієнти матриці!

Для вирішення цієї проблеми потрібне створення проміжного зображення. Ідея в тому, щоб створювати тимчасове зображення з розмірами

width + 2 gap/2, height + 2 gap/2, де

width і height - ширина і висота зображення, що фільтрується,

gap – розмірність матриці згортки.

У центрі зображення копіюється вхідна картинка, а краї заповнюються крайніми пікселями зображення. Розмиття застосовується до проміжного буфера, та був із нього витягується результат.

Медіанний фільтрявляє собою віконний фільтр, що послідовно сканує зображення, і повертає на кожному кроці один з елементів, що потрапили у вікно фільтра.

Пікселі, які «попадають» у вікно, сортуються в порядку зростання і вибирається значення, яке знаходиться посередині відсортованого списку.

Медіанний фільтр зазвичай використовується для зменшення шуму або згладжування зображення.

Для покращення чіткостізображення використовується наступний фільтр (div=1):

Морфологічні перетворення

Морфологічна фільтрація використовується для розширення (дилактації) чи звуження (ерозії) елементів бінарного зображення.

Дилатація(морфологічне розширення) – згортка зображення або виділення зображення деяким шаблоном. Шаблон може мати довільну форму та розмір. При цьому в ньому виділяється єдина провідна позиція(anchor), яка поєднується з поточним пікселем при обчисленні згортки.

Бінарне зображення – впорядкований набір (упорядкованої множини) чорно-білих точок (пікселів). Максимум інтенсивності пікселів зображення дорівнює одиниці, мінімум – нулю.

Застосування дилатації зводиться до проходу шаблоном по всьому зображення та застосування оператора пошуку локального максимуму інтенсивності пікселів зображення, які накриваються шаблоном. Якщо максимум дорівнює 1, то точка, в якій знаходиться анкор шаблону, буде біла. Така операція викликає зростання світлих областей на зображенні. На малюнку сірим кольором відмічені пікселі, які в результаті застосування дилатації будуть білими.

Ерозія(морфологічне звуження) – операція, обернена до дилатації. Дія ерозії подібна до дилатації, різниця лише в тому, що використовується оператор пошуку локального мінімуму. Якщо мінімум дорівнює 0, то точка, в якій знаходиться анкор шаблону, буде чорною. На малюнку праворуч сірим кольором відмічені пікселі, які стануть чорними внаслідок ерозії.

Операція « Дилатація» – аналог логічного «або», операція « Ерозія»- аналог логічного «і».

Результат морфологічних операцій багато в чому визначається шаблоном, що застосовується (структурним елементом). Вибираючи різний структурний елемент, можна вирішувати різні завдання обробки зображень:

  • Шумопридушення.
  • Виділення меж об'єкта.
  • Виділення скелета об'єкта.

Корекція яскравості та контрасту зображень

Яскравістьє характеристикою, що визначає те, наскільки сильно кольори пікселів відрізняються від чорного кольору. Наприклад, якщо оцифрована фотографія зроблена в сонячну погоду, її яскравість буде значною. З іншого боку, якщо фотографія зроблена ввечері або вночі, її яскравість буде невелика.

Контрастє характеристикою того, наскільки великий розкид мають кольори пікселів зображення. Чим більший розкид мають значення кольорів пікселів, тим більший контраст має зображення.

Існує три основні методи підвищення контрасту зображення:

  • лінійна розтяжка гістограми (лінійне контрастування),
  • нормалізація гістограми,
  • вирівнювання (лінеаризація або еквалізація, еквалілізація) гістограми.

Лінійна розтяжказводиться до присвоєння нових значень інтенсивності кожному пікселю зображення. Якщо інтенсивності вихідного зображення змінювалися в діапазоні від до , тоді необхідно лінійно "розтягнути" зазначений діапазон так, щоб значення змінювалися від 0 до 255. Для цього достатньо перерахувати старі значення інтенсивності для всіх пікселів згідно з формулою де коефіцієнти просто обчислюються, виходячи з того, що кордон має перейти в 0, а – 255.

Нормалізація гістограмина відміну попереднього методу забезпечує розтяжку як діапазону зміни інтенсивностей, лише його найбільш інформативної частини. Під інформативною частиною розуміється набір піків гістограми, тобто. інтенсивності, які найчастіше зустрічаються на зображенні. Бины, відповідні інтенсивно, що рідко зустрічаються, в процесі нормалізації відкидаються, далі виконується звичайна лінійна розтяжка гістограми, що вийшла.

Вирівнюваннягістограм – це один із найпоширеніших способів. Мета вирівнювання полягає в тому, щоб усі рівні яскравості мали однакову частоту, а гістограма відповідала рівномірному закону розподілу. Припустимо, що задано зображення у відтінках сірого, яке має роздільну здатність пікселів. Кількість рівнів квантування яскравості пікселів (кількість бінів) становить . Тоді в середньому на кожен рівень яскравості має випадати пікселів. Базова математика лежить у зіставленні двох розподілів. Нехай - випадкові величини, що описують зміну інтенсивності пікселів на зображеннях - щільність розподілу інтенсивності на вихідному зображенні - бажана щільність розподілу. Необхідно знайти перетворення щільностей розподілу, яке дозволило б отримати бажану щільність:

Позначимо через інтегральні закони розподілу випадкових величин і . З умови ймовірнісної еквівалентності випливає, що . Розпишемо інтегральний закон розподілу за визначенням:

Звідси отримуємо, що

Залишилося з'ясувати, як оцінити інтегральний закон розподілу. Для цього необхідно спочатку побудувати гістограму вихідного зображення, потім нормалізувати отриману гістограму розділивши величину кожного бина на загальну кількість пікселів . Значення бінів можна як наближене значення функції щільності розподілу . Отже, значення інтегральної функції розподілу можна як суму наступного виду:

Побудовану оцінку можна використовуватиме обчислення нових значень інтенсивності. Зауважимо, що перелічені перетворення гістограм можна застосовувати не тільки до всього зображення, а й до окремих його частин.

У бібліотеці OpenCV реалізовано функцію equalizeHist , яка забезпечує підвищення контрастності зображення за допомогою вирівнювання гістограми [ , ]. Прототип функції показано нижче.

void equalizeHist(const Mat&src, Mat&dst)

Функція працює у чотири етапи:

Далі наведемо приклад програми, що забезпечує вирівнювання гістограми. Додаток приймає як аргумент командного рядка назву вихідного зображення. Після виконання операції вирівнювання гістограми виконується відображення вихідного зображення. Використання зображення, що входить до складу бази PASACL VOC 2007., Переведеного у відтінки сірого (рис. 7.11, зліва), і зображення з вирівняною гістограмою (рис. 7.11, праворуч).

#include #include using namespace cv; const char helper = "Sample_equalizeHist.exe \n\t - image file name \ n ";< 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; }


Мал. 7.11.

За всіх поелементних перетвореннях відбувається зміна закону розподілу ймовірностей, що описує зображення. Розглянемо механізм цієї зміни з прикладу довільного перетворення з монотонної характеристикою, описуваної функцією (рис.2.8), має однозначну зворотну функцію . Припустимо, щовипадкова величина підпорядковується щільності ймовірності. Нехай - довільний малий інтервал значень випадкової величини, а - відповідний інтервал перетвореної випадкової величини.

Попадання величини в інтервал спричиняє попадання величини в інтервал, що означає ймовірнісну еквівалентність цих двох подій. Тому, враховуючи трохи обох інтервалів, можна записати наближену рівність:

,

де модулі враховують залежність ймовірностей від абсолютних довжин інтервалів (і незалежність від знаків прирощень та ). Обчислюючи звідси щільність ймовірності перетвореної величини, підставляючи замість його вираз через зворотну функцію і виконуючи граничний перехід при (і, отже,), отримуємо:

. (2.4)

Цей вираз дозволяє обчислити густину ймовірності продукту перетворення, яка, як видно з нього, не збігається з густиною розподілу вихідної випадкової величини. Зрозуміло, що істотний вплив на щільність надає виконуване перетворення, оскільки (2.4) входить його зворотна функція і її похідна.

Співвідношення стають дещо складнішими, якщо перетворення описується не взаємно-однозначною функцією . Прикладом такої складнішої характеристики з неоднозначною зворотною функцією може бути пилкоподібна характеристика рис. 2.4, к. Проте, загалом, зміст ймовірнісних перетворень у своїй не змінюється.

Усі розглянуті у розділі поэлементные перетворення зображень можна розглянути з погляду зміни щільності ймовірності, описуваного виразом (2.4). Очевидно, що при жодному з них щільність ймовірності вихідного продукту не збігатиметься з щільністю ймовірності вихідного зображення (за винятком, звичайно, тривіального перетворення). Неважко переконатися, що при лінійному контрастуванні зберігається вигляд густини ймовірності, однак у загальному випадку, тобто при довільних значеннях параметрів лінійного перетворення, змінюються параметри густини ймовірності перетвореного зображення.

Визначення імовірнісних характеристик зображень, що пройшли нелінійну обробку, є прямим завданням аналізу. При вирішенні практичних завдань обробки зображень може бути поставлена ​​обернена задача: за відомим видом щільності ймовірності та бажаного виду визначити необхідне перетворення , якому слід піддати вихідне зображення. У практиці цифрової обробки зображень часто до корисного результату призводить перетворення зображення до рівноймовірного розподілу. В цьому випадку

де і - мінімальне та максимальне значення яскравості перетвореного зображення. Визначимо характеристику перетворювача, що вирішує це завдання. Нехай і пов'язані функцією (2.2), а - інтегральні закони розподілу вхідний і вихідний величин. Враховуючи (2.5), знаходимо:

.

Підставляючи цей вислів за умови імовірнісної еквівалентності

після простих перетворень отримуємо співвідношення

що представляє собою характеристику (2.2) у розв'язуваній задачі. Відповідно до (2.6) вихідне зображення проходить нелінійне перетворення, характеристика якого визначається інтегральним законом розподілу самого вихідного зображення. Після цього результат наводиться до заданого динамічного діапазону з допомогою операції лінійного контрастування.

Аналогічним чином можна отримати рішення інших подібних завдань, у яких потрібно привести закони розподілу зображення до заданого виду. Наведено таблицю таких перетворень. Одне, так звана гіперболізація розподілу, передбачає приведення щільності ймовірності перетвореного зображення до гіперболічного вигляду:

(2.7)

Якщо врахувати, що з проходження світла через око вхідна яскравість логарифмується його сітківкою, то підсумкова щільність ймовірності виявляється рівномірною. Таким чином, на відміну від попереднього прикладу полягає в обліку фізіологічних властивостей зору. Можна показати, що зображення з густиною ймовірності (2.7) виходить на виході нелінійного елемента з характеристикою

також визначається інтегральним законом розподілу вихідного зображення.

Таким чином, перетворення густини ймовірності передбачає знання інтегрального розподілу для вихідного зображення. Як правило, достовірних відомостей про нього немає. Використання для цілей аналітичних апроксимацій також малопридатне, т.к. їх невеликі відхилення від справжніх розподілів можуть призводити до суттєвого відхилення результатів від необхідних. Тому в практиці обробки зображень перетворення розподілів виконують у два етапи.

У першому етапі вимірюється гістограма вихідного зображення. Для цифрового зображення, шкала яскравостей якого, наприклад, належить цілісному діапазону 0...255, гістограма є таблицею з 256 чисел. Кожна з них показує кількість точок у кадрі, що мають цю яскравість. Розділивши всі числа цієї таблиці на загальний розмір вибірки, що дорівнює кількості використовуваних точок зображення, отримують оцінку розподілу ймовірностей яскравості зображення. Позначимо цю оцінку . Тоді оцінка інтегрального розподілу виходить за такою формулою:

.

На другому етапі виконується саме нелінійне перетворення (2.2), що забезпечує необхідні властивості вихідного зображення. При цьому замість невідомого істинного інтегрального розподілу використовується оцінка, заснована на гістограмі. З огляду на це всі методи поелементного перетворення зображень, метою яких є видозміна законів розподілу, отримали назву гістограмних методів. Зокрема, перетворення, у якому вихідне зображення має рівномірний розподіл, називається еквалізацією (вирівнюванням) гістограм.

Зазначимо, що процедури перетворення гістограм можуть застосовуватися як до зображення в цілому, так і до окремих його фрагментів. Останнє може бути корисним при обробці нестаціонарних зображень, зміст яких суттєво відрізняється за своїми характеристиками різних ділянках. У цьому випадку кращого ефекту можна досягти, застосовуючи гістограмну обробку до окремих ділянок.

Використання співвідношень (2.4)-(2.8) , справедливих для зображень з безперервним розподілом яскравості, не є цілком коректним для цифрових зображень. Необхідно мати на увазі, що в результаті обробки не вдається отримати ідеальний розподіл ймовірностей вихідного зображення, тому корисно контролювати його гістограми.

а) вихідне зображення

б) результат обробки

Мал. 2.9. Приклад еквалізації зображення

На рис.2.9 наведено приклад еквалізації, виконаної відповідно до викладеної методики. Характерною рисою багатьох зображень, одержуваних у реальних системах, є значна питома вага темних ділянок і порівняно мала кількість ділянок з високою яскравістю. Еквалізація покликана відкоригувати картину, вирівнявши інтегральні площі ділянок із різними яскравостями. Порівняння вихідного (рис.2.9.а) і обробленого (рис.2.9.б) зображень показує, що перерозподіл яскравостей, що відбувається при обробці, призводить до поліпшення візуального сприйняття.