Виділіть нерозмиту частину ображеного зображення


10

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

Відповіді:


7

Загалом, це проблема сегментації зображення ( http://en.wikipedia.org/wiki/Image_segmentation ), в яку ви намагаєтеся виділити зосереджені на нефокусовані області зображення.

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

При цифровій обробці зображення низькі частоти відповідають великим об'єктам (загальна форма), а більш високі частоти - дрібним об'єктам (деталі).

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

Щоб відрізнити регіони "розмиті" від "нечіткі", ви можете встановити "вікно" розмірів М×N і пересуньте його по зображенню.

У кожному положенні вікна обчислюємо дисперсію значень "патча" так, ніби вони були одновимірним вектором М×Nзначення. Це призведе до отримання іншого "зображення" (або загалом - двовимірного масиву), що зображає зміну стандартного відхилення в кожному місці вашого зображення. Потім можна зібрати всі ці значення та отримати їх гістограму. Гістограма демонструє мультимодальний розподіл (Докладнішу інформацію див. У розділі http://en.wikipedia.org/wiki/Multimodal_distribution ).

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

Потім ви можете розташувати поріг, наприклад, просто між двома режимами, щоб встановити критерій між зосередженою та нефокусованою областями, а потім вибрати всі "патчі" (або області вікон MxN), стандартне відхилення яких перевищує поріг. (Для отримання додаткової інформації дивіться: http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29 )

Це дозволить виділити зосереджені для вас частини зображення.

Сподіваюсь, це допомагає.


Я зроблю глибоке прочитання вашої відповіді і повернусь із подачею,
велике

Дуже дякую, чудова і детальна відповідь, я збираюся поділитися реалізацією, якщо я отримаю хороші результати, використовуючи opencv, ще раз дякую
Хумам Хелфаві

До речі, річ сірого представника зображення є достатньою чи мені потрібно опрацювати кожен канал?
Хумам Гельфаві

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

Питання було відредаговано у початковій формі після обговорення за адресою: meta.dsp.stackexchange.com/questions/1337/… @ velika академік Будь ласка, додайте свої коментарі як окрему відповідь. Основна частина збереглася за адресою: pastebin.com/kjCC1wM6
A_A

5

Ось простіший підхід, який не включає аналіз розсувних вікон.

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

  • Обчисліть градієнт в обох напрямках

  • Обчисліть величину (або просто квадратний градієнт)

  • Підсумуйте градієнтні зображення в обох напрямках

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

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.