Перейти до вмісту

Оператор Прюітт

Матеріал з Вікіпедії — вільної енциклопедії.

Опера́тор Прюі́тт (англ. Prewitt operator) використовують в обробці зображень, зокрема в алгоритмах виявляння контурів. З технічного погляду це оператор дискретного диференціювання(інші мови), який обчислює наближення градієнта[en] функції яскравості зображення. У кожній точці зображення результат оператора Прюітт — або відповідний вектор градієнта, або норма цього вектора. Оператор Прюітт ґрунтується на згортанні зображення з невеликим роздільним цілочисловим фільтром в горизонтальному та вертикальному напрямках, і відтак відносно невитратний з погляду обчислень, як оператори Собеля та Каялі.[1] З іншого боку, наближення градієнтна, яке він створює, відносно грубе, зокрема для високочастотних мінливостей зображення. Оператор Прюітт розробила Джудіт М. С. Прюітт.[2]

Спрощений опис

[ред. | ред. код]

По-простому, цей оператор обчислює градієнт[en] яскравості зображення в кожній точці, вказуючи напрямок найбільшого можливого збільшення від світлого до темного та швидкість зміни в цьому напрямку. Таким чином, результат показує, наскільки «різко» чи «плавно» змінюється зображення в цій точці, а отже, наскільки правдоподібно, що частина зображення це контур (англ. edge), а також те, який правдоподібний напрямок цього контуру. На практиці інтерпретувати обчислення величини (правдоподібності контуру) надійніше та легше, ніж обчислення напрямку.

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

Формулювання

[ред. | ред. код]

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

де позначує операцію двовимірної згортки.

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

Координату x тут визначено як зростальну «ліворуч», а координату y — як зростальну «вгору». У кожній точці зображення отримані наближення градієнта можливо об'єднувати, щоб отримувати величину градієнта, використовуючи

Використовуючи цю інформацію, ми також можемо обчислювати напрямок градієнта:

де, наприклад, Θ дорівнює 0 для вертикального контуру, темнішого праворуч.

Приклад

[ред. | ред. код]
Зображення цегляної стіни та велостоянки у відтінках сірого
Градієнт із оператором Прюітт для зображення цегляної стіни та велостоянки у відтінках сірого

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Dim, Jules R.; Takamura, Tamio (11 грудня 2013). Alternative Approach for Satellite Cloud Classification: Edge Gradient Application. Advances in Meteorology (англ.). 2013: 1—8. doi:10.1155/2013/584816. ISSN 1687-9309. (англ.)
  2. Prewitt, J.M.S. (1970). Object Enhancement and Extraction. Picture processing and Psychopictorics. Academic Press. (англ.)