Я делаю приложение, которое должно обнаруживать серые цифры на черном фоне с различными тонами или rgb (184, 180, 152).
Пример даты: Пример ди git изображение, вырезанное из меню 4x8 только серым цветом:
В то время как фон монтона позволял простой Image.open(...).tobytes.index(Image.open(<filepath to digit>).tobytes())
проверять, был ли данный ди git на изображении, так как каждый фон остается тем же самым, «варьирующийся» фон имеет различный цветовой рисунок для каждого ди git. не серые пиксели в пространстве 4х8. Получение отдельного файла для всех 10 цифр каждой строки заняло бы так много времени и, скорее всего, сделало бы мое приложение очень медленным.
Неправильные возвращаемые значения, предоставляемые методом .tobytes()
, сделали его практически невозможным (насколько я знаю, по крайней мере) ) применить RegEx, чтобы заполнить пустые пиксели любым произвольным цветом и таким образом проверять только серые области. Мой требуемый «формат» преобразованных данных для изображений будет таким, в котором каждый пиксель соответствует своей последовательности символов.
Например, цвет, соответствующий blank, blank, gray
, станет 000000001040
однажды преобразованный из его Image.open(...)
-формы, где 0000
является «пустым». Таким образом, я мог бы применить RegEx из возвращенной строки, которая бы заполняла пробелы любым произвольным цветом. Таким образом, будет проверяться только серый, в отличие от управления не серыми цветами в области 4x8. То, что я получаю, используя .tobytes()
, скорее соответствует 1123999938212
; Кажется, что шаблон меняется всякий раз, когда добавляется пиксель, и поэтому непредсказуем.
Однако я подозреваю, что это ошибка tobytes()
, и что двоичный файл может удовлетворить мою потребность в получении последовательности, представляющей каждый пиксель. Если это правильно, как я могу преобразовать изображение в двоичную последовательность для использования в качестве строки?
Примечание: Когда я говорю «форматировать», я не являюсь что означает расширение, вместо «форматов» данных, таких как двоичные, шестнадцатеричные или XML.
Я не решаюсь использовать OpenCV, так как это может быть излишним, что сделает приложение, которое будет сканировать несколько изображений медленнее. В отсутствие лучшего решения я выберу его.