Недавно мне понадобилось достать данные из QR-кода на кассовом чеке. Чек был в плохом состоянии: слегка затёрт + характерные полоски термопечати. Все обычные сканеры и приложения дружно отказывались его читать. Первая идея — открыть фото в редакторе и вручную перерисовать модули — очень быстро показала свою несостоятельность. Несколько сотен точек, глаза начинают плыть уже через 10–15 минут. Дальше начались размышления, как это можно сделать разумнее. Полностью отдавать задачу нейросети я не хотел. На грязных данных с полосками и неравномерной засветкой модель легко начинает «додумывать» модули. А мне нужна была не красивая картинка, а гарантированно читаемый код. Поэтому я решил пойти по гибридному пути: максимально автоматизировать рутину, а финальное решение в сомнительных местах оставить человеку. Что получилось в итоге Инструмент работает полностью в браузере. Фото никуда не отправляется. Основной сценарий (самый частый): Загружаешь фото. Обрезаешь, поворачиваешь, подкручиваешь экспозицию, контраст, гамму, резкость, шумоподавление и т.д. После любого изменения программа сразу пытается прочитать QR. Если код прочитался — сразу получаешь: чистый QR (можно сохранить); сами данные (можно скопировать). На этом можно остановиться. Дальше идти не нужно. Если автоматического чтения не произошло — включается более глубокий режим: Автоматический поиск области кода и определение размера модуля (через поиск finder-паттернов 1:1:3:1:1). Построение сетки. Коррекция перспективы и кривизны бумаги через сетку контрольных точек (кусочно-билинейная деформация). Построчная проверка модулей: программа предлагает цвет, человек только подтверждает или инвертирует. Ручная проверка каждого модуля — это крайний случай, когда даже после всех обработок фото код всё равно не читается. Технические детали Бинаризация через Otsu. Определение шага модуля по характерным сериям 1:1:3:1:1. Адаптивный порог цвета модуля относительно соседей 3×3. Живое декодирование на каждом этапе изменения изображения. Возможность вручную править геометрию через контрольные точки. Инструмент доступен здесь: https://zoommax.space/ Буду рад обратной связи, особенно по сложным случаям (сильные повреждения, сильный ракурс, очень грязная печать).