Обнаружение документов в реальном времени с помощью OpenCV во Flutter: необходима помощь при различных условиях освещениAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Обнаружение документов в реальном времени с помощью OpenCV во Flutter: необходима помощь при различных условиях освещени

Сообщение Anonymous »

В настоящее время я работаю над функцией сканирования документов для своего приложения Flutter, используя OpenCV SDK для собственной реализации Android. Целью является обнаружение и выделение документов в режиме реального времени при предварительном просмотре с камеры.
Вот фрагмент логики предварительной обработки и обнаружения, которую я использую в Java:

Код: Выделить всё

// Grayscale and Edge Detection
Mat gray = new Mat();
Imgproc.cvtColor(rgba, gray, Imgproc.COLOR_BGR2GRAY);
Imgproc.GaussianBlur(gray, gray, new Size(11, 11), 0);
Mat edges = new Mat();
Imgproc.Canny(gray, edges, 50, 100);

// Contours Detection
Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(5, 5));
Imgproc.dilate(edges, edges, kernel);
List contours = new ArrayList();
Imgproc.findContours(edges, contours, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
Collections.sort(contours, (lhs, rhs) -> Double.valueOf(Imgproc.contourArea(rhs)).compareTo(Imgproc.contourArea(lhs)));

**Проблема
**Хотя эта реализация работает достаточно хорошо на темном фоне, я сталкиваюсь с серьезными проблемами при ярком или неравномерно освещенном фоне. В частности:
Обнаружение краев не работает или дает зашумленные результаты.
Алгоритму сложно надежно идентифицировать контуры документа.
**Что я' Пробовал
**Регулировка порогов Canny: улучшение минимальное, но недостаточное.
Вариации освещения: смешанные результаты в зависимости от фона и окружающего освещения.
Фильтрация контуров: сортировка по площади контура работает, но шум в ярком Фон по-прежнему влияет на обнаружение.
Запрос
Я был бы признателен за рекомендации по улучшению процесса обнаружения документов, особенно в сценариях с различными условиями освещения.
Следует ли мне изучить адаптивное пороговое определение или другие методы предварительной обработки?
Существуют ли лучшие подходы для фильтрации контуров в таких сценариях?
Какие-либо рекомендуемые функции или параметры OpenCV, которые можно попробовать?Мне бы хотелось услышать что-нибудь идеи, предложения или альтернативные стратегии сообщества.

Подробнее здесь: https://stackoverflow.com/questions/792 ... arying-lig
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»