Я обнаружил, что в классе FinderPatternFinder есть переменная с именем «int [] stateCount», которая помогает проверять любой возможный шаблон поиска в QR-коде. Чтобы обнаружить/найти шаблоны Finder, я думаю, было бы полезно внести изменения в эту переменную. Любые идеи о том, как обнаружить/декодировать QR-код с инвертированным цветом в Java с помощью ZXing?
декодировать перевернутый QR-код zxing
Ответы (2)
Я не программист на Java, но, поскольку мне удалось изменить исходный код zxing для реализации сканирования инвертированных кодов в моем проекте iOS, возможно, моя реализация поможет вам.
Не знаю, что вы имеете в виду под инвертированным цветом. Вы имеете ввиду поменять местами свет и тьму? Теоретически у вас должна быть возможность сделать снимок, извлечь яркость и инвертировать его, например, 255-pixel_luminance
. Обратите внимание, что тихая зона (окружающая белый цвет) также должна быть инвертирована, т. е. окружающая черная. И, возможно, это все равно не сработает. Эвристика Zxing не всегда симметрична. Вы можете попробовать, но это может не сработать.
Обратите внимание, что zxing извлекает только яркость. Два цвета очень разных оттенков, но одинаковой яркости неразличимы для детекторов/декодеров.
В любом случае, возня с stateCount
вряд ли поможет. В этот момент изображение чисто черно-белое, даже без оттенков серого. Вы хотите принять во внимание любые изменения/искажения в вашем изображении до этого и оставить этот код нетронутым.