Задать вопрос
@alex_ak1

Как сделать алгоритм фокусировки?

Есть камера, в которой хочу сделать фокус программным способом. Есть возможность программно двигать фокус (и остальные параметры) и брать с камеры видеопоток.

Вопрос в том, как отличить более сфокусированный кадр от менее сфокусированного? Какие алгоритмы лучше использовать? Можно конечно внезапно всё обучить на нейросетях, но по-моему это как-то слишком.
  • Вопрос задан
  • 252 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
sergiks
@sergiks Куратор тега Алгоритмы
♬♬
В фотокамерах автофокус обращает внимание на несколько контрольных точек кадра: центр, по третям и т.д. Алгоритмы видимо пробуют разные варианты фокусировки и останавливаются на том, что даёт максимум контрольных точек в фокусе.

Само определение в фокусе / размыто: наличие высокочастотных деталей в исследуемой области. В размытом изображении мелких контрастных переходов нет, все детали крупнее какого-то порога.

Алгоритм – применить High-pass фильтр к картинке, и смотреть, есть ли что, отличное от серого, и как его много.
пример

Выбрал две области на картинке (маленькие зеленые квадраты) – к которым применен high-pass фильтр с радиусом 2px в Photoshop. Результаты рядом и увеличены, в желтых квадратах:
65b132a196b6c677954361.jpeg
Ответ написан
Комментировать
AshBlade
@AshBlade
Просто хочу быть счастливым
Нашел этот ответ на SO - https://stackoverflow.com/a/28722407
В кратце, нужно сравнить 2 изображения - с применой фокусировкой и без. Фокусировка реализуется через применения оператора Лапласа
cv::Laplacian(src_gray, dst, CV_64F);

cv::Scalar mu, sigma;
cv::meanStdDev(dst, mu, sigma);

double focusMeasure = sigma.val[0] * sigma.val[0];


Для оптимизации предлагаю следующие варианты:
1. Всегда фокусироваться
2. Через определенные промежутки времени (либо кол-во кадров, не суть), брать сампл изображения и для него вычислять размытость - если изображение размыто, то дальше применяем фокусировку

P.S. под фокусировкой я понял резкость/размытость изображения
Ответ написан
Pakonigoosy
@Pakonigoosy
Разработчик ПО
Более сфокусированный кадр также более контрастный. В интернете есть специальная формула для расчета контрастности кадра. Думаю это вам поможет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы