Я работаю над сценариями автоматизации, которые используют алгоритмы обнаружения изображений. Недавно я заметил, что текст на одной и той же странице выглядит по-разному (по крайней мере, когда он развернут) на разных экранах (первый экран 1280x1024, а второй 1440x990).

Например, это увеличенная версия текста с обоих экранов. Верхний берется с разрешением 1440x990, а нижний с разрешением 1280x1024:

сравнение

Я пытался:

  1. Изменить разрешение
  2. Глубина цвета

Но текст по-прежнему выглядит по-другому при увеличении. Это может быть большой проблемой для меня, так как сценарий автоматизации использует распознавание изображений на уровне пикселей.

Есть идеи, что вызывает эту разницу и как ее устранить? Я бы предпочел, как это выглядит на 1280x1024

3 ответа3

2

Существует проблема с ЖК-экранами. ЖК-дисплей в отличие от ЭЛТ-экранов использует физические пиксели при воспроизведении изображения. Фактическое количество физических пикселей на ЖК-панели известно как "Собственное разрешение". Поскольку пиксели здесь имеют физический размер, когда вы устанавливаете разрешение, которое отличается от стандартного, монитор не может просто увеличивать или уменьшать количество пикселей и конвертировать изображение с помощью различных алгоритмов в соответствии с необходимым разрешением. Когда вы максимизируете ваше изображение с разрешением 1280x1024 на мониторе 1440x990, оно растягивает изображение и использует различные эффекты (например, сглаживание) для подгонки изображения под ваше текущее разрешение. Кроме того, если вы установите одинаковое разрешение на обоих мониторах, вы не получите желаемого качества, потому что в этом случае "собственное разрешение" будет отличаться от фактического разрешения, и монитор преобразует ваше изображение для соответствия физическому размеру пикселя. Также все вышеперечисленное учитывает, что вы используете растровые изображения, потому что векторные изображения (например, текст вне изображения, например на веб-странице) имеют разные алгоритмы преобразования, обеспечивая наилучшее качество в любом разрешении.

2

Разные разрешения экранов - красная сельдь.

Этот эффект происходит от субпиксельного рендеринга. Он использует физические цветовые компоненты, из которых состоит пиксель (красный, зеленый и синий подпиксели), для достижения более высокого видимого разрешения, особенно с текстом.

Это хорошо видно в вашем примере: правый край белого текста красноватый (красный подпиксель - самый левый и, следовательно, активирован), левый край - голубоватый (потому что синий - самый правый подпиксель).

Windows называет эту технику ClearType. Отключить в панели управления »Оформление и настройка» Дисплей, чтобы всегда получать второй вариант, без цветов. В Mac OS X это опция Использовать сглаживание шрифтов LCD в Системных настройках »Общие.

1

В конце концов я обнаружил, что есть возможность отключить функцию сглаживания субпиксельного шрифта (я работаю в Win7).

Это можно сделать, выполнив следующие действия:

  1. Нажмите Пуск
  2. Тип внешности
  3. Выберите "Настроить внешний вид и производительность Windows"
  4. Перейти на вкладку "Визуальные эффекты"
  5. Снимите флажок "Гладкие края экранных шрифтов"

После этого на экране 1440x990 текст стал похож на "обычный" текст, который я видел на экране 1280x1024.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .