СПОСОБ И СИСТЕМА ПРЕОБРАЗОВАНИЯ МОМЕНТАЛЬНОГО СНИМКА ЭКРАНА В МЕТАФАЙЛ
METHOD AND SYSTEM FOR CONVERTING SCREENSHOT INTO METAFILE

Изобретение относится к области обработки цифровых сигналов, а именно к способам преобразования растрового изображения в метафайл, в частности к преобразованию моментального снимка экрана (скриншота) в метафайл посредством сегментации и векторизации скриншота.
Векторизация текстовой информации на растровом изображении скриншота позволяет существенно улучшить качество текста для печати и визуализации. Частичная векторизация скриншота является перспективным подходом к решению задачи и заключается в том, что обнаруженные области рисунков и области текста обрабатываются разными способами. Текстовую часть переводят в последовательность прямых и кривых отрезков с информацией о цвете символов и окружающем фоне. Оставшаяся часть информации исходного скриншота хранится как растровое изображение.
Способ, раскрытый в патенте США №8,270,722 [1], предусматривает обработку изображения с выборочной векторизацией символов и графических областей. Целью изобретения является достижение наилучшей степени компрессии при высоком качестве изображения, содержащего как области текста, так и графики. Если пиксели символа в области теста перекрываются графической областью, то сначала векторизуется графическая область, если перекрытия нет - сначала векторизуется область текста.
Способ, раскрытый в патенте США №7,873,218 [2], заключается в аппроксимации символа для преобразования бинарного изображении в контурные данные с использованием кривых Безье. Способ включает сегментацию растрового изображения для извлечения областей символов и извлечения символов из этих областей. Процесс векторизации выполняется независимо от других нетекстовых частей изображения.
Вышеупомянутые способы позволяют улучшать визуальное качество изображения посредством векторизации, но не могут быть напрямую применены для векторизации растрового изображения скриншота, который обладает рядом особенностей: а именно низким разрешением символов и применением эффекта сглаживания (антиалиасинга) текстовых символов. Данное сглаживание улучшает качество изображения на дисплее, но искажает скриншот при печати.
Способ, раскрытый в патенте США №7,079,686 [3], описывает подход, основанный на классификации пикселей на изображении документа для увеличения изображения. Для каждого пикселя изображения генерируется вектор признаков. Каждый пиксель классифицируется как текст или рисунок в зависимости от соответствующего вектора признаков. Дальнейшая обработка может включать улучшение на пиксельном уровне, которая состоит из фильтра повышения резкости границ для пикселей текста и фильтра сглаживания для пикселей рисунков.
Способ, раскрытый в патенте США №7,177,049 [4], сводится к обработке цифровых изображений, причем процесс повышения качества текста включает в себя обработку черного текста на белом фоне с увеличением резкости и контраста такого текста за счет перераспределения яркости между темными и светлыми пикселями в пределах предопределенной маски.
Описанные выше способы ориентированы на улучшение изображения, особенно областей текста исключительно перед печатью. Эти способы также не пригодны для скриншотов, поскольку разработаны для сканированных изображений.
Задача, на решение которой направлено заявляемое изобретение, заключается в том, чтобы разработать усовершенствованный способ обработки сглаженного текста (текста с антиалиасингом) на скриншоте. При этом такой способ должен обеспечить повышение резкости/четкости и контраста символов и быть применимым как для печати скриншотов, так и для сохранении скриншотов в метафайл.
Технический результат достигается за счет применения заявляемого способа, включающего в себя операции по обнаружению сглаженных символов на скриншоте и улучшению визуального представления этих символов за счет векторизации и оценки цвета заливки. При этом заявляемый способ преобразования скриншота в метафайл включает в себя выполнение следующих этапов:
- обнаруживают фрагменты текста на скриншоте;
- оценивают цвет фона и цвет символов на каждом фрагменте;
- векторизуют контуры символов;
- модифицируют скриншот за счет заполнения фрагментов текста цветом фона;
- создают метафайл на основе модифицированного скриншота и векторизованных контуров, заполненных цветом текста.
Заявляемый способ обеспечивает повышение резкости/четкости и контраста символов и может быть применен как при печати скриншотов, так и при сохранении скриншотов в метафайл, например PDF или XPS.
Далее существо заявляемого изобретения поясняется в деталях со ссылками на соответствующие графические материалы.
Фиг.1. Иллюстрация заявляемого способа в сравнении с существующими подходами.
Фиг.2. Структурная схема способа преобразования скриншота в метафайл.
Фиг.3. Блок-схема системы преобразования скриншота в метафайл.
Фиг.4. Иллюстрация способа обнаружения фрагментов со сглаженным текстом.
Фиг.5. Иллюстрация вычисления признаков сглаженного текста.
Фиг.6. Блок-схема векторизации символа.
Фиг.7. Иллюстрация векторизации символа.
Фиг.8. Создание карты сегментированного текста.
Фиг.9. Иллюстрация результата заявляемого способа.
На Фиг.1 проиллюстрировано различие между существующим подходом (прототипом), известным из уровня техники, и заявляемым способом. Скриншот 103 захватывается с экрана дисплея посредством копирования видеопамяти в промежуточный буфер. Результатом такого копирования является представление текущего кадра, визуализируемого на дисплее, в виде растрового изображения. Дисплеем может являться модуль визуализации любого цифрового вычислительного устройства, например: персонального компьютера 101, ноутбука, смартфона 102, планшетного компьютера и т.д. Особенностью скриншота является то, что представленная на нем текстовая информация обычно визуализируется с помощью технологии сглаживания (antialiasing), использующейся с целью сделать границы символов визуально более гладкими, убирая «зубцы», возникающие при растеризации на краях объектов. В этом случае пикселы, соседние с граничным пикселом изображения, принимают промежуточное значение между цветом изображения и цветом фона, визуально размывая границу. Технологии сглаживания, используемые при визуализации текста на дисплее, напрямую зависят от размера отображаемых символов и разрешения отображения, поэтому при увеличении/уменьшении масштаба перестраивают пиксельное отображение символов. Кроме того, подобные сглаживания существенно отличаются от аналогичных технологий, используемых при печати текста. Скриншот в виде растрового изображения сохраняется в каком-либо файле/формате 104, соответственно для текстовых областей становится недоступным корректное применение технологий сглаживания при отображении или печати. Это ведет к нежелательным визуальным искажениям внешнего вида текста. В соответствии с вышесказанным можно отметить следующие недостатки известного из уровня техники подхода:
- поскольку скриншот сохраняется в файл в виде растрового изображения, следовательно, будут потеряны такие преимущества обычного представления текстовой информации на дисплее, как инвариантность к масштабу и гладкое отображение очертания символов независимо от их размера. Вместо этого масштабирование растрового изображения текста будет сопровождаться такими мешающими факторами, как появление «зазубренных» краев и размытие границ;
- проявляется негативный эффект сглаживания символов, свойственный для текста, визуализируемого на дисплее. Результатом такого эффекта является искажение оригинального цвета и формы символов при печати или изменении масштаба визуализации.
Заявляемый способ 105 основан на сегментации скриншота на текстовые и нетекстовые области и векторизации текстовых областей. Подход позволяет отображать и печатать метафайл при измененном масштабе без потери качества текстовой информации.
На Фиг.2 проиллюстрированы основные шаги заявляемого способа. На шаге 201 выполняется обнаружение фрагментов текста на скриншоте и создают карту сегментированного текста. В предпочтительном варианте реализации заявленного способа данные фрагменты включают в себя последовательность символов, которые соответствуют одному или нескольким словам и части окружающего фона, а карта является растровым изображением такого же размера, как и исходный скриншот, где каждый пиксел кодируется как относящийся или не относящийся к области текста. Оценка цвета для символов и фона указанных текстовых фрагментов выполняется на шаге 202. В предпочтительном варианте осуществления заявленного способа скриншот представлен в цветовом пространстве RGB и, соответственно каждый его пиксел описывается тремя цветовыми компонентами красного, зеленого и синего цветов. Оценка каждой из трех компонент цвета (красной, зеленой, синей) происходит раздельно по гистограммам этих компонент. Крайний правый или левый столбец (группа столбцов) гистограммы с наибольшим значением (суммарным значением) соответствует цвету фона, противоположному цвету символа. На шаге 203 происходит векторизация контуров символов на карте текста путем их преобразования в последовательность отрезков прямых и кривых. Процесс проиллюстрирован на Фиг.6 и Фиг.7. На шаге 204 скриншот модифицируется посредством заполнения областей обнаруженного текста соответствующим цветом фона. Для сложного фона предпочтительно использовать более совершенный способ заполнения области текста, например технику «inpainting», т.е. закрашивания ("Bertalmio М., Sapiro G., Caselles V., Ballester С. Image inpainting // In Proc. ACM Conf. Comp. Graphics (SIGGRAPH), pages 417-424, 2000) [5]. На шаге 205 создается метафайл из соответствующих записей метафайла, сохраненных в определенной последовательности. Метафайл может быть представлен в формате: PDF, XPS, PS, EMF и др. Модифицированное изображение скриншота сохраняется в метафайл как растровое изображение. Символы сохраняются в векторном виде соответствующими графическими командами метафайла, определяющими параметры замкнутых последовательностей аппроксимирующих отрезков прямых и кривых и информацию о цвете заливки. Для оптимизации размера метафайла может быть применен алгоритм сжатия без потерь применительно к векторным записям метафайла, и алгоритм сжатия с потерями или без потерь для растровых изображений. Заявляемый подход обеспечивает эффективное хранение метафайла с точки зрения «визуальное качество/размер», так как каждый тип визуальной информации хранится оптимальным образом. Более того, заявляемый подход позволяет предотвратить искажение сглаженного текста на скриншоте при печати или визуализации при увеличенном масштабе. Это становится возможным за счет замены сглаженных символов скриншота векторными аналогами.
На Фиг.3 показана блок-схема системы преобразования скриншота в метафайл. Модуль 301 сегментации текста сегментирует текст, создает размеченную карту сегментированного текста и определяет координаты фрагментов, содержащих текст. На вход данного модуля поступает исходное растровое изображение скриншота. Карта сегментированного текста передается в модуль 304 векторизации и модуль 303 ретуширования текста, координаты фрагментов передаются в модуль 302 оценки цвета. Модуль оценки цвета выполнен с возможностью определения цвета фона и текста для каждого фрагмента. На вход данного модуля поступают координаты фрагментов и исходный скриншот. Информация о цвете фона передается в модуль 303 ретуширования, информация о цвете текста передается в модуль 305 создания метафайла. Модуль 304 векторизации выполняет аппроксимацию контуров символов на карте сегментированного текста замкнутой последовательностью отрезков прямых и кривых. На вход данного модуля подается карта из модуля 301 сегментации. Координаты фрагментов, последовательность отрезков прямых и кривых передается в модуль создания метафайла. Модуль 303 ретуширования текста модифицирует исходное растровое изображение скриншота посредством закрашивания области фрагментов с текстом соответствующим цветом фона. На вход данного модуля поступает информация о цвете фона для каждого фрагмента. Модифицированный скриншот передается в модуль 305 создания метафайла, выполненный с возможностью формирования метафайла из следующих записей: модифицированного скриншота, замкнутых последовательностей отрезков прямых и кривых, заполненных соответствующим цветом символа.
Все перечисленные модули системы могут быть реализованы в виде SoC, FPGA или ASIC. Функции модулей понятны из их описания и описания существующих способов. Проиллюстрированы только те признаки, которые упомянуты в описании. Однако следует понимать, что вычислительная система может иметь дополнительные признаки, которые не были проиллюстрированы.
Имеет смысл детально рассмотреть два возможных подхода для обнаружения текста. Первый алгоритм быстрее и предназначен для обнаружения сглаженного текста, который типичен для дисплеев. Второй алгоритм более общий, подходит для обнаружения как сглаженного текста, так и текста без сглаживания.
Первый подход обнаружения текстовых фрагментов включает в себя следующие шаги:
- обнаруживают соседние пиксели с большой производной в горизонтальном направлении;
- объединяют соседние пиксели в фрагменты;
- анализируют гистограммы фрагментов с целью обнаружения сглаженного текста;
- выделяют фрагменты с признаками сглаженного текста.
<mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>Σ</mi></msubsup></mrow>
<mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mi>p</mi><mi>o</mi><mi>s</mi></mrow></msubsup></mrow>
<mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mi>n</mi><mi>e</mi><mi>g</mi></mrow></msubsup></mrow>
Фиг.4 иллюстрирует первый подход к обнаружению фрагментов сглаженного текста на скриншоте для последующего анализа. Иллюстрация показывает результат обнаружения горизонтального градиента для одного малого фрагмента 401 скриншота. Вычисленное общее значение горизонтального градиента
403 является конъюнкцией положительного
и отрицательного
градиентов, которые указывают на то, что пиксель ярче/темнее соседних:
<mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mi>p</mi><mi>o</mi><mi>s</mi></mrow></msubsup><mo>=</mo><mrow><mo>{</mo><mrow><mtable><mtr><mtd><mrow><mtable><mtr><mtd><mrow><mn>1,</mn></mrow></mtd><mtd><mrow><msub><mi>I</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>−</mo><mn>1</mn></mrow></msub><mo>+</mo><mi>Δ</mi><mo><</mo><msub><mi>I</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo><</mo><msub><mi>I</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>−</mo><mi>Δ</mi></mrow></mtd></mtr></mtable></mrow></mtd></mtr><mtr><mtd><mrow><mtable><mtr><mtd><mrow><mn>0,</mn></mrow></mtd><mtd><mrow><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi><mi>w</mi><mi>i</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mrow></mtd></mtr></mtable></mrow></mrow></mrow>
<mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mi>n</mi><mi>e</mi><mi>g</mi></mrow></msubsup><mo>=</mo><mrow><mo>{</mo><mrow><mtable><mtr><mtd><mrow><mtable><mtr><mtd><mrow><mn>1,</mn></mrow></mtd><mtd><mrow><msub><mi>I</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>−</mo><mn>1</mn></mrow></msub><mo>−</mo><mi>Δ</mi><mo>></mo><msub><mi>I</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>></mo><msub><mi>I</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>+</mo><mi>Δ</mi></mrow></mtd></mtr></mtable></mrow></mtd></mtr><mtr><mtd><mrow><mtable><mtr><mtd><mrow><mn>0,</mn></mrow></mtd><mtd><mrow><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi><mi>w</mi><mi>i</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mrow></mtd></mtr></mtable></mrow></mrow></mrow>
<mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>Σ</mi></msubsup><mo>=</mo><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mi>p</mi><mi>o</mi><mi>s</mi></mrow></msubsup><mo>∪</mo><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mi>n</mi><mi>e</mi><mi>g</mi></mrow></msubsup></mrow>
i,j
Где I - яркость изображения в точке i, j; Δ - заданный порог.
Результат обнаружения градиента - бинарное изображение 402, ненулевые элементы которого показывают наличие градиента. По причине слабой связности соседних элементов на бинарном изображении выполняется процедура расширения (дилатации) с горизонтальным структурирующим элементом 403. На следующем шаге выделяются отдельные фрагменты 404 по крайним точкам связанных ненулевых пикселей.
+
0
+
+
0
Далее анализируется гистограмма каждого выделенного фрагмента с целью обнаружения признаков сглаженного текста и выделения фрагментов, содержащих символы. На Фиг.5 показана иллюстрация анализа гистограммы всех трех компонент цвета (красный, зеленый, синий) цветового пространства RGB для обнаружения признаков сглаженного текста: число ненулевых b столбцов гистограммы и нулевых b. Гистограмма фрагмента 504, содержащего нетекстовые данные, характеризуется полностью непрерывным распределением 501-503 для каждой компоненты цвета. Гистограмма фрагмента 508, содержащего сглаженный текст, состоит всего из нескольких b (например, для технологии MS ClearType экспериментальным путем получено b=7) ненулевых столбцов, которые равномерно распределены между цветом фона и текста (SOS-SOT). В предпочтительном варианте изобретения, если и b>6, тогда фрагмент классифицируется как текстовый, иначе - как нетекстовый 509.
Второй подход к обнаружению фрагментов с текстом включает следующие шаги:
- разделяют изображения на прямоугольные блоки с перекрытием;
- вычисляют признаки для каждого блока;
- классифицируют каждый блок;
- объединяют соседние блоки в фрагменты текста. В предпочтительном варианте реализации размер блока составляет 7×7 или 9×9 пикселей. Перекрытие блоков может составлять 1, или 2, или 3 пикселя.
Для каждого блока вычисляют следующие признаки:
- число ненулевых столбцов и нулевых столбцов гистограммы раздельно для каждого канала;
<mrow><msub><mover accent="true"><mi>I</mi><mo>¯</mo></mover><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>r</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>c</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mrow><msub><mi>I</mi><mi>i</mi></msub><mrow><mo>(</mo><mrow><mi>r</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow></mrow></mstyle></mrow></mstyle></mrow><mrow><msup><mi>N</mi><mn>2</mn></msup></mrow></mfrac></mrow>
i
- средняя яркость блока:
, где I(r, c) - яркость пикселя в ряду r и колонке c, N - число пикселей в блоке;
k
i
<mrow><msub><mrow><mover accent="true"><mrow><mi>d</mi><mi>I</mi></mrow><mo stretchy="true">¯</mo></mover></mrow><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mn>4</mn></munderover><mrow><mrow><mo>|</mo><mrow><msub><mover accent="true"><mi>I</mi><mo>¯</mo></mover><mi>i</mi></msub><mo>−</mo><msub><mover accent="true"><mi>I</mi><mo>¯</mo></mover><mi>k</mi></msub></mrow><mo>|</mo></mrow></mrow></mstyle></mrow><mn>4</mn></mfrac></mrow>
- средняя разность средней яркости блока средняя разность средних яркостей блоков I в 4-связном соседстве с блоком I:
;
<mrow><mi>d</mi><msubsup><mi>I</mi><mi>y</mi><mi>i</mi></msubsup></mrow>
<mrow><mi>d</mi><msubsup><mi>I</mi><mi>x</mi><mi>i</mi></msubsup></mrow>
<mrow><msub><mrow><mover accent="true"><mrow><msub><mi>d</mi><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow></msub><mi>I</mi></mrow><mo stretchy="true">¯</mo></mover></mrow><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>r</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>c</mi><mo>=</mo><mo>`</mo></mrow><mrow><mi>N</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mi>d</mi><msubsup><mi>I</mi><mi>x</mi><mi>i</mi></msubsup><mrow><mo>(</mo><mrow><mi>r</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow><mo>+</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>r</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>N</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>c</mi><mo>=</mo><mo>`</mo></mrow><mi>N</mi></munderover><mrow><mi>d</mi><msubsup><mi>I</mi><mi>y</mi><mi>i</mi></msubsup><mrow><mo>(</mo><mrow><mi>r</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow><mo>+</mo></mrow></mstyle></mrow></mstyle></mrow></mstyle></mrow></mstyle></mrow><mrow><mn>2</mn><mi>N</mi><mrow><mo>(</mo><mrow><mi>N</mi><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></mfrac></mrow>
- среднее значение вертикальных
и горизонтальных
производных по блокам:
;
<mrow><mi>H</mi><mo>=</mo><mstyle displaystyle="true"><munder><mo>∑</mo><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></munder><mrow><mfrac><mrow><msub><mi>N</mi><mi>d</mi></msub><mrow><mo>(</mo><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mo>)</mo></mrow></mrow><mrow><mn>1</mn><mo>+</mo><mrow><mo>|</mo><mrow><mi>i</mi><mo>−</mo><mi>j</mi></mrow><mo>|</mo></mrow></mrow></mfrac></mrow></mstyle></mrow>
d
- однородность блока:
, где N - это нормированная матрица вхождений, d - определяет пространственную связь;
<mrow><msub><mi>P</mi><mi>g</mi></msub><mo>=</mo><mstyle displaystyle="true"><munder><mo>∑</mo><mrow><mo>∀</mo><mrow><mo>(</mo><mrow><mi>r</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow><mo>∈</mo><mi>B</mi><mi>i</mi></mrow></munder><mrow><mo>{</mo><mn>1</mn><mo>|</mo><mo>∇</mo><msub><mi>I</mi><mi>i</mi></msub><mrow><mo>(</mo><mrow><mi>r</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow><mo>></mo><mi>T</mi><mo>}</mo><mo>/</mo><msup><mi>N</mi><mn>2</mn></msup></mrow></mstyle></mrow>
∇I
i
- процент пикселей с градиентом выше порога:
, где (r, c) вычисляется как квадратный корень из суммы квадратов горизонтальных и вертикальных производных;
<mrow><msubsup><mi>I</mi><mi>i</mi><mi>o</mi></msubsup></mrow>
<mrow><msubsup><mi>I</mi><mi>i</mi><mi>b</mi></msubsup></mrow>
<mrow><msub><mi>P</mi><mi>m</mi></msub><mo>=</mo><mstyle displaystyle="true"><munder><mo>∑</mo><mrow><mo>∀</mo><mrow><mo>(</mo><mrow><mi>r</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow><mo>∈</mo><mi>B</mi><mi>i</mi></mrow></munder><mrow><mo>{</mo><mn>1</mn><mo>|</mo><msubsup><mi>I</mi><mi>i</mi><mi>o</mi></msubsup><mrow><mo>(</mo><mrow><mi>r</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow><mo>≠</mo><msubsup><mi>I</mi><mi>i</mi><mi>b</mi></msubsup><mrow><mo>(</mo><mrow><mi>r</mi><mo>,</mo><mi>c</mi></mrow><mo>)</mo></mrow><mo>}</mo><mo>/</mo><msup><mi>N</mi><mn>2</mn></msup></mrow></mstyle></mrow>
- процент изменений яркостей пикселей на изображении
, полученном в результате применения операции морфологического открытия к бинарному изображению
, полученному бинаризацией с пороговым значением 128:
.
Для классификации на два подмножества (текст и рисунок), основанной на перечисленных выше признаках, может быть использован один из следующих способов: бустинг комитета решающих деревьев (Yoav Freund and Robert E.Schapire. 1997. A decision-theoretic generalization of on-line learning and an application to boosting. J. Comput. Syst. Sci. 55, 1 (August 1997), 119-139.), случайный лес решающих деревьев (Leo Breiman. 2001. Random Forests. Mach. Learn. 45, 1 (October 2001), 5-32.), машина опорных векторов (Corinna Cortes and Vladimir Vapnik. 1995. Support-Vector Networks. Mach. Learn. 20, 3 (September 1995), 273-297.), способ К-ближайших соседей (D.Coomans, D.L.Massart, Alternative k-nearest neighbour rules in supervised pattern recognition: Part 1. k-Nearest neighbour classification by using alternative voting rules, Analytica Chimica Acta, Volume 136, 1982, Pages 15-27).
На Фиг.6 показана блок-схема процесса векторизации. После обнаружения фрагментов скриншота, содержащих текст, цветные фрагменты трансформируются в полутоновые изображения 601 и увеличиваются на коэффициент к 602. В предпочтительном варианте реализации заявленного способа применяется билинейная интерполяция, так как исходное разрешение символа на скриншоте мало. Например, при разрешении экрана 1920×1080 пикселей высота строчного символа шрифта Times New Roman 12-го кегля при 100% масштабе составляет 7-8 пикселей. Далее полутоновые фрагменты повышенного разрешения бинаризуются 603. В предпочтительном варианте реализации для определения порога сегментации используется метод Отцу (N.Otsu, "А threshold selection method from grey level histogram", IEEE Transactions on System Man Cybernetics, vol. 9 no. 1, 1979, pp.62-66.). Bсe бинаризованные фрагменты объединяются в соответствии с их координатами на скриншоте для формирования карты сегментированного текста. В предпочтительном варианте реализации использован коэффициент к равный трем.
На шаге 604 отслеживаются внешние и внутренние контура каждого текстового фрагмента для получения траектории контуров данного фрагмента. На данном этапе контур представляет собой замкнутую последовательность точек (вершин), связанных линейными сегментами минимальной длины, равной одному пикселю. Процедура отслеживания идет от начальной вершины вдоль контурной линии по заданному направлению, пока начальная вершина не будет достигнута снова. На следующем шаге 605 уменьшается количество вершин за счет аппроксимации контурной траектории многоугольником. Многоугольник преобразуется в сглаженный контур на шаге 606 за счет аппроксимации замкнутой последовательностью отрезков прямых и кривых. В предпочтительном варианте реализации заявленного способа используются кубические кривые Безье (Piegl, L.Fundamental Developments of Computer Aided Geometric Design. San Diego, CA: Academic Press, 1993). В общем случае, аппроксимация линейными отрезками основана на определении координат концов отрезков. Аппроксимация кривыми отрезками требует определения концов отрезков и соответствующих опорных точек. Например, в соответствии с иллюстрацией на Фиг.7, угол 703 между краями 701-703 и 703-706 полинома может быть аппроксимирован кубической кривой Безье 705, ограниченной точками 702 и 704. Пример аппроксимации символа 707 показан на 708.
Иллюстрация преобразования текста скриншота из исходного растрового вида к векторному показана на Фиг.8 в соответствии с шагами 201, 203 и 204. Фрагмент 801 сглаженного текста увеличивается (802) для улучшения разрешения и преобразовывается в бинарное избражение 803. Результирующий векторизованный фрагмент представлен на 804.
Фиг.9 демонстрирует результат применения заявленного способа. Первый фрагмент 901 соответствует исходному скриншоту. Второй - фрагменту 902 напечатанного скриншота. Третий фрагмент 903 получен печатью скриншота с повышенным с помощью билинейной интерполяции разрешением. И для сравнения четвертым приведен фрагмент 904 напечатанного скриншота после обработки заявленным способом. Текст выглядит более четким и контрастным.
Дальнейшие аспекты изобретения могут быть получены из рассмотрения иллюстраций и описания предпочтительных вариантов реализации. Специалистам ясно, что возможны разные варианты осуществления изобретения, добавления и замены, не выходящие за рамки притязаний и смысла настоящего изобретения, раскрытых в прилагаемой формуле изобретения.
Заявляемый способ и система предназначены для реализации в драйвере принтера или поддерживающего программного обеспечения для черно-белых и цветных принтеров или МФУ. Кроме того способ может быть реализован в виде программного приложения для печати.