Я буду делать это для миллионов файлов, поэтому скорость имеет значение. Судя по моим экспериментам, wkhtmltoimage выполняется намного быстрее, чем создание снимка экрана в браузере без заголовка.
После того как мы преобразовали HTML в изображение, я хочу извлечь маски сегментации. для каждого слова, строки и абзаца на странице (генерация синтетических данных для обучения модели ML).
Наконец, я бы предпочел сохранить все это на Python.
Мой подход был следующим:
- Я буду отображать каждое слово в HTML-файле в разном цвете (с помощью CSS).< /li>
Затем преобразуйте HTML в png с помощью wkhtmltoimage. - Поскольку каждое слово имеет свой цвет, я могу извлечь маски сегментации слов. на основе цвета.
Где я застрял: оказывается, когда мы конвертируем HTML в png (используя wkhtmltoimage или даже сделать снимок экрана), изображение будет сглажено. Края смягчены, а цвета не совсем такие, как указано в CSS.
Я думаю, это называется субпиксельным рендерингом. Я пробовал отключить Clear Type в Windows, но это не дало никаких изменений.
Я также пытался установить качество wkhtmltoimage на 100, что тоже помогло. не получить желаемого результата.
Отключение сглаживания в настройках Windows дало заметные изменения в изображении, но этого было недостаточно для создания точной маски. Кроме того, было бы здорово, если бы пользователям программного обеспечения не приходилось настраивать параметры своей ОС.

Итак, если буква T имеет оттенок красного (200, 0, 0) и На странице есть еще одно слово того же оттенка красного. Когда я попытаюсь замаскировать это слово, некоторые части буквы Т также окажутся в этой маске.
Я могу чтобы извлечь эти маски с помощью OpenCV в Python. Но из-за проблем со сглаживанием/субпиксельной отрисовкой маски неточны, как описано выше.

Итак, есть ли способ создать точные маски из моего HTML, преобразованного в изображение?
Заранее спасибо.
Подробнее здесь: https://stackoverflow.com/questions/784 ... oimage-ant
Мобильная версия