СПОСОБ И СИСТЕМА ИСПРАВЛЕНИЯ ПЕРСПЕКТИВНЫХ ИСКАЖЕНИЙ В ИЗОБРАЖЕНИЯХ, ЗАНИМАЮЩИХ ДВУХСТРАНИЧНЫЙ РАЗВОРОТ
METHOD AND SYSTEM OF CORRECTING PERSPECTIVE DISTORTIONS IN IMAGES OCCUPYING DOUBLE-PAGE SPREAD

ОБЛАСТЬ ТЕХНИКИ
[001] Настоящее изобретение в целом относится к вычислительным системам - а точнее, к выявлению и исправлению перспективных искажений в изображениях.
УРОВЕНЬ ТЕХНИКИ
[002] Оптическое распознавание символов (OCR) представляет собой электронное преобразование отсканированных или отснятых изображений машинописного или печатного текста в машиночитаемый текст. OCR является общепринятым методом оцифровки печатных текстов, позволяющим в дальнейшем редактировать их в электронном виде, производить в них поиск и отображать их в режиме онлайн. Он используется в таких технологиях, как преобразование текста в речь, извлечение данных и интеллектуальный анализ текста. В результате постраничной фотосъемки документа нередко возникают перспективные или геометрические искажения отснятых страниц. Эти искажения приводят к видимой деформации относительных пропорций размеров объектов или к нарушению выравнивания текста в пределах изображения. Степень искажения отдельных страниц при фотосъемке разворотов многостраничного документа нередко может меняться в широких пределах
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[003] Настоящее изобретение иллюстрируется с помощью примеров, но не ограничивается только ими, и может быть лучше понято при рассмотрении приведенного ниже описания предпочтительных вариантов реализации в сочетании с чертежами, на которых:
[004] На Фиг. 1 представлена схема компонентов верхнего уровня для примера архитектуры вычислительного устройства в соответствии с одним или более вариантами осуществления настоящего изобретения.
[005] На Фиг. 2 дан пример графического интерфейса пользователя (GUI) мобильного устройства, где GUI призван обеспечить исправление перспективных искажений изображения, полученного съемкой разворота многостраничного документа, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[006] На Фиг. 3А дан наглядный пример изображения открытого книжного разворота, где показана линия переплета, которая соединяет две страницы, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[007] На Фиг. 3В дан наглядный пример изображения открытого книжного разворота после преобразования с использованием приема «нерезкое маскирование», в соответствии с одним или более вариантами осуществления настоящего изобретения.
[008] На Фиг. 3С дан наглядный пример изображения открытого книжного разворота после преобразования в двоичную форму, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[009] На Фиг. 3D дан наглядный пример изображения открытого книжного разворота после преобразования с применением субдискретизации, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0010] На Фиг. 3Е дан наглядный пример изображения открытого книжного разворота после преобразования с применением морфологической операции, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0011] На Фиг. 3F дан пример изображения открытого книжного разворота после преобразования с применением другой морфологической операции, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0012] На Фиг. 3G дан пример изображения открытого книжного разворота после преобразования с применением другой морфологической операции, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0013] На Фиг. 3Н дан пример изображения открытого книжного разворота после преобразования с применением другой морфологической операции, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0014] На Фиг. 3I дан наглядный пример параметризации, использованной в алгоритме быстрого преобразования Хафа, в соответствии с одним или более вариантами
осуществления настоящего изобретения.
[0015] На Фиг. 4А дан пример изображения открытого книжного разворота с сопряженными точками схода для левой и правой страниц, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0016] На Фиг. 4В дан пример изображения открытого книжного разворота с сопряженными четырехугольниками, соответствующими искажению изображения для левой и правой страниц, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0017] На Фиг. 5 даны примеры изображений левой и правой страниц открытого книжного разворота с исправленной перспективой, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0018] На Фиг. 6 представлена блок-схема реализации способа исправления перспективных искажений изображения открытого книжного разворота многостраничного документа, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0019] На Фиг. 7 представлена блок-схема реализации способа определения линии переплета на изображении открытого книжного разворота многостраничного документа, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0020] На Фиг. 8 представлена блок-схема реализации способа определения множества почти вертикальных или вертикальных прямых линий на изображении открытого книжного разворота многостраничного документа, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0021] На Фиг. 9 представлена блок-схема реализации способа определения точки схода для изображения левой страницы открытого книжного разворота многостраничного документа, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0022] На Фиг. 10 представлена блок-схема реализации способа определения точки схода для изображения правой страницы открытого книжного разворота многостраничного документа, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0023] На Фиг. 11 представлена блок-схема реализации способа определения четырехугольника для изображения левой страницы открытого книжного разворота многостраничного документа, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0024] На Фиг. 12 представлена блок-схема реализации способа определения четырехугольника для изображения правой страницы открытого книжного разворота многостраничного документа, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0025] На Фиг. 13 представлена блок-схема реализации способа получения исправленного изображения отдельно взятой страницы, в соответствии с одним или более вариантами осуществления настоящего изобретения.
[0026] На Фиг. 14 представлена блок-схема иллюстративной вычислительной системы, взятой как пример и работающей в соответствии с примерами осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0027] Ниже дается описание способов и систем, предназначенных для исправления перспективных искажений отснятого изображения открытого разворота многостраничного документа. В результате постраничной фотосъемки документа нередко возникают перспективные или геометрические искажения отснятых страниц. Эти искажения приводят к видимой деформации относительных пропорций размеров объектов или к нарушению выравнивания текста в пределах изображения. Степень искажения отдельных страниц при фотосъемке разворотов многостраничного документа нередко может меняться в широких пределах. Типовые способы исправления графических искажений предполагают, что предпринимается попытка исправления искажений всего изображения, при этом не всегда возможен учет различной степени искажения разных страниц разворота многостраничного документа. В силу этого «исправленное» изображение на деле может и не обеспечивать должного исправления перспективных искажений для каждой из двух страниц.
[0028] Варианты осуществления настоящего изобретения призваны способствовать решению указанной задачи наряду с исправлением других отмеченных недостатков благодаря использованию подхода, учитывающего различную степень искажения для разных страниц разворота многостраничного документа в процессе исправления искажений отснятых страниц такого документа. Производится анализ изображения отснятого разворота многостраничного документа с целью определения положения линии переплета документа (корешка раскрытой книги). Далее изображение делят на части для того, чтобы работа с левой и правой страницами разворота многостраничного документа производилась независимым образом, при этом переплет служит своего рода опорной линией и указывает направление. Благодаря этому становится возможным исправление каждой страницы разворота многостраничного документа в зависимости от степени перспективного искажения именно этой страницы. В итоге получают исправленное изображение каждой страницы разворота, дающее более точное представление о виде этой страницы. После создания исправленных изображений возможна дальнейшая обработка каждого из исправленных изображений. К примеру, возможно исправление перспективных искажений по горизонтали для каждой отдельно взятой страницы. Кроме того, для каждой отдельно взятой страницы можно выполнить оптическое распознавание символов (OCR).
[0029] В одном из иллюстративных примеров представлена вычислительная система, реализующая метод настоящего изобретения и способная производить исправление искажений отснятого изображения разворота многостраничного документа. С этой целью система вначале может получить извне изображение отснятого разворота многостраничного документа. Отснятый разворот многостраничного документа может состоять из двух или большего числа страниц, соединенных между собой линиями переплета. К примеру, отснятый разворот многостраничного документа может представлять собой открытый разворот книги, в котором разделителем между двумя страницами служит линия переплета (корешка) книги. Отснятый разворот многостраничного документа может представлять собой и документ, сложенный в «гармошку» по сгибам (к примеру, это может быть туристический буклет, карта и т.д.), при этом каждые две части документа разделены сгибом.
[0030] В некоторых вариантах реализации способа изображение может быть получено через пользовательский интерфейс, призванный облегчать пользователю задачу получения изображения отснятого разворота многостраничного документа. Интерфейс пользователя может быть представлен компонентом, ответственным за исправление искажений, выполняемым в мобильном устройстве. Компонент, ответственный за исправление искажений, может представлять собой мобильное приложение (или часть мобильного приложения), установленное на мобильном устройстве, включающего камеру, способную принимать изображение - к примеру, это может быть мобильный телефон, карманный компьютер (КПК), цифровой фотоаппарат, видеокамера, ноутбук и т.д. Например, пользователь может запустить приложение в мобильном телефоне с камерой, после чего будет показан интерфейс пользователя, позволяющий получить фотоснимок многостраничного документа. Как альтернативный вариант, приложение может получать изображение открытого книжного разворота многостраничного документа через импорт изображения из фотоархива (фототеки), сохраняемого в мобильном устройстве, путем скачивания изображения с внешнего источника, путем захвата кадра из потокового видео или любым другим путем. В качестве еще одного альтернативного варианта компонент, ответственный за исправление искажений, может выполняться на сетевом компьютере (сервере), куда изображение открытого разворота многостраничного документа может поступать по сети с мобильного устройства.
[0031] В одном из иллюстративных примеров интерфейс пользователя может выводить графический индикатор на экран мобильного устройства (к примеру, перекрестие, пиктограмму мишени или текстовые индикаторы, призванные помочь в указании верха и низа открытого разворота многостраничного документа и т.д.) - все это ориентирует пользователя и помогает ему согласовать положение видоискателя мобильного устройства с верхним и нижним срезом открытого разворота многостраничного документа.
[0032] В некоторых реализациях данного способа компонент, ответственный за исправление искажений, может вначале трансформировать изображение путем выполнения одной или нескольких подготовительных операций. Подготовительные операции предобработки изображений могут конвертировать изображение из полноцветного в полутоновое, уменьшать размер изображения, уменьшать разрешение изображения, выполнять математические морфологические операции (эрозия, морфологический градиент и т.д.), выполнять фильтрацию шума (к примеру, для усиления целевого сигнала), повышать резкость изображения (прием нерезкого маскирования), выполнять бинаризацию и т.п. Операции предобработки изображений способны улучшать результаты выявления прямых линий и границ объектов в пределах изображения благодаря повышению контрастности между темными и светлыми областями изображения. Помимо этого, использование операций предобработки с целью уменьшения размеров изображения способствует сокращению объема необходимых вычислений и тем самым улучшает технические характеристики компонента, ответственного за исправление искажений в мобильном устройстве.
[0033] В одном из иллюстративных примеров компонент, ответственный за исправление искажений, может преобразовывать изображение в полутоновое изображение с использованием техники контвертации из полноцветного изображения в полутоновое. Далее компонент, ответственный за исправление искажений, может применять к полутоновому изображению прием «нерезкое маскирование». Затем компонент, ответственный за исправление искажений, может определять пространственную ориентацию изображения. Если изображение ориентировано таким образом, что линия переплета с наибольшей вероятностью располагается горизонтально, то может оказаться целесообразным повернуть изображение на 90 градусов (по часовой либо против часовой стрелки) для того, чтобы линия переплета на изображении заняла вертикальное положение. Далее полутоновое изображение может быть преобразовано в бинаризованную форму; с этой целью полутоновое изображение подвергают бинаризации. Далее бинаризованное изображение может быть преобразовано в изображение с пониженным разрешением, при этом размер бинаризованного изображения уменьшают до определенной, заранее заданной величины. К примеру, растровая ширина бинаризованного изображения может быть уменьшена до 800 пикселей. В некоторых вариантах реализации способа, кроме того, может быть уменьшена и растровая высота бинаризованного изображения с таким расчетом, чтобы она была кратна степени двойки (к примеру, 256 пикселей, 512 пикселей и т.д.).
[0034] Затем компонент, ответственный за исправление искажений, может преобразовывать изображение с пониженным разрешением в видоизмененную форму путем применения к нему по меньшей мере одной морфологической операции. К примеру, компонент, ответственный за исправление искажений, может применить к изображению с пониженным разрешением морфологическую операцию «верх шляпы» (TopHat), которая «очищает» изображение от темных элементов большого размера (создавая при этом «морфологическое изображение 1»). К примеру, в качестве фильтра для операции «верх шляпы» (TopHat) можно взять структурирующий элемент размерности 11×11. Далее к изображению можно применить операцию дилатации, что позволяет удалить из него весь текст (создавая при этом «морфологическое изображение 2»). К примеру, в качестве фильтра для операции дилатации можно взять структурирующий элемент размерности 1×7, центрированный по вертикали. В результате такой операции может получиться изображение, в котором из всех линий сохранены главным образом вертикальные. Далее компонент, ответственный за исправление искажений, может создавать третье изображение, подвергнутое морфологической трансформации («морфологическое изображение 3»), - с этой целью проводится попиксельное сканирование «морфологического изображения 2» и из яркости пикселя «морфологического изображения 2» вычитается яркость пикселя «морфологического изображения 1». Далее компонент, ответственный за исправление искажений, может создавать модифицированное изображение, предназначенное для преобразования Хафа, - с этой целью проводится попиксельное сканирование «морфологического изображения 2» и к яркости пикселя «морфологического изображения 3 » прибавляется яркость пикселя «морфологического изображения 2».
[0035] Далее компонент, ответственный за исправление искажений, может определять положение линии переплета открытого разворота многостраничного документа. Линия переплета может соответствовать области изображения, где расположен переплет (корешок) открытого разворота многостраничного документа. Линия переплета может представлять собой линию, которая соединяет страницы документа. На изображении раскрытой книги линия переплета может представлять собой линию разреза, указывающую место, где две страницы книги разделены переплетом. На изображении документа, сложенного «гармошкой», линия переплета может представлять собой линию разреза, указывающую место расположения складки. В некоторых вариантах реализации способа линия переплета может представлять собой прямую, проходящую почти вертикально и имеющую отношение к месту соединения двух страниц открытого разворота многостраничного документа. Для определения местонахождения линии переплета могут применяться алгоритмы преобразования Хафа или быстрого преобразования Хафа, детектор границ Кэнни или любой аналогичный метод поиска прямых линий на изображении.
0
о
0
0
[0036] В некоторых вариантах реализации способа компонент, ответственный за исправление искажений, может определять положение линии переплета при помощи алгоритма преобразования Хафа. Алгоритм преобразования Хафа - это алгоритм, предназначенный для определения на изображении объектов, принадлежащих к определенному классу форм, при помощи голосования. Чтобы определить положение прямых линий, преобразование Хафа использует представление изображения в угловых (полярных) координатах с параметризацией ρ=х cos(θ)+y sin(θ), где ρ - кратчайшее расстояние от прямой до начала координат и θ - угол между нормалью к прямой и горизонтальной осью (абсцисс). Таким образом, каждой прямой на изображении можно поставить в соответствие пару чисел (ρ, θ). Плоскость (ρ, θ) отвечает пространству Хафа. Для любой точки с координатами (х, у) каждая из прямых, проходящих через точку в пространстве Хафа, удовлетворяющую уравнению ρ=х cos(θ)+у sin(θ), представляет собой синусоиду в пространстве Хафа, которая, в свою очередь, позволяет однозначно определить точку на изображении.
0
0
0
0
0
[0037] В преобразовании Хафа используется двумерный массив, именуемый аккумуляторным массивом, с целью отбора множества линий, претендующих на роль линии переплета. Размерность аккумуляторного массива соответствует количеству неизвестных параметров, т.е. двум (это следует из рассмотрения дискретных значений ρ и θ в паре (ρ, θ)). В аккумуляторном массиве накапливаются числовые значения, указывающие на вероятность наличия на изображении прямой ρ=х cos(θ)+у sin(θ), где паре ρ, θ соответствуют дискретные значения ρ, θ. Для каждого пикселя на плоскости с координатами (х, у) и его окрестности алгоритм преобразования Хафа определяет, достаточен ли вес границы в этом пикселе. Если он достаточен, то алгоритм преобразования Хафа вычисляет параметры (ρ, θ) этой прямой и увеличивает значение в ячейке аккумулятора, соответствующей данным параметрам. После обработки всех пикселей выполняется поиск локальных максимумов в аккумуляторном массиве, соответствующих параметрам наиболее вероятных прямых на изображении.
[0038] Может осуществляться предварительная фильтрация, цель которой - более четкая локализация или указание максимальных значений в аккумуляторном массиве за счет подавления сигнала от облака окружающих точек со сходными значениями. К примеру, может быть применен фильтр, подавляющий сигнал от всех точек в аккумуляторном массиве, не являющихся локальными максимумами (т.е. осуществляющий «фильтрацию с подавлением немаксимумов»). Этот фильтр применяется к заданной окрестности точек (например, 5×5 пикселей) и уменьшает числовое значение (вес) немаксимальных точек (например, в 2 раза). Пороговые характеристики фильтрации, в том числе пороговое значение, могут быть либо предварительно заданными (фиксированными), либо подгоночными параметрами, которые вычисляются с учетом особенностей аккумуляторного массива. В последнем случае расчет порогового значения может осуществляться на основе наибольшего максимума - к примеру, пороговое значение может быть задано вдвое ниже этого максимума. Затем производится фильтрация аккумуляторного массива по критерию этого порогового значения. Точки, лежащие выше порогового значения, представляют одну или несколько выявленных прямых линий.
[0039] В некоторых вариантах реализации способа компонент, ответственный за исправление искажений, может использовать предварительно заданное распределение для оценки места расположения линии переплета вдоль горизонтальной координатной оси (оси х). К примеру, компонент, ответственный за исправление искажений, может сосредоточить поиск в области изображения, размер которой не превышает 1/6 ширины изображения в любую сторону от середины горизонтального края изображения. Таким образом, поиск переплета может быть сосредоточен в области с границами от 1/3 ширины изображения (считая от левого края изображения) до 2/3 ширины изображения (считая от левого края изображения). Помимо этого, может заранее вводиться ограничение для диапазона утла поиска потенциальной линии переплета. К примеру, угол поиска может быть ограничен диапазоном от -22,5 градусов до +22,5 градусов. В некоторых вариантах реализации способа этот диапазон может задаваться в настройках вручную, при этом для него допускается автоматическое уточнение по результатам статистического анализа мест расположения линий переплета в документах, отснятых ранее.
[0040] После этого компонент, ответственный за исправление искажений, может, в дополнение к линии переплета, выполнить поиск и других прямых линий на изображении открытого разворота многостраничного документа. Распознавание прямых линий и поиск их местонахождения относительно линии переплета может проводиться отдельно и независимо для каждой страницы разворота. Вначале компонент, ответственный за исправление искажений, может определить первое множество почти вертикальных или вертикальных прямых линий, лежащих слева от линии переплета на изображении открытого разворота многостраничного документа, - именно тех линий, которые составляют содержание левой страницы открытого разворота многостраничного документа. Затем компонент, ответственный за исправление искажений, может определить второе множество почти вертикальных или вертикальных прямых линии и лежащих справа от линии переплета на изображении открытого разворота многостраничного документа, - именно тех линий, которые составляют содержание правой страницы открытого разворота многостраничного документа. [0041] Для определения дополнительных множеств почти вертикальных или вертикальных прямых линий могут быть рассмотрены пиксели, связанные с теми или иными областями изображения, может быть выполнено преобразование Хафа, быстрое преобразование Хафа; можно также воспользоваться детектором границ Кэнни или иным аналогичным приемом. В некоторых вариантах реализации способа для определения дополнительных множеств почти вертикальных или вертикальных прямых линий можно применить метод, отличный от метода, использованного для нахождения линии переплета. К примеру, для нахождения линии переплета можно применить алгоритм преобразования Хафа, а для определения дополнительных множеств почти вертикальных или вертикальных прямых линий можно применить алгоритм быстрого преобразования Хафа.
[0042] В некоторых вариантах реализации способа компонент, ответственный за исправление искажений, может выполнить вторую операцию предобработки изображения, прежде чем выявлять дополнительные множества почти вертикальных или вертикальных прямых линий для левой и правой страниц открытого разворота многостраничного документа. Как отмечалось выше, операция предобработки изображения может конвертировать изображение из полноцветного в полутоновое с градациями серого, уменьшать размер изображения, уменьшать разрешение изображения, изменять резкость изображения (использованием приема «нерезкое маскирование»), выполнять математические морфологические операции (морфологическая эрозия, морфологический градиент и т.д.) и т.п. В некоторых вариантах реализации способа при выполнении второй операции предобработки изображения могут учитываться особенности метода, используемого для определения дополнительных множеств почти вертикальных или вертикальных прямых линий для левой и правой страниц разворота, что позволит максимально увеличить число пикселей изображения, доступных для анализа. В некоторых вариантах реализации способа вторая операция предобработки изображения может быть отличной от первой операции предобработки, выполняемой до определения местоположения линии переплета.
[0043] В одном из иллюстративных примеров ширина изображения открытого разворота многостраничного документа может быть увеличена для того, чтобы уменьшить вероятность того, что алгоритм преобразования проигнорирует пиксели, расположенные у левого и правого краев изображения. К примеру, компонент, ответственный за исправление искажений, может увеличить ширину изображения в пропорции, зависящей от высоты изображения. Так, компонент, ответственный за исправление искажений, может вначале определить высоту изображения (например, в пикселях). Затем компонент, ответственный за исправление искажений, может увеличить ширину изображения в левую сторону на число пикселей, соответствующее высоте изображения, и увеличить ширину изображения в правую сторону на число пикселей, соответствующее высоте изображения. Так, если высота изображения равна 200 пикселей, а ширина изображения - 300 пикселей, то в результате предобработки изображения его ширина будет увеличена на 200 пикселей справа и на 200 пикселей слева; при этом ширина нового изображения составит 700 пикселей, а его содержательная часть, соответствующая оригинальному изображению, окажется в центре нового изображения. Вновь созданные области по обеим сторонам изображения, размером по 200×200 пикселей, способствуют уменьшению вероятности того, что алгоритм преобразования проигнорирует пиксели, расположенные у самых краев исходного изображения.
[0044] Как только будет завершена предварительная обработка изображения, компонент, ответственный за исправление искажений, может начать определение дополнительных множеств почти вертикальных или вертикальных прямых линий на изображении открытого разворота многостраничного документа. Дополнительные множества почти вертикальных или вертикальных прямых линий могут быть связаны с некоторым графическим объектом в пределах изображения (к примеру, элементом рисунка на странице документа), полем текста (к примеру, текстовой колонкой на странице документа), таблицей, разделителем (например, темной линией, разделяющей на части текст на странице документа) и т.п. В одном из вариантов реализации способа компонент, ответственный за исправление искажений, может определить положение края массива пикселей, лежащих слева от линии переплета на изображении открытого разворота многостраничного документа. Определение места расположения массива пикселей возможно с учетом изменений яркости от пикселя к пикселю на изображении открытого разворота многостраничного документа. Компонент, ответственный за исправление искажений, может определить положение по меньшей мере одной линии из числа дополнительных множеств почти вертикальных или вертикальных прямых линий на изображении открытого разворота многостраничного документа.
[0045] В одном из других вариантов реализации способа компонент, ответственный за исправление искажений, может определить положение прямых линий, воспользовавшись для этого краями изображения открытого разворота многостраничного документа. Компонент, ответственный за исправление искажений, может вначале определить положение одного из краев изображения, где край соответствует либо левому, либо правому краю изображения открытого разворота многостраничного документа. После этого край изображения открытого разворота многостраничного документа, положение которого установлено, может послужить отправной точкой для определения положения по меньшей мере одной линии из числа дополнительных множеств почти вертикальных или вертикальных прямых линий на изображении открытого разворота многостраничного документа.
[0046] В одном из других вариантов реализации способа компонент, ответственный за исправление искажений, может применить к изображению параметрическую трансформацию. К примеру, компонент, ответственный за исправление искажений, может применить к изображению быстрое преобразование Хафа. Быстрое преобразование Хафа может иметь некоторые преимущества перед обычным преобразованием Хафа в силу того, что диапазон поиска для почти вертикальных или вертикальных прямых линий может быть существенно шире (к примеру, не ограничиваясь одной лишь линией переплета), а отсюда вытекает необходимость исследования большего числа пикселей изображения. Соответственно, применение быстрого преобразования Хафа может потребовать меньшего объема вычислений и оказаться предпочтительнее при запуске на исполнение с мобильных устройств.
[0047] В отличие от плоскости в координатах (ρ, θ), используемой в ходе преобразования Хафа, указанного выше, алгоритм быстрого преобразования Хафа может быть реализован в координатах (х, shift), где х - координата точки пересечения ранее найденной линии переплета с верхним краем изображения, a shift - смещение по горизонтали от линии переплета поперек изображения в направлении, параллельном нижнему краю. В некоторых вариантах реализации способа с целью определения положения почти вертикальных или вертикальных прямых линий анализу подвергают лишь часть пространства Хафа. В одном из иллюстративных примеров диапазон сканирования угла алгоритмом быстрого преобразования Хафа может быть ограниченным и составлять от -45 градусов до +45 градусов. Тем самым удается обнаружить почти вертикальные или вертикальные прямые линии, с отклонением в положительную и отрицательную сторону на угол до 45 градусов.
[0048] В одном из вариантов реализации способа, как и ранее, может быть задействован алгоритм подавления немаксимумов в пространстве преобразования Хафа. Как отмечалось выше, может оказаться целесообразной предварительная фильтрация, цель которой - более четкая локализация или указание максимальных значений в аккумуляторном массиве за счет подавления сигнала от облака окружающих точек со сходными значениями. К примеру, может быть применен фильтр, подавляющий сигнал от всех точек в аккумуляторном массиве, не являющихся локальными максимумами. Этот фильтр может накладываться на заданную область (например, на область 5×5 пикселей), уменьшая числовое значение (вес) немаксимальных точек (например, в 2 раза). Пороговые характеристики фильтрации, в том числе пороговое значение, могут быть либо предварительно заданными (фиксированными), либо подгоночными параметрами, которые вычисляются с учетом особенностей аккумуляторного массива. В последнем случае при вычислении порога можно исходить из точек, имеющих максимальную яркость. К примеру, может быть задан порог 1/5 (20%) от максимального значения яркости пикселя. Затем может производиться фильтрация аккумуляторного массива по критерию этого порогового значения. Таким образом, в данной области пространства точкам, яркость которых больше или равна пороговому значению (20% от максимальной яркости), может соответствовать одна или несколько прямых линий, положение которых установлено.
[0049] Как только установлено положение почти вертикальных или вертикальных прямых линий для изображения страниц открытого разворота многостраничного документа, компонент, ответственный за исправление искажений, может начать определение всевозможных искажений в пределах изображения открытого разворота многостраничного документа, рассматривая их в параметрической связи с перспективой. В основе таких расчетов могут лежать точки схода - одна для левой страницы и одна для правой страницы. Точка схода - это точка на бесконечности, лежащая на пересечении параллельных прямых, рассматриваемых в перспективе. В некоторых вариантах реализации способа точки схода могут быть найдены при помощи ранее выявленных множеств почти вертикальных или вертикальных прямых линий, описанных выше. Как только найдены точки схода, для каждой страницы изображения могут быть построены четырехугольники, форма которых соответствует перспективным искажениям. Затем может осуществляться преобразование координат, переводящее четырехугольник в прямоугольник, то есть спрямляющее перспективу изображения.
[0050] Компонент, ответственный за исправление искажений, может вначале определить первую точку схода для левой страницы открытого разворота многостраничного документа, беря за основу первое дополнительное множество почти вертикальных или вертикальных прямых линий, а также линию переплета. Затем компонент, ответственный за исправление искажений, может определить вторую точку схода для правой страницы открытого разворота многостраничного документа, беря за основу второе дополнительное множество почти вертикальных или вертикальных прямых линий, а также линию переплета. Чтобы определить положение точек схода, компонент, ответственный за исправление искажений, может вначале определить множество числовых значений, соответствующих отдельным пикселям изображения. Затем компонент, ответственный за исправление искажений, может построить множество преобразованных значений, применяя преобразование к указанному множеству числовых значений. К примеру, компонент, ответственный за исправление искажений, может преобразовать числовые значения, воспользовавшись одним из описанных выше методов преобразований (преобразование Хафа, быстрое преобразование Хафа и т.д.). Следует отметить, что сам порядок описания обработки изображений, когда вначале работают с левой страницей разворота многостраничного документа, выбран таким исключительно ради простоты: в других вариантах осуществления изобретения порядок обработки страниц многостраничного документа может быть иным. К примеру, в одном из вариантов осуществления изобретения компонент, ответственный за исправление искажений, может вначале находить левую точку схода (для левой страницы), затем находить правую точку схода (для правой страницы). В одном из других вариантов осуществления изобретения компонент, ответственный за исправление искажений, может вначале находить правую точку схода, а затем левую точку схода. В других вариантах осуществления изобретения может быть предусмотрено одновременное определение левой и правой точек схода.
[0051] Затем компонент, ответственный за исправление искажений, может определить кластеры преобразованных значений в пространстве преобразования (например, в пространстве Хафа). Для случая открытого разворота многостраничного документа, состоящего из двух страниц, компонент, ответственный за исправление искажений, может определить три кластера преобразованных значений: центральный кластер, то есть множество преобразованных значений, соответствующих переплету; левый кластер, то есть множество преобразованных значений, соответствующих почти вертикальным или вертикальным прямым линиям, лежащим по левую сторону от линии переплета (например, левой странице); правый кластер, то есть множество преобразованных значений, соответствующих почти вертикальным или вертикальным прямым линиям, лежащим по правую сторону от линии переплета (например, правой странице).
[0052] В одном из иллюстративных примеров компонент, ответственный за исправление искажений, определяет размер центрального кластера как плюс-минус 1/15 от ширины изображения с каждой стороны от точки, соответствующей линии переплета. Для центрального кластера можно рассчитать среднее числовое значение, позволяющее уточнить гипотезу (начальное приближение) при оценке положения линии переплета для открытого разворота многостраничного документа. Любые преобразованные значения (к примеру, локальные максимумы), лежащие с левой стороны от центрального кластера, определяются как значения, принадлежащие левому кластеру. Любые преобразованные значения (к примеру, локальные максимумы), лежащие с правой стороны от центрального кластера, определяются как значения, принадлежащие правому кластеру.
[0053] Затем компонент, ответственный за исправление искажений, может построить левый луч в пространстве преобразования (например, в пространстве Хафа) для левого кластера (множества преобразованных значений) по отношению к центральному кластеру. Левый луч можно построить при помощи по меньшей мере одного из следующих методов: метод наименьших квадратов (МНК), стабильный метод оценки параметров модели на основе случайных выборок (RANSAC) или иной процедуры такого рода. Затем левый луч может послужить основой для определения первой точки схода для левой страницы. Аналогичным образом, компонент, ответственный за исправление искажений, может построить правый луч в пространстве преобразования (например, в пространстве Хафа) для правого кластера (множества преобразованных значений) по отношению к центральному кластеру. Правый луч также можно построить при помощи по меньшей мере одного из следующих методов: метод наименьших квадратов (МНК), стабильный метод оценки параметров модели на основе случайных выборок (RANSAC) или иная процедура такого рода. Затем правый луч может послужить основой для определения второй точки схода для правой страницы.
[0054] Как только будут найдены точки схода для левой и правой страниц, компонент, ответственный за исправление искажений, может определить четырехугольники, форма которых соответствует перспективным искажениям для каждой страницы. Четырехугольники можно строить независимо друг от друга, основываясь на изображении открытого разворота многостраничного документа. Компонент, ответственный за исправление искажений, может определить первый четырехугольник, беря за основу первую точку схода (точку схода для левой страницы открытого разворота многостраничного документа), и второй четырехугольник, беря за основу вторую точку схода (точку схода для правой страницы открытого разворота многостраничного документа). Первый четырехугольник может соответствовать левой странице открытого разворота многостраничного документа, а второй четырехугольник может соответствовать правой странице открытого разворота многостраничного документа.
[0055] Чтобы определить первый четырехугольник, компонент, ответственный за исправление искажений, может вначале определить левую срединную точку (медиану) изображения, при этом положение левой срединной точки может соответствовать пикселю в центре левого вертикального края изображения. В некоторых реализациях способа положение левой срединной точки может соответствовать пикселю, ближайшему к вертикали, проведенной через середину высоты изображения. Затем компонент, ответственный за исправление искажений, может определить левую прямую линию, проходящую через левую срединную точку изображения и первую точку схода (точку схода для левой страницы). После этого можно определить левую верхнюю нормаль как линию, соединяющую линию переплета и левую прямую линию и ближайшую к верхнему краю изображения. Левая верхняя нормаль может представлять собой перпендикуляр к переплету (например, образовывать прямой угол с линией переплета), проведенный с таким расчетом, чтобы не потерять пиксели изображения. В одном из вариантов осуществления изобретения левую верхнюю нормаль можно провести из точки пересечения линии переплета с левым верхним краем изображения. В качестве альтернативного варианта левую верхнюю нормаль можно провести из точки, расположенной на линии переплета выше точки пересечения линии переплета с левым верхним краем изображения. Чтобы завершить построение первого четырехугольника, можно определить левую нижнюю нормаль как линию, соединяющую линию переплета и левую линию и ближайшую к нижнему краю изображения. Левая нижняя нормаль может представлять собой перпендикуляр к переплету (например, образовывать прямой угол с линией переплета), проведенный с таким расчетом, чтобы не потерять пиксели изображения. В одном из вариантов осуществления изобретения левую нижнюю нормаль можно провести от линии переплета до точки ее пересечения с левым нижним углом изображения. В одном из вариантов осуществления изобретения левую нижнюю нормаль можно провести от линии переплета до точки, расположенной на левой линии ниже левого нижнего угла изображения.
[0056] Чтобы определить второй четырехугольник, компонент, ответственный за исправление искажений, может вначале определить правую срединную точку (медиану) изображения, при этом положение правой срединной точки может соответствовать пикселю в центре правого вертикального края изображения. В некоторых реализациях способа положение правой срединной точки может соответствовать пикселю, ближайшему к вертикали, проведенной через середину высоты изображения. Затем компонент, ответственный за исправление искажений, может определить правую линию, проходящую через правую срединную точку изображения и вторую точку схода (точку схода для правой страницы). После этого можно определить правую верхнюю нормаль как линию, соединяющую линию переплета и правую линию и ближайшую к верхнему краю изображения. Правая верхняя нормаль может представлять собой перпендикуляр к переплету (например, образовывать прямой угол с линией переплета), проведенный с таким расчетом, чтобы не потерять пиксели изображения. В одном из вариантов осуществления изобретения правую верхнюю нормаль можно провести от линии переплета до точки ее пересечения с правым верхним углом изображения. В одном из вариантов осуществления изобретения правую верхнюю нормаль можно провести от линии переплета до точки, расположенной на правой линии выше правого верхнего угла изображения. Чтобы завершить построение второго четырехугольника, можно определить правую нижнюю нормаль как линию, соединяющую линию переплета и правую линию и ближайшую к нижнему краю изображения. Правая нижняя нормаль может представлять собой перпендикуляр к переплету (например, образовывать прямой угол с линией переплета), проведенный с таким расчетом, чтобы не потерять пиксели изображения. В одном из вариантов осуществления изобретения правую нижнюю нормаль можно провести из точки пересечения линии переплета с правым нижним краем изображения. В качестве альтернативного варианта правую нижнюю нормаль можно провести из точки, расположенной на линии переплета ниже точки пересечения линии переплета с правым нижним краем изображения.
[0057] После этого компонент, ответственный за исправление искажений, может построить исправленное изображение левой страницы путем уменьшения искажений первого четырехугольника и исправленное изображение правой страницы путем уменьшения искажений правого четырехугольника. Исправленное изображение левой страницы можно построить следующим образом: вначале определить множество координат в пределах изображения, которые соответствуют каждому из углов первого четырехугольника (к примеру, четырехугольника для левой страницы открытого разворота многостраничного документа). Указанные координаты могут быть представлены множеством пикселей с известным расположением в пределах изображения открытого разворота многостраничного документа, множеством относительных смещений от линии переплета, множеством относительных смещений от одного из углов открытого разворота многостраничного документа или каким-либо иным способом.
[0058] Затем компонент, ответственный за исправление искажений, может определить коэффициенты пропорциональности для исправленного изображения левой страницы, используя параметры, которые требуются для построения прямоугольника, соответствующего исправленному изображению левой страницы. В некоторых вариантах реализации способа определение коэффициентов пропорциональности может основываться на применении эвристического подхода. К примеру, коэффициенты пропорциональности могут быть найдены масштабным преобразованием расстояния между центром масс четырехугольника и положением точки пересечения диагоналей четырехугольника. В одном из иллюстративных примеров коэффициенты пропорциональности могут быть найдены из уравнений (1) и (2):
[0059]
[0060]
1
2
1
2
[0061] Здесь W и Н представляют, соответственно, ширину и высоту полученного прямоугольника, соответствующего исправленному изображению; W и W представляют ширину, соответственно, верхней и нижней нормалей результирующего четырехугольника, соответствующего исходному изображению, в котором имеются искажения; H и H представляют высоту, соответственно, правой и левой сторон результирующего четырехугольника, соответствующего исходному изображению, в котором имеются искажения; deltaX представляет собой отклонение по горизонтали центра масс результирующего четырехугольника от точки пересечения его диагоналей, а deltaY представляет собой отклонение по вертикали центра масс результирующего четырехугольника от точки пересечения его диагоналей.
[0062] Вначале компонент, ответственный за исправление искажений, может определить пару диагональных линий, соединяющих противоположные углы первого четырехугольника, и найти точку пересечения пары диагональных линий. Затем компонент, ответственный за исправление искажений, может рассчитать координаты геометрического центра масс первого четырехугольника. Расчет координат геометрического центра масс может основываться на известной точке пересечения второй пары линий, соединяющих вместе середины каждой из противоположных сторон четырехугольника. В качестве альтернативного варианта расчет координат геометрического центра масс может основываться на том, что четырехугольник делят на треугольные составные части и определяют координаты центров масс (центроидов) для каждой из треугольных составных частей.
[0063] После этого компонент, ответственный за исправление искажений, может определить «горизонтальный фактор дельта» как расстояние по горизонтали от точки пересечения диагоналей четырехугольника до его геометрического центра масс (deltaX в уравнении (1), см. выше), а «вертикальный фактор дельта» как расстояние по вертикали от точки пересечения диагоналей четырехугольника до его геометрического центра масс (deltaY в уравнении (2), см. выше). Ширина прямоугольника для исправленного изображения левой страницы может быть рассчитана через «горизонтальный фактор дельта» и сумму ширин верхней и нижней нормалей четырехугольника, как отмечено выше в уравнении (1). Высота прямоугольника для исправленного изображения левой страницы может быть рассчитана через «вертикальный фактор дельта» и сумму высот правой и левой сторон четырехугольника, как отмечено выше в уравнении (2).
[0064] В одном из альтернативных вариантов осуществления изобретения компонент, ответственный за исправление искажений, может определить указанные коэффициенты пропорциональности аналитически, основываясь на максимальных значениях ширины и высоты исходного четырехугольника. К примеру, ширина прямоугольника для исправленного изображения может быть установлена равной большему из двух значений: длина верхней нормали исходного четырехугольника и длина нижней нормали исходного четырехугольника. Высота прямоугольника для исправленного изображения может определяться найденным соотношением для ширины прямоугольника. В еще одном примере высота прямоугольника для исправленного изображения может быть установлена равной большему из двух значений: высота правой и левой сторон исходного четырехугольника. После этого ширина прямоугольника может определяться найденным соотношением для высоты прямоугольника.
[0065] Далее компонент, ответственный за исправление искажений, может применить найденные коэффициенты пропорциональности к множеству координат для первого четырехугольника (например, четырехугольника, соответствующего левой странице изображения открытого разворота многостраничного документа) для расчета нового множества координат, уже для исправленного изображения левой страницы. В новое множество координат могут быть включены координаты для каждого из углов прямоугольника, соответствующего исправленному изображению левой страницы. Компонент, ответственный за исправление искажений, может преобразовать информацию, содержащуюся в первом четырехугольнике, и представить ее в форме прямоугольника, соответствующего исправленному изображению левой страницы; для этого он выполняет координатное преобразование из координат четырехугольника в координаты прямоугольника. В некоторых вариантах реализации способа координатное преобразование может осуществляться путем построения модели преобразования при помощи матрицы проективного преобразования 3×3 с восемью степенями свободы.
[0066] Затем компонент, ответственный за исправление искажений, может построить исправленное изображение правой страницы путем уменьшения искажений второго четырехугольника (например, четырехугольника, соответствующего правой странице изображения открытого разворота многостраничного документа). Исправленное изображение правой страницы может быть получено по схеме, аналогичной описанной выше для создания исправленного изображения левой страницы. Компонент, ответственный за исправление искажений, может вначале определить множество координат в пределах изображения, которые соответствуют каждому из углов второго четырехугольника (к примеру, четырехугольника для правой страницы открытого разворота многостраничного документа).
[0067] В некоторых вариантах реализации способа искажение для первого и второго четырехугольников может быть одинаковым. В подобных случаях при построении исправленного изображения левой и правой страниц могут быть использованы одни и те же коэффициенты пропорциональности. В других вариантах реализации способа искажение для первого и второго четырехугольников может быть различным. В подобных случаях компонент, ответственный за исправление искажений, может раздельно определить коэффициенты пропорциональности для левой и правой страниц. Компонент, ответственный за исправление искажений, может применить найденные коэффициенты пропорциональности к множеству координат для второго четырехугольника для расчета нового множества координат, уже для исправленного изображения правой страницы. В новое множество координат могут быть включены координаты для каждого из углов прямоугольника, соответствующего исправленному изображению правой страницы. Компонент, ответственный за исправление искажений, может преобразовать информацию, содержащуюся во втором четырехугольнике, и представить ее в форме прямоугольника, соответствующего исправленному изображению правой страницы; для этого он выполняет координатное преобразование из координат четырехугольника в координаты прямоугольника.
[0068] Таким образом, представленные варианты осуществления изобретения способны обеспечить более высокую точность исправления перспективных искажений в изображении отснятого разворота многостраничного документа. В частности, становится возможным исправление изображения каждой страницы разворота многостраничного документа в зависимости от степени перспективного искажения именно этой страницы. Таким образом, получают исправленное изображение каждой страницы разворота, дающее более точное представление о виде этой страницы.
[0069] На Фиг. 1 представлена схема компонентов верхнего уровня для примера архитектуры вычислительного устройства в соответствии с одним или более вариантами осуществления настоящего изобретения. В иллюстративных примерах вычислительное устройство 100 может представлять собой разнообразные вычислительные устройства, включая планшетный компьютер, смартфон, ноутбук, фотокамеру, видеокамеру и т.д. В одном из вариантов осуществления изобретения вычислительное устройство 100 может представлять собой мобильное устройство, которое производит съемку изображений (к примеру, на камеру мобильного устройства) и выполняет исправление искажений, осуществляя обработку изображения локально, то есть на самом мобильном устройстве, как описано ниже. В другом варианте осуществления изобретения мобильное устройство может производить съемку и передавать отснятое изображение на сервер, который производит обработку изображения с исправлением искажений, как описано ниже. После этого сервер может пересылать исправленное изображение обратно на мобильное устройство, которое, в свою очередь, может производить дополнительную обработку (к примеру, OCR, исправление горизонтальных искажений и т.п.).
[0070] Вычислительное устройство 100 может содержать процессор 110, подключенный к системной шине 120. Другие устройства, подключенные к системной шине 120, могут включать память 130, видеомонитор 135 с сенсорным экраном 170, клавиатуру 140, сетевой интерфейс 160 и оптическое устройство ввода 150. В этом документе термин «подключенный» относится к устройствам, которые соединены с помощью электрического соединения или подключены через один или несколько интерфейсных устройств, адаптеров и т.д.
[0071] Процессор 110 может представлять собой одно или несколько устройств обработки, включая универсальные процессоры и (или) специализированные процессоры. Память 130 может включать одно или несколько устройств энергозависимой памяти (например, микросхем ОЗУ), одно или несколько устройств энергонезависимой памяти (например, микросхем ПЗУ или EEPROM) и одно или несколько запоминающих устройств (например, оптические или магнитные диски). Оптическое устройство ввода 150 может представлять собой и (или) содержать одну или несколько камер, сканеров, считывателей штрих-кодов и (или) любых других устройств, способных формировать изображения документа.
[0072] В некоторых вариантах реализации способа вычислительное устройство 100 может содержать сенсорный экран 170, выполненный в виде сенсорной области ввода и (или) чувствительной поверхности, наложенной на видеомонитор 135. Пример вычислительного устройства, в котором реализованы некоторые варианты осуществления настоящего изобретения, будет рассмотрен более подробно ниже при описании Фиг. 14.
[0073] В некоторых вариантах реализации способа память 130 может хранить команды модуля исправления искажений 190, тем самым облегчая исправление искажений отснятого изображения открытого разворота многостраничного документа, как описано выше, а также более подробно ниже со ссылкой на Фиг. 6-13. В одном из иллюстративных примеров модуль исправления искажений 190 может быть реализован в виде функции, которая вызывается через интерфейс пользователя другого приложения (например, приложения сканирования документов). В одном из альтернативных вариантов осуществления изобретения модуль исправления искажений 190 может быть реализован в виде автономного приложения. Как только модулем исправления искажений 190 созданы исправленные изображения для каждой страницы разворота многостраничного документа, становится возможной дальнейшая обработка исправленных изображений. К примеру, возможно исправление перспективных искажений по горизонтали для каждой отдельно взятой страницы. Кроме того, для каждой отдельно взятой страницы можно выполнить оптическое распознавание символов (OCR). Далее модуль исправления искажений 190 может выполнить дополнительную обработку изображений как самостоятельно, так и путем вызова отдельного специализированного модуля дополнительной обработки изображений, перенаправления исправленных изображений на другой ресурс или подсистему (к примеру, пересылки их на сервер), или каким-либо иным способом.
[0074] На Фиг. 2 показан пример графического интерфейса пользователя (GUI) мобильного устройства 220 для исправления искажений отснятого изображения открытого разворота многостраничного документа. GUI мобильного устройства 220 может представлять собой автономное приложение, компонент интерфейса пользователя для менеджера документов или т.п. Например, GUI мобильного устройства 220 может быть предоставлен пользователю модулем исправления искажений 190, показанным на Фиг. 1; это описано более подробно ниже со ссылкой на Фиг. 6-13.
[0075] Мобильное устройство 220 может включать приложение, настроенное для выполнения съемки разворотов книги 210 на камеру мобильного устройства. Как показано на Фиг. 2, это приложение может отображать в мобильном устройстве 220 GUI, призванный помочь пользователю в совмещении видоискателя на дисплее камеры 230 с разворотом книги 210. Затем приложение может привести в действие камеру мобильного устройства 220, чтобы начать получать с нее изображения. Как вариант, приложение может привести в действие камеру мобильного устройства 220, чтобы начать получать с нее кадры видеопотока. Изображения (или кадры видеопотока) могут выводиться пользователю на просмотр с помощью дисплея камеры 230. Приложение может выводить на дисплей указатели положения GUI, а именно 250-А и 250-В; благодаря им пользователь может контролировать положение верхнего и нижнего края разворота книги 210. Пользователь может производить съемку изображений разворота книги 210, выбирая и нажимая соответствующую кнопку GUI (кнопку 240), отображаемую на дисплее мобильного устройства 220. После этого модуль исправления искажений 190 может получить изображение и выполнить исправление искажений страниц отснятого разворота многостраничного документа, как описано выше и ниже со ссылкой на Фиг. 6-13.
[0076] На Фиг. 3А дан наглядный пример изображения 300 открытого книжного разворота, где видна линия переплета 303, на которой сходятся страницы 301 и 302. В некоторых реализациях способа изображение 300 может быть получено мобильным устройством, представленным на Фиг. 2, а для определения линии переплета 303 может быть задействован модуль исправления искажений 190, представленный на Фиг. 1; это описано более подробно ниже со ссылкой на Фиг. 6-13. Как показано на Фиг. 3А, линия переплета 303 представляет собой почти вертикальную или вертикальную прямую линию и имеет отношение к месту объединения двух страниц (левой страницы 301 и правой страницы 302) на изображении 300 разворота открытой книги.
[0077] На Фиг. 3B-3G даны наглядные примеры трансформированных изображений, полученных в ходе определения линии переплета, в соответствии с одним или более вариантами осуществления настоящего изобретения. В одном из вариантов осуществления изобретения на Фиг. 3B-3G представлены изображения, полученные в результате отдельных операций подготовки изображения к трансформации (например, к преобразованию Хафа), как описано ниже со ссылкой на Фиг. 7. На Фиг. 3В дан наглядный пример трансформированного изображения 300-В открытого книжного разворота после использования приема «нерезкое маскирование». На Фиг. 3С дан наглядный пример трансформированного изображения 300-С открытого книжного разворота после выполнения бинаризации (преобразования в двоичную форму).
[0078] На Фиг. 3D дан наглядный пример трансформированного изображения 300-D открытого книжного разворота после выполнения субдискретизации. На Фиг. 3Е дан наглядный пример трансформированного изображения 300-Е открытого книжного разворота после выполнения морфологической операции «верх шляпы» (TopHat). На Фиг. 3F дан наглядный пример трансформированного изображения 300-F открытого книжного разворота после выполнения операции дилатации.
[0079] На Фиг. 3G дан наглядный пример трансформированного изображения 300-G открытого книжного разворота после выполнения еще одной морфологической операции. Как показано на Фиг. 3G, изображение 300-G может быть получено путем попиксельного сканирования изображения 300-F (Фиг. 3F) и вычитания из яркости каждого пикселя изображения 300-F (Фиг. 3F) яркости соответствующего пикселя изображения 300-Е (Фиг. 3Е).
[0080] На Фиг. 3Н дан пример изображения открытого книжного разворота после преобразования с применением еще одной морфологической операции, в соответствии с одним или более вариантами осуществления настоящего изобретения. Как показано на Фиг. 3Н, изображение 300-Н может быть получено путем попиксельного сканирования изображения 300-F (Фиг. 3F) и прибавления к яркости каждого пикселя изображения 300-F (Фиг. 3F) яркости соответствующего пикселя изображения 300-G (Фиг. 3G).
[0081] На Фиг. 31 дан наглядный пример параметризации, использованной при построении алгоритма быстрого преобразования Хафа для изображения открытого книжного разворота. Как отмечалось выше, алгоритм быстрого преобразования Хафа может быть реализован в координатах (х, shift), где х - координата точки пересечения линии переплета 303 с верхним краем изображения 300 (координата точки пересечения 310), a shift - смещение по горизонтали от линии переплета 303 поперек изображения в направлении, параллельном нижнему краю изображения 300 (смещение 312).
[0082] На Фиг. 4А дан пример изображения открытого книжного разворота с сопряженными точками схода для левой и правой страниц. Положение линии переплета 450 может быть найдено на первом этапе при помощи алгоритма преобразования Хафа, как описано ниже со ссылкой на Фиг. 7. Положение левой точки схода 401 может быть найдено на основе линии переплета 450 и любыми дополнительными почти вертикальными или вертикальными прямыми линиями, лежащими слева от линии переплета 450, как описано ниже со ссылкой на Фиг. 9. Положение правой точки схода 402 может быть найдено на основе линии переплета 450 и любыми дополнительными почти вертикальными или вертикальными прямыми линиями, лежащими справа от линии переплета 450, как описано ниже со ссылкой на Фиг. 10.
[0083] Положение левого четырехугольника для изображения может быть найдено, как описано ниже со ссылкой на Фиг. 11. Вначале находят положение левой срединной точки (медианы) изображения 405, после чего строят левую прямую линию 403, соединяющую левую срединную точку 405 с левой точкой схода 401. Левая верхняя нормаль 407 соединяет линию переплета 450 с левой прямой линией 403. Левая нижняя нормаль 409 соединяет линию переплета 450 с левой прямой линией 403.
[0084] Положение правого четырехугольника для изображения может быть найдено, как описано ниже со ссылкой на Фиг. 12. Вначале находят положение правой срединной точки (медианы) изображения 406, после чего строят правую прямую линию 404, соединяющую правую срединную точку 406 с правой точкой схода 402. Правая верхняя нормаль 408 соединяет линию переплета 450 с правой прямой линией 404. Правая нижняя нормаль 410 соединяет линию переплета 450 с правой прямой линией 404.
[0085] На Фиг. 4В дан пример изображения открытого книжного разворота с сопряженными четырехугольниками, соответствующими искажению изображения для левой и правой страниц. Построение четырехугольников возможно на основе нормалей, соответствующих Фиг. 4А. Четырехугольник, обрамляющий искаженное изображение левой страницы многостраничного документа, можно получить, имея координаты угловых точек 411, 412, 413, 414. Четырехугольник, обрамляющий искаженное изображение правой страницы многостраничного документа, можно получить, имея координаты угловых точек 415, 416, 417, 418.
[0086] На Фиг. 5 даны примеры изображений левой и правой страниц открытого книжного разворота с исправленной перспективой. Левая страница 501 может представлять собой результат исправления изображения, соответствующего левому четырехугольнику Фиг. 4 В. Левая страница 501 характеризуется уже преобразованными (исправленными) координатами угловых точек 503, 504, 505, 506. Эти координаты могут получаться в результате координатного преобразования, примененного к угловым точкам четырехугольника (Фиг. 4В) - 411, 412, 413, 414, соответственно. Правая страница 502 может представлять собой результат исправления изображения, соответствующего правому четырехугольнику Фиг. 4 В. Правая страница 502 характеризуется уже преобразованными (исправленными) координатами угловых точек 507, 508, 509, 510. Эти координаты могут получаться в результате координатного преобразования, примененного к угловым точкам четырехугольника (Фиг. 4В) - 415, 416, 417, 418, соответственно.
[0087] На Фиг. 6 представлена блок-схема примера реализации способа 600 исправления перспективных искажений изображения открытого книжного разворота многостраничного документа. Этот способ может осуществляться логической схемой обработки данных, которая может содержать аппаратные средства (электронные схемы, специализированную логическую схему и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 600 может осуществляться модулем исправления искажений 190, показанным на Фиг. 1. При альтернативном подходе способ 600 может полностью или частично осуществляться другим модулем или другой машиной. Следует отметить, что отдельные операции блок-схемы, показанной на Фиг. 6, могут выполняться одновременно или в иной последовательности, отличной от указанной на блок-схеме.
[0088] На этапе 605 логическая схема обработки данных принимает изображение разворота многостраничного документа. На этапе 610 логическая схема обработки данных находит положение линии переплета на изображении разворота многостраничного документа, полученного на этапе 605. В иллюстративном примере логическая схема обработки данных может определять положение линии переплета, как описано ниже со ссылкой на Фиг. 7. На этапе 615 логическая схема обработки данных находит первое множество почти вертикальных или вертикальных прямых линий, лежащих слева от линии переплета на изображении разворота многостраничного документа. В одном из иллюстративных примеров логическая схема обработки данных может определять положение первого множества почти вертикальных или вертикальных прямых линий, как описано ниже со ссылкой на Фиг. 8.
[0089] На этапе 620 логическая схема обработки данных находит второе множество почти вертикальных или вертикальных прямых линий, лежащих справа от линии переплета на изображении разворота многостраничного документа. На этапе 625 логическая схема обработки данных находит положение первой точки схода, принимая за основу первое множество почти вертикальных или вертикальных прямых линий, определенное на этапе 615, и линию переплета, найденную на этапе 610. В одном из иллюстративных примеров логическая схема обработки данных может определять положение первой точки схода, как описано ниже со ссылкой на Фиг. 9.
[0090] На этапе 630 логическая схема обработки данных находит положение второй точки схода, принимая за основу второе множество почти вертикальных или вертикальных прямых линий, определенное на этапе 620, и линию переплета, найденную на этапе 605. В одном из иллюстративных примеров логическая схема обработки данных может определять положение второй точки схода, как описано ниже со ссылкой на Фиг. 10. На этапе 635 логическая схема обработки данных определяет координаты первого четырехугольника, принимая за основу положение первой точки схода, определенное на этапе 625. В одном из иллюстративных примеров логическая схема обработки данных может определять координаты первого четырехугольника, как описано ниже со ссылкой на Фиг. 11.
[0091] На этапе 640 логическая схема обработки данных определяет координаты второго четырехугольника, принимая за основу положение второй точки схода, определенное на этапе 630. В одном из иллюстративных примеров логическая схема обработки данных может определять координаты второго четырехугольника, как описано ниже со ссылкой на Фиг. 12. На этапе 645 логическая схема обработки данных создает исправленное изображение первой страницы, уменьшая искажение первого четырехугольника, определенного ранее на этапе 635. В одном из иллюстративных примеров логическая схема обработки данных может создавать исправленное изображение, как описано ниже со ссылкой на Фиг. 13. На этапе 650 логическая схема обработки данных создает исправленное изображение второй страницы, уменьшая искажение второго четырехугольника, определенного ранее на этапе 640. После этапа 650 показанный на Фиг. 6 способ завершается.
[0092] На Фиг. 7 представлена блок-схема примера реализации способа 700 определения линии переплета на изображении открытого книжного разворота многостраничного документа. Этот способ может осуществляться логической схемой обработки данных, которая может содержать аппаратные средства (электронные схемы, специализированную логическую схему и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 700 может осуществляться модулем исправления искажений 190, показанным на Фиг. 1. При альтернативном подходе способ 700 может полностью или частично осуществляться другим модулем или другой машиной. Следует отметить, что отдельные операции блок-схемы, показанной на Фиг. 7, могут выполняться одновременно или в иной последовательности, отличной от указанной на блок-схеме.
[0093] На этапе 705 логическая схема обработки данных конвертирует полноцветное изображение в полутоновое. На этапе 710 логическая схема обработки данных применяет «нерезкое маскирование» к полутоновому изображению. На этапе 715 логическая схема обработки данных преобразует полутоновое изображение в двоичную («бинаризованную») форму; с этой целью полутоновое изображение подвергают бинаризации. На этапе 720 логическая схема обработки данных преобразует бинаризованное изображение в изображение с пониженным разрешением, при этом размер бинаризованного изображения уменьшают до определенной, заранее заданной величины. К примеру, растровая ширина бинаризованного изображения может быть уменьшена до 800 пикселей. В некоторых вариантах реализации способа, кроме того, может быть уменьшена и растровая высота бинаризованного изображения с таким расчетом, чтобы она была кратна степени двойки (к примеру, 256 пикселей, 512 пикселей и т.д.).
[0094] На этапе 725 логическая схема обработки данных преобразует изображение с пониженным разрешением в видоизмененную форму путем применения к нему по меньшей мере одной морфологической операции. К примеру, логическая схема обработки данных может применить к изображению с пониженным разрешением морфологическую операцию «верх шляпы» (TopHat), которая «очищает» изображение от темных элементов большого размера (создавая при этом «морфологическое изображение 1»). К примеру, в качестве фильтра для операции «верх шляпы» (TopHat) можно взять структурирующий элемент размерности 11×11. Далее к изображению можно применить операцию дилатации, что позволяет удалить из него весь текст (создавая при этом «морфологическое изображение 2»). К примеру, в качестве фильтра для операции дилатации можно взять структурирующий элемент размерности 1×7, центрированный по вертикали. В результате такой операции может получиться изображение, в котором из всех линий сохранены главным образом вертикальные. Далее логическая схема обработки данных может создавать третье изображение, подвергнутое морфологической трансформации («морфологическое изображение 3») - с этой целью проводится попиксельное сканирование «морфологического изображения 2» и из яркости пикселя «морфологического изображения 2» вычитается яркость пикселя «морфологического изображения 1». Далее логическая схема обработки данных может создавать модифицированное изображение, предназначенное для преобразования Хафа - с этой целью проводится попиксельное сканирование «морфологического изображения 2» и к яркости пикселя «морфологического изображения 3» прибавляется яркость пикселя «морфологического изображения 2».
[0095] На этапе 730 логическая схема обработки данных определяет множество числовых значений, соответствующих характеристикам пикселей в модифицированном изображении. На этапе 735 логическая схема обработки данных строит множество преобразованных значений, применяя преобразование к изначальному множеству числовых значений. В некоторых вариантах реализации способа логическая схема обработки данных может применить к множеству числовых значений преобразование Хафа. На этапе 740 логическая схема обработки данных определяет по меньшей мере одно значение из множества преобразованных значений, которое соответствует пороговому критерию. В некоторых вариантах реализации способа логическая схема обработки данных может использовать предварительно заданное распределение для оценки места расположения линии переплета вдоль горизонтальной координатной оси (оси х). К примеру, логическая схема обработки данных может сосредоточить поиск в области, размер которой не превышает 1/6 ширины изображения в любую сторону от середины горизонтального края изображения. Таким образом, поиск переплета может быть сосредоточен в области с границами от 1 /3 ширины изображения (считая от левого края изображения) до 2/3 ширины изображения (считая от левого края изображения). Помимо этого, может заранее вводиться ограничение для диапазона угла поиска потенциальной линии переплета. К примеру, угол поиска может быть ограничен диапазоном от -22,5 градусов до +22,5 градусов. В некоторых вариантах реализации способа этот диапазон может задаваться в настройках вручную, при этом для него допускается автоматическое уточнение по результатам статистического анализа мест расположения линий переплета в документах, отснятых ранее.
[0096] На этапе 745 логическая схема обработки данных выявляет линию переплета на трансформированном изображении, используя для этого по меньшей мере одно множество преобразованных значений. После этапа 745 показанный на Фиг. 7 способ завершается.
[0097] На Фиг. 8 представлена блок-схема примера реализации способа 800 определения множества почти вертикальных или вертикальных прямых линий на изображении открытого книжного разворота многостраничного документа. Этот способ может осуществляться логической схемой обработки данных, которая может содержать аппаратные средства (электронные схемы, специализированную логическую схему и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 800 может осуществляться модулем исправления искажений 190, показанным на Фиг. 1. При альтернативном подходе способ 800 может полностью или частично осуществляться другим модулем или другой машиной. Следует отметить, что отдельные операции блок-схемы, показанной на Фиг. 8, могут выполняться одновременно или в иной последовательности, отличной от указанной на блок-схеме.
[0098] На этапе 805 логическая схема обработки данных преобразует изображение, применяя к нему операцию предобработки. Операция предобработки изображения может конвертировать изображение из полноцветного в полутоновое с градациями серого, уменьшать размер изображения, уменьшать разрешение изображения, изменять резкость изображения (использованием приема «нерезкое маскирование»), выполнять математические морфологические операции (морфологическая эрозия, морфологический градиент и т.д.) и т.п. В некоторых вариантах реализации способа при выполнении операции предобработки изображения могут учитываться особенности метода, используемого для определения дополнительных множеств почти вертикальных или вертикальных прямых линий для левой и правой страниц разворота, что позволит максимально увеличить число пикселей изображения, доступных для анализа.
[0099] На этапе 810 логическая схема обработки данных определяет множество числовых значений, соответствующих характеристикам пикселей на изображении. На этапе 815 логическая схема обработки данных строит множество преобразованных значений, применяя преобразование к множеству числовых значений. Логическая схема обработки данных может задействовать преобразование Хафа, быстрое преобразование Хафа, воспользоваться детектором границ Кэнни или иным аналогичным приемом. В одном из вариантов осуществления изобретения может быть выполнено быстрое преобразование Хафа. Алгоритм быстрого преобразования Хафа может быть реализован в координатах (х, shift), где х - координата точки пересечения ранее найденной линии переплета с верхним краем изображения, a shift- смещение по горизонтали от линии переплета поперек изображения в направлении, параллельном нижнему краю. В некоторых вариантах реализации способа с целью определения положения почти вертикальных или вертикальных прямых линий анализу подвергают лишь часть пространства Хафа. В одном из иллюстративных примеров диапазон сканирования угла алгоритмом быстрого преобразования Хафа может быть ограниченным и составлять от -45 градусов до +45 градусов. Тем самым удается обнаружить почти вертикальные или вертикальные прямые линии, с отклонением в положительную и отрицательную сторону на угол до 45 градусов.
[00100] На этапе 820 логическая схема обработки данных определяет, что по меньшей мере одно значение из множества преобразованных значений соответствует пороговому критерию. В одном из вариантов реализации способа, как и ранее, может быть задействован алгоритм подавления немаксимумов в пространстве преобразования Хафа. Как отмечалось выше, может оказаться целесообразной предварительная фильтрация, цель которой - более четкая локализация или указание максимальных значений в аккумуляторном массиве за счет подавления сигнала от облака окружающих точек со сходными значениями. К примеру, может быть применен фильтр, подавляющий сигнал от всех точек в аккумуляторном массиве, не являющихся локальными максимумами. Этот фильтр может накладываться на заданную область (например, на область 5×5 пикселей), уменьшая числовое значение (вес) немаксимальных точек (например, в 2 раза). Пороговые характеристики фильтрации, в том числе пороговое значение, могут быть либо предварительно заданными (фиксированными), либо подгоночными параметрами, которые вычисляются с учетом особенностей аккумуляторного массива. В последнем случае при вычислении порога можно исходить из точек, имеющих максимальную яркость. К примеру, может быть задан порог 1/5 (20%) от максимального значения яркости пикселя. Затем может производиться фильтрация аккумуляторного массива по критерию этого порогового значения. Таким образом, в данной области пространства точкам, яркость которых больше или равна пороговому значению (20% от максимальной яркости), может соответствовать одна или несколько прямых линий, положение которых установлено.
[00101] На этапе 825 логическая схема обработки данных выявляет по меньшей мере одну линию на изображении, используя для этого по меньшей мере одно множество преобразованных значений. После этапа 825 показанный на Фиг. 8 способ завершается.
[00102] На Фиг. 9 представлена блок-схема примера реализации способа 900 определения точки схода для левой страницы на изображении открытого книжного разворота многостраничного документа. Этот способ может осуществляться логической схемой обработки данных, которая может содержать аппаратные средства (электронные схемы, специализированную логическую схему и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 900 может осуществляться модулем исправления искажений 190, показанным на Фиг. 1. При альтернативном подходе способ 900 может полностью или частично осуществляться другим модулем или другой машиной. Следует отметить, что отдельные операции блок-схемы, показанной на Фиг. 9, могут выполняться одновременно или в иной последовательности, отличной от указанной на блок-схеме.
[00103] На этапе 905 логическая схема обработки данных определяет множество числовых значений, соответствующих характеристикам пикселей на изображении. На этапе 910 логическая схема обработки данных строит множество преобразованных значений, применяя преобразование к множеству числовых значений, найденных на этапе 905. На этапе 915 логическая схема обработки данных определяет первый кластер преобразованных значений, то есть множество преобразованных значений, соответствующих переплету. На этапе 920 логическая схема обработки данных определяет второй кластер преобразованных значений, то есть множество преобразованных значений, соответствующих почти вертикальным или вертикальным прямым линиям, лежащим по левую сторону от линии переплета. На этапе 925 логическая схема обработки данных строит луч для второго кластера преобразованных значений, определенного на этапе 920. На этапе 930 логическая схема обработки данных находит первую точку схода на основании луча, построенного на этапе 925. После этапа 930 показанный на Фиг. 9 способ завершается.
[00104] На Фиг. 10 представлена блок-схема примера реализации способа 1000 определения точки схода для правой страницы на изображении открытого книжного разворота многостраничного документа. Этот способ может осуществляться логической схемой обработки данных, которая может содержать аппаратные средства (электронные схемы, специализированную логическую схему и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 1000 может осуществляться модулем исправления искажений 190, показанным на Фиг. 1. При альтернативном подходе способ 1000 может полностью или частично осуществляться другим модулем или другой машиной. Следует отметить, что отдельные операции блок-схемы, показанной на Фиг. 10, могут выполняться одновременно или в иной последовательности, отличной от указанной на блок-схеме.
[00105] На этапе 1005 логическая схема обработки данных определяет множество числовых значений, соответствующих характеристикам пикселей на изображении. На этапе 1010 логическая схема обработки данных строит множество преобразованных значений, применяя преобразование к множеству числовых значений, найденных на этапе 1005. На этапе 1015 логическая схема обработки данных определяет первый кластер преобразованных значений, то есть множество преобразованных значений, соответствующих переплету. На этапе 1020 логическая схема обработки данных определяет второй кластер преобразованных значений, то есть множество преобразованных значений, соответствующих почти вертикальным или вертикальным прямым линиям, лежащим по правую сторону от линии переплета. На этапе 1025 логическая схема обработки данных строит луч для второго кластера преобразованных значений, определенного на этапе 1020. На этапе 1030 логическая схема обработки данных находит вторую точку схода на основании луча, построенного на этапе 1025. После этапа 1030 показанный на Фиг. 10 способ завершается.
[00106] На Фиг. 11 представлена блок-схема примера реализации способа 1100 определения четырехугольника для левой страницы на изображении открытого книжного разворота многостраничного документа. Этот способ может осуществляться логической схемой обработки данных, которая может содержать аппаратные средства (электронные схемы, специализированную логическую схему и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 1100 может осуществляться модулем исправления искажений 190, показанным на Фиг. 1. При альтернативном подходе способ 1100 может полностью или частично осуществляться другим модулем или другой машиной. Следует отметить, что отдельные операции блок-схемы, показанной на Фиг. 11, могут выполняться одновременно или в иной последовательности, отличной от указанной на блок-схеме.
[00107] На этапе 1105 логическая схема обработки данных находит левую срединную точку на изображении. На этапе 1110 логическая схема обработки данных строит левую прямую линию, проходящую через левую срединную точку изображения и первую точку схода. На этапе 1115 логическая схема обработки данных находит левую верхнюю нормаль, соединяющую линию переплета и левую прямую линию. На этапе 1120 логическая схема обработки данных находит левую нижнюю нормаль, соединяющую линию переплета и левую прямую линию. После этапа 1120 показанный на Фиг. 11 способ завершается.
[00108] На Фиг. 12 представлена блок-схема примера реализации способа 1200 определения четырехугольника для правой страницы на изображении открытого книжного разворота многостраничного документа. Этот способ может осуществляться логической схемой обработки данных, которая может содержать аппаратные средства (электронные схемы, специализированную логическую схему и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 1200 может осуществляться модулем исправления искажений 190, показанным на Фиг. 1. При альтернативном подходе способ 1200 может полностью или частично осуществляться другим модулем или другой машиной. Следует отметить, что отдельные операции блок-схемы, показанной на Фиг. 12, могут выполняться одновременно или в иной последовательности, отличной от указанной на блок-схеме.
[00109] На этапе 1205 логическая схема обработки данных находит правую срединную точку на изображении. На этапе 1210 логическая схема обработки данных строит правую прямую линию, проходящую через правую срединную точку изображения и вторую точку схода. На этапе 1215 логическая схема обработки данных находит правую верхнюю нормаль, соединяющую линию переплета и правую прямую линию. На этапе 1220 логическая схема обработки данных находит правую нижнюю нормаль, соединяющую линию переплета и правую прямую линию. После этапа 1220 показанный на Фиг. 12 способ завершается.
[00110] На Фиг. 13 представлена блок-схема примера реализации способа 1300 построения исправленного изображении страницы. Этот способ может осуществляться логической схемой обработки данных, которая может содержать аппаратные средства (электронные схемы, специализированную логическую схему и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 1300 может осуществляться модулем исправления искажений 190, показанным на Фиг. 1. При альтернативном подходе способ 1300 может полностью или частично осуществляться другим модулем или другой машиной. Следует отметить, что отдельные операции блок-схемы, показанной на Фиг. 13, могут выполняться одновременно или в иной последовательности, отличной от указанной на блок-схеме.
[00111] На этапе 1305 логическая схема обработки данных определяет первое множество координат на изображении для углов четырехугольника. На этапе 1310 логическая схема обработки данных определяет первое множество коэффициентов пропорциональности на изображении для построения прямоугольника. На этапе 1315 логическая схема обработки данных определяет второе множество координат для исправленного изображения, применяя коэффициенты пропорциональности к первому множеству координат. На этапе 1320 логическая схема обработки данных переносит графические данные из четырехугольника в прямоугольник, выполняя преобразование координат. После этапа 1320 показанный на Фиг. 13 способ завершается.
[00112] На Фиг. 14 приведен пример вычислительной системы 1400, которая может выполнять любой описанный здесь способ или несколько таких способов. В одном примере вычислительная система 1400 может соответствовать вычислительному устройству 100, показанному на Фиг. 1. Эта вычислительная система может быть подключена (например, по сети) к другим вычислительным системам в локальной сети, сети интранет, сети экстранет или сети Интернет. Вычислительная система может играть роль сервера в сетевой среде клиент-сервер. Эта вычислительная система может представлять собой персональный компьютер (ПК), планшетный компьютер, телевизионную приставку (STB), карманный персональный компьютер (КПК), мобильный телефон, фотоаппарат, видеокамеру или любое устройство, способное выполнять набор команд (последовательно или иным способом), который определяется действиями этого устройства. Кроме того, несмотря на то, что показана система только с одним компьютером, термин «компьютер» также включает любое множество компьютеров, которые по отдельности или совместно выполняют набор команд (или несколько наборов команд) для выполнения любого из описанных здесь способа или нескольких таких способов.
[00113] Пример вычислительной системы 1400 включает устройство обработки 1402, основную память 1404 (например, постоянное запоминающее устройство (ПЗУ)), флэш- память, динамическое ОЗУ (DRAM), например, синхронное динамическое ОЗУ (SDRAM)), статическую память 1406 (например, флэш-память, статическое оперативное запоминающее устройство (ОЗУ)) и устройство хранения данных 1416, которые взаимодействуют друг с другом по шине 1408.
[00114] Устройство обработки данных 1402 представляет собой одно или несколько универсальных устройств обработки данных (примеры - микропроцессор, центральный процессор и т.п.). В частности, устройство обработки данных 1402 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор со сверхдлинным командным словом (VLIW) или процессор, в котором реализованы другие наборов команд, или процессоры, в которых реализована комбинация наборов команд. Устройство обработки данных 1402 также может представлять собой одно или несколько устройств обработки данных специального назначения (примеры - специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), процессор цифровых сигналов (DSP), сетевой процессор и т.п.). Устройство обработки данных 1402 настроено на совместную работу с модулем исправления искажений 1426, что обеспечивает выполнение описанных здесь операций и этапов (например, при реализации вариантов, представленных на Фиг. 6-13 и т.д.).
[00115] Вычислительная система 1400 может дополнительно включать устройство сопряжения с сетью 1422. Вычислительная система 1400 может также включать видеомонитор 1410 (например, жидкокристаллический дисплей (LCD) или электроннолучевую трубку (ЭЛТ)), устройство буквенно-цифрового ввода 1412 (например, клавиатуру), устройство управления курсором 1414 (например, мышь) и устройство для формирования сигналов 1420 (например, громкоговоритель). В одном иллюстративном примере видеомонитор 1410, устройство буквенно-цифрового ввода 1412 и устройство управления курсором 1414 могут быть объединены в один модуль или устройство (например, сенсорный жидкокристаллический дисплей).
[00116] Запоминающее устройство 1416 может включать машиночитаемый носитель 1424, в котором хранится модуль исправления искажений 1426 (например, в соответствии с вариантами реализации, показанными на Фиг. 6-13 и т.д.), отражающий одну или несколько методологий или функций, описанных в настоящем документе. Кроме того, модуль исправления искажений 1426 может находиться полностью или по меньшей мере частично в основной памяти 1404 и (или) в устройстве обработки 1402 во время выполнения способа вычислительной системой 1400, основной памятью 1404 и устройством обработки 1402, также представляющими собой машиночитаемую среду. Модуль исправления искажений 1426 может дополнительно передаваться или приниматься по сети через устройство сопряжения с сетью 1422.
[00117] В то время как машиночитаемый носитель данных 1424 показан в иллюстративных примерах как единый носитель, термин «машиночитаемый носитель данных» следует понимать как единый носитель либо множество таких носителей (например, централизованную или распределенную базу данных, и (или) соответствующие области быстродействующей буферной памяти (кэши) и серверы), в которых хранится один или несколько наборов команд. Термин «машиночитаемый носитель данных» также может включать любой носитель, который может хранить, кодировать или содержать набор команд для выполнения машиной и который обеспечивает выполнение машиной любой одной или нескольких методик настоящего изобретения. Поэтому термин «машиночитаемый носитель данных» относится, помимо прочего, к твердотельной памяти, а также к оптическим и магнитным носителям. [00118] Несмотря на то, что операции способов показаны и описаны в определенном порядке, порядок операций каждого способа можно изменить таким образом, чтобы некоторые операции могли выполняться в обратном порядке или так, чтобы некоторые операции могли выполняться, по крайней мере частично, одновременно с другими операциями. В некоторых вариантах реализации изобретения команды или подоперации различных операций могут выполняться с перерывами и (или) попеременно.
[00119] Следует понимать, что приведенное выше описание носит иллюстративный, а не ограничительный характер. Различные другие варианты осуществления станут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Область применения изобретения поэтому должна определяться с учетом прилагаемой формулы изобретения, а также всех областей применения эквивалентных способов, которые охватываются формулой изобретения.
[00120] В приведенном выше описании изложены многочисленные детали. Однако специалистам в данной области техники должно быть очевидно, что варианты изобретения могут быть реализованы на практике и без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схем, а не подробно, чтобы не усложнять описание настоящего изобретения. [00121] Некоторые части подробного описания выше представлены в виде алгоритмов и символического изображения операций с битами данных в компьютерной памяти. Такие описания и представления алгоритмов представляют собой средства, используемые специалистами в области обработки данных, чтобы наиболее эффективно передавать сущность своей работы другим специалистам в данной области. Приведенный здесь (и в целом) алгоритм сконструирован как непротиворечивая последовательность шагов, ведущих к нужному результату. Эти этапы требуют физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и манипулировать ими. Иногда удобно, прежде всего для обычного использования, описывать эти сигналы в виде битов, значений, элементов, символов, терминов, цифр и т.п.
[00122] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и что они являются лишь удобными обозначениями, применяемыми к этим величинам. Если специально не указано иное, как видно из последующего обсуждения, следует понимать, что во всем описании такие термины, как «получение», «определение», «создание», «преобразование», «выявление» и т.п., относятся к действиям компьютерной системы или подобного электронного вычислительного устройства и процессам в нем, причем такая система или устройство манипулирует данными и преобразует данные, представленные в виде физических (электронных) величин, в регистрах компьютерной системы и памяти в другие данные, также представленные в виде физических величин в памяти или регистрах компьютерной системе или в других подобных устройствах хранения, передачи или отображения информации.
[00123] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Такое устройство может быть специально сконструировано для требуемых целей или оно может содержать универсальный компьютер, который избирательно приводится в действие или перенастраивается с помощью программы, хранящейся в компьютере. Такая программа может храниться на машиночитаемом носителе данных, например (помимо прочего): диск любого типа, в том числе гибкий диск, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), программируемые ПЗУ (EPROM), электрически стираемые ППЗУ (EEPROM), магнитные или оптические карты или любой тип носителя, пригодный для хранения электронных команд, каждый из которых соединен с шиной вычислительной системы.
[00124] Алгоритмы и изображения, приведенные в этом документе, не обязательно связаны с конкретными компьютерами или другими устройствами. Различные системы общего назначения могут использоваться с программами в соответствии с изложенной здесь информацией, возможно также, что окажется целесообразным сконструировать более специализированные устройства для выполнения шагов способа. Структура разнообразных систем такого рода определяется в порядке, предусмотренном в описании ниже. Кроме того, изложение вариантов осуществления изобретения не предполагает ссылок на какие-либо конкретные языки программирования. Следует принимать во внимание, что для реализации принципов изобретения, излагаемого в настоящем документе, могут быть использованы различные языки программирования.
[00125] Варианты осуществления настоящего изобретения могут быть представлены в виде вычислительного программного продукта или программы, которая может содержать машиночитаемый носитель с сохраненными на нем инструкциями, которые могут использоваться для программирования вычислительной системы (или других электронных устройств) для выполнения процесса в соответствии с сущностью изобретения. Машиночитаемый носитель включает механизмы хранения или передачи информации в машиночитаемой форме (например, компьютером). Например, машиночитаемый (считываемый компьютером) носитель данных содержит машиночитаемый (например, компьютером) носитель данных (например, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), накопитель на магнитных дисках, накопитель на оптическом носителе, устройства флэш-памяти и т.д.) и т.п.
[00126] Слова «пример» или «примерный» используются здесь для обозначения использования в качестве примера, отдельного случая или иллюстрации. Любой вариант реализации или конструкция, описанные в настоящем документе как «пример», не должны обязательно рассматриваться как предпочтительные или преимущественные по сравнению с другими вариантами реализации или конструкциями. Слово «пример» лишь предполагает, что идея изобретения представляется конкретным образом. В этой заявке термин «или» предназначен для обозначения включающего «или», а не исключающего «или». Если не указано иное или не очевидно из контекста, то «X включает А или В» используется для обозначения любой из естественных включающих перестановок. То есть, если X содержит А; X включает в себя В; или X включает и А, и В, то высказывание «X включает в себя А или В» является истинным в любом из указанных выше случаев. Кроме того, артикли «а» и «an», использованные в англоязычной версии этой заявки и прилагаемой формуле изобретения, должны, как правило, означать «один или более» или «один или несколько», если иное не указано или из контекста не следует, что это относится к форме единственного числа. Использование терминов «вариант осуществления» или «один вариант осуществления» или «реализация» или «одна реализация» не означает одинаковый вариант реализации, если такое описание не приложено. В описании термины «первый», «второй», «третий», «четвертый» и т.д. используются как метки для обозначения различных элементов и не обязательно имеют смысл порядка в соответствии с их числовым обозначением.