У мене є зображення, зроблене камерою мобільного телефону з фокусом на його частині, скажімо, на обличчі чи будь-що інше. Я хочу знати приблизно - де зосереджена область. Наприклад, обмежувальний ящик навколо зосередженої області. приклад:
У мене є зображення, зроблене камерою мобільного телефону з фокусом на його частині, скажімо, на обличчі чи будь-що інше. Я хочу знати приблизно - де зосереджена область. Наприклад, обмежувальний ящик навколо зосередженої області. приклад:
Відповіді:
Загалом, це проблема сегментації зображення ( http://en.wikipedia.org/wiki/Image_segmentation ), в яку ви намагаєтеся виділити зосереджені на нефокусовані області зображення.
Оптичні лінзи в будь-якому випадку еквівалентні фільтрам низьких частот, і вплив фільтра низьких частот на сигнал полягає в його згладжуванні, обмежуючи вміст більш високої частоти.
При цифровій обробці зображення низькі частоти відповідають великим об'єктам (загальна форма), а більш високі частоти - дрібним об'єктам (деталі).
Тому, щоб виділити зосереджену область, ви можете шукати області, які мають більш високе стандартне відхилення відносно розмитих ділянок, яке було б нижчим стандартним відхиленням через операцію згладжування лінзи поза фокусом.
Щоб відрізнити регіони "розмиті" від "нечіткі", ви можете встановити "вікно" розмірів і пересуньте його по зображенню.
У кожному положенні вікна обчислюємо дисперсію значень "патча" так, ніби вони були одновимірним вектором значення. Це призведе до отримання іншого "зображення" (або загалом - двовимірного масиву), що зображає зміну стандартного відхилення в кожному місці вашого зображення. Потім можна зібрати всі ці значення та отримати їх гістограму. Гістограма демонструє мультимодальний розподіл (Докладнішу інформацію див. У розділі http://en.wikipedia.org/wiki/Multimodal_distribution ).
У випадку із зображенням у вашій публікації гістограма, ймовірно, демонструє два режими. Одне, що відповідає відносно високим значенням стандартного відхилення (зосереджена область) і одне, що відповідає відносно низьким значенням стандартного відхилення (розмиті ділянки).
Потім ви можете розташувати поріг, наприклад, просто між двома режимами, щоб встановити критерій між зосередженою та нефокусованою областями, а потім вибрати всі "патчі" (або області вікон MxN), стандартне відхилення яких перевищує поріг. (Для отримання додаткової інформації дивіться: http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29 )
Це дозволить виділити зосереджені для вас частини зображення.
Сподіваюсь, це допомагає.
Ось простіший підхід, який не включає аналіз розсувних вікон.
Перетворіть своє зображення в масштаб сірого (це не потрібно, але я вважаю, що у вас є лише один канал для наочності)
Обчисліть градієнт в обох напрямках
Обчисліть величину (або просто квадратний градієнт)
Підсумуйте градієнтні зображення в обох напрямках
Як вже було сказано, зосереджена частина зображення матиме більш високі частоти, ніж область, що не фокусується. Від підсумовування ви закінчите дві проекції, де в тій частині, де фокусований об’єкт розміщений уздовж цього напрямку, є велика кількість варіацій (більш високих значень). Тепер ви можете зробити наступне:
Визначте початкову та кінцеву точку цих вищих значень. Ви можете використовувати простий поріг (наприклад, 0,7 * максимальне значення) або згладити профілі, взяти другу похідну і перевірити, чи є там найвищі значення.
Позиції "Пуск / Стоп" з попереднього кроку дають вам піксельні позиції вздовж обох напрямків, де розмістити ваш прямокутник, що вказує на площу гостроти.