Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как программно определить, размыто ли изображение?

#android


Доброго времени суток.  
Как программно определить, размыто ли фото?
Нужно определить, размыто ли фото, и если да, то не дать отправить его на сервер.
Возможно, есть какие-то библиотеки или готовые решения?   
Заранее спасибо.     


Ответы

Ответ 1



Для этого применяется т.н. алгоритм преобразования Фурье - для обыденного понимания достаточно рассматривать это как разложение сигнала на набор синусоид (сейчас закидают тапочками математики...). Изображение надо рассматривать как двумерный сигнал и, соответственно, разложить его в двумерный ряд Фурье, полученный сигнал проанализировать. В реальных вычислениях применяется дискретное преобразование Фурье - принято обозначать это как FFT - Fast Fourier Transformation. Если в сигнале слишком мало высокочастотных компонент, значит изображение размыто. Что такое слишком много или слишком мало - устанавливайте сами. Для упрощения анализа опять-таки принято полученный сигнал (а по сути новый битмап) проинтегрировать (например, Лапласом) и получить одномерный вектор, который-таки более удобен для анализа. В общем, как-то так. Гуглите по ключевому слову FFT+Java - авось повезет.

Комментариев нет:

Отправить комментарий