Skip to main content
LibreTexts - Ukrayinska

6.3: Основні операції із зображеннями

  • Page ID
    31963
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

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

    clipboard_ea16fbc12fa985f5c8ef1fcf4ed6b32b6.png
    Малюнок\(\PageIndex{1}\): Зображення далматинської собаки може бути чітко розпізнано більшістю глядачів, навіть якщо низькорівневі сигнали, такі як ребра, присутні лише для вух, підборіддя та частин ніг. Контури тварин підсвічуються в перевернутому варіанті зображення у вставці.

    6.3.1. Фільтри на основі згортки

    Фільтр може бути реалізований за допомогою оператора згортки, який згортає функцію f () з функцією g ().

    \[f(x) \star g(x)=\int_{-\infty }^{\infty }f(\tau )g(x-\tau )d\tau \]

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

    \[f\left [ x \right ]\star g[x]=\sum_{i=-\infty }^{\infty }f[i]g[x-i]\]

    Для 2D-сигналів, як і зображень, згортка також двовимірна:

    \[f[x,y]\star g[x,y]=\sum_{i=-\infty }^{\infty }\sum_{j=-\infty }^{\infty }f[i,j]g[x-i,y-j]\]

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

    \[f[x,y]\star g[x,y]=\sum_{i=-\infty }^{\infty }\sum_{j=-\infty }^{\infty }f[x-i,y-j]g[i,j]\]

    Гаусове згладжування

    Дуже важливим фільтром є фільтр Гаусса. Він має форму функції гаусового дзвінка і може бути легко збережений у 2D-матриці. Реалізація гаусового фільтра напрочуд проста, наприклад, наприклад,

    \ [g (x, y) =\ frac {1} {10}\ почати {pmatrix}
    1 & 1\ 1 & 2\
    1\ 1 & 1 &
    1 & 1\ 1
    \ кінець {pmatrix}\]

    Використання цього фільтра в Рівнянні 6.3.4 на нескінченно великому зображенні f () призводить до

    \[f[x,y]\star g[x,y]=\sum_{i=-1 }^{1 }\sum_{j=-1 }^{1 }f[x-i,y-j]g[i,j]\]

    (припускаючи, що g (0, 0) звертається до центру матриці). Зараз відбувається те, що кожен піксель f (x, y) стає середнім показником його сусідів, причому його попереднє значення зважується двічі (як g (0, 0) = 0,2), що у їхніх сусідів. Більш конкретно,

    \ [f (x, y) =llf (x+1, y+1) г (-1, -1) +f (х+1, у) г (-1,0) +f (x+1, y-1) г (-1,1) +f (x, y+1) г (0, −1) +f (x, y) г (0,0) +f (x, y−1) г (0,1)
    +f (x−1, y+1) г (1, −1) +f (x−1, y) г (1,0) +f (x−1, y−1) г (1,1)\]

    Робити це для всіх x і all y буквально відповідає ковзанню фільтра g () уздовж зображення.

    Приклад фільтра g (x, y) в дії наведено на малюнку 6.3.2. Фільтр виконує роль фільтра низьких частот, пригнічуючи високочастотні компоненти. Дійсно, шум у зображенні пригнічується, що призводить також до більш гладкого краю зображення, яке показано під ним.

    Виявлення країв

    Виявлення краю може бути досягнуто за допомогою іншого фільтра на основі згортки, ядра Sobel

    clipboard_e1f8100ec32771371939af053a938bc2d.png

    Тут s x (x, y) можна використовувати для виявлення вертикальних країв, тоді як s y (x, y) виділяє горизонтальні ребра. Тому крайові детектори, такі як детектор краю Канні, запускають принаймні два таких фільтри над зображенням для виявлення як горизонтальних, так і вертикальних країв.

    clipboard_ebb8d3b68d5656a10a27b05e69a10ca33.png
    Рисунок\(\PageIndex{2}\): Шумне зображення до (вгорі ліворуч) та після фільтрування за допомогою гаусового ядра (вгорі праворуч). Відповідні крайові зображення показані внизу.

    відмінність гаусів

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

    Відмінності гаусів також можуть бути використані для наближення лапласа Гаусса, тобто суми других похідних гауссового ядра. Тут одне ядро приблизно в 1,6 рази ширше іншого. Смугова характеристика DoG та LogS важлива, оскільки вони виділяють високочастотну інформацію, таку як ребра, але пригнічують високочастотний шум на зображенні.

    6.3.2. Операції на основі порогових значень

    Для того, щоб знайти об'єкти з певною інтенсивністю кольору або краю, порогове значення зображення призведе до бінарного зображення, яке містить області «true-false», які відповідають бажаним критеріям. Порогові значення використовують такі оператори, як >, <, ≤, ≥ та їх комбінації. Існують також адаптивні версії, які б адаптували пороги локально, наприклад, щоб компенсувати зміну умов освітлення.

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

    clipboard_ef5b980420a01086d38d36520cd7b213a.png
    Рисунок\(\PageIndex{3}\): Приклади морфологічних операторів ерозії та дилатації та їх комбінацій.

    6.3.3. Морфологічні операції

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

    Важливими морфологічними операторами є ерозія і розширення. Оператор ерозії призначає значення пікселя з мінімальним значенням, яке він може знайти в околицях, визначеному ядром. Оператор розширення призначає значення пікселя з максимальним значенням, яке він може знайти в околицях, визначеному ядром. Це корисно, наприклад, для заповнення отворів у рядку або видалення шуму. Розширення, за яким слідує ерозія, відома як «Закриття», а ерозія з подальшим розширенням як «Відкриття». Віднімання стертих і розширених зображень один від одного також може служити детектором краю. Приклади таких операторів наведені на малюнку 6.3.3.