[go: up one dir, main page]

RU2628172C1 - Method and system for determining expanded contours on digital images - Google Patents

Method and system for determining expanded contours on digital images Download PDF

Info

Publication number
RU2628172C1
RU2628172C1 RU2016124833A RU2016124833A RU2628172C1 RU 2628172 C1 RU2628172 C1 RU 2628172C1 RU 2016124833 A RU2016124833 A RU 2016124833A RU 2016124833 A RU2016124833 A RU 2016124833A RU 2628172 C1 RU2628172 C1 RU 2628172C1
Authority
RU
Russia
Prior art keywords
contour
gradient
pixel
digital image
map
Prior art date
Application number
RU2016124833A
Other languages
Russian (ru)
Inventor
Иван Германович Загайнов
Василий Васильевич Логинов
Степан Юрьевич Лобастов
Original Assignee
Общество с ограниченной ответственностью "Аби Девелопмент"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Аби Девелопмент" filed Critical Общество с ограниченной ответственностью "Аби Девелопмент"
Priority to RU2016124833A priority Critical patent/RU2628172C1/en
Priority to US15/195,759 priority patent/US10503997B2/en
Priority to US15/195,726 priority patent/US10387744B2/en
Application granted granted Critical
Publication of RU2628172C1 publication Critical patent/RU2628172C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/181Segmentation; Edge detection involving edge growing; involving edge linking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • G06T7/41Analysis of texture based on statistical description of texture
    • G06T7/44Analysis of texture based on statistical description of texture using image operators, e.g. filters, edge density metrics or local histograms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)

Abstract

FIELD: physics.
SUBSTANCE: image processing subsystem includes: a separate hardware layer or hardware layer used in conjunction with devices, tools or systems, including one or more processors and one or more memory modules; and instructions stored in one or more physical storage devices that, when executed by one or more of the processors, control the image processing subsystem to: acquire a digital image, and apply multiple parameter values controlling contour determination by determining the seed pixels within the digital image coinciding with brightness boundaries, and for each of the plurality of seed pixels, an initial contour construction that includes a seed pixel, an iterative extension of both ends of the initial contour along the brightness border to create the detected contour and to preserve the detected contour in a data structure in memory.
EFFECT: ensuring the definition of curvilinear and rectilinear contours on digital images.
23 cl, 36 dwg

Description

ОБЛАСТЬ ИЗОБРЕТЕНИЯFIELD OF THE INVENTION

Настоящий документ относится к обработке изображений и, в частности, способам и системам для определения контуров на цифровых изображениях, включая криволинейные контуры, которые, в частности, применяются для определения контуров на цифровых изображениях при подготовке к различным типам последующей автоматизированной обработки цифрового изображения, включая оптическое распознавание символов.This document relates to image processing and, in particular, to methods and systems for determining the contours of digital images, including curved contours, which, in particular, are used to determine the contours of digital images in preparation for various types of subsequent automated processing of digital images, including optical character recognition.

УРОВЕНЬ ТЕХНИКИBACKGROUND

Печатные документы на естественном языке до сих пор являются широко распространенным средством коммуникации между людьми, в организациях и используются для донесения информации до ее потребителей. С появлением повсеместно используемых мощных вычислительных ресурсов, включая персональные вычислительные ресурсы, реализованные в смартфонах, планшетах, ноутбуках и персональных компьютерах, а также с распространением более мощных вычислительных ресурсов облачных вычислительных сервисов, центров обработки данных и корпоративных серверов организаций и предприятий, шифрование и обмен информацией на естественном языке все более часто выполняются в виде электронных документов. Печатные документы по своей сути представляют собой изображения, в то время как электронные документы содержат последовательности цифровых кодов символов и знаков на естественном языке. Поскольку электронные документы имеют перед печатными документами преимущества по стоимости, возможностям передачи и рассылки, простоте редактирования и изменения, а также по надежности хранения, за последние 50 лет развилась целая отрасль, поддерживающая способы и системы преобразования печатных документов в электронные. Компьютерные способы и системы оптического распознавания символов совместно с электронными сканерами обеспечивают надежное и экономичное получение изображений печатных документов и компьютерную обработку получаемых цифровых изображений, содержащих текст, для создания электронных документов, соответствующих печатным. Дизайнеры, разработчики, производители и поставщики вычислительных способов и систем оптического распознавания символов постоянно ищут новые способы, системы и подсистемы, которые эффективно реализуют множество различных типов автоматизированных процессов, используемых при подготовке цифровых изображений к автоматизированному оптическому распознаванию символов.Printed documents in natural language are still a widespread means of communication between people in organizations and are used to convey information to its consumers. With the advent of ubiquitous powerful computing resources, including personal computing resources implemented in smartphones, tablets, laptops and personal computers, as well as with the spread of more powerful computing resources of cloud computing services, data centers and corporate servers of organizations and enterprises, encryption and exchange of information in natural language are increasingly performed in the form of electronic documents. Printed documents are inherently images, while electronic documents contain sequences of digital codes of characters and signs in a natural language. Since electronic documents have advantages over printed documents in terms of cost, transfer and distribution capabilities, ease of editing and modification, as well as storage reliability, an entire industry has developed over the past 50 years that supports methods and systems for converting printed documents into electronic ones. Computer methods and optical character recognition systems in conjunction with electronic scanners provide reliable and economical acquisition of images of printed documents and computer processing of digital images containing text to create electronic documents corresponding to printed ones. Designers, developers, manufacturers and suppliers of computing methods and optical character recognition systems are constantly looking for new methods, systems and subsystems that effectively implement many different types of automated processes used in the preparation of digital images for automated optical character recognition.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Настоящий документ относится к автоматизированным способам и системам, контролируемым с помощью различных ограничений и параметров, которые позволяют выявлять на цифровых изображениях контуры, в том числе криволинейные контуры. Некоторые из этих параметров ограничивают определение контуров теми контурами, в которых локальная кривизна контура не превышает пороговую локальную кривизну, и теми контурами, которые перпендикулярны к градиентам яркости, по крайней мере, пороговых значений модулей. Описанные в текущем документе способы и системы определяют на цифровом изображении затравочные точки, дополняют отрезки линий, исходящие от затравочных точек и выступающие в качестве начального контура, совпадающего с затравочной точкой, после чего итеративно дополняют начальный контур, добавляя отрезки линии к одному или обоим концам контура. Обнаруженные контуры выборочно объединяются и фильтруются, чтобы определить набор актуальных контуров для использования в последующих задачах обработки изображений.This document relates to automated methods and systems controlled by various constraints and parameters, which allow the detection of contours in digital images, including curved contours. Some of these parameters limit the definition of contours to those contours in which the local curvature of the contour does not exceed the threshold local curvature, and to those contours that are perpendicular to the brightness gradients of at least threshold module values. The methods and systems described in the current document determine the seed points in a digital image, supplement the line segments emanating from the seed points and act as an initial contour coinciding with the seed point, and then iteratively supplement the initial contour by adding line segments to one or both ends of the contour . Detected contours are selectively combined and filtered to determine the set of relevant contours for use in subsequent image processing tasks.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

На Фиг. 1 приведена схема архитектуры вычислительной системы верхнего уровня, подобной той вычислительной системе, на которой реализованы раскрываемые в текущем документе способы определения контуров.In FIG. 1 is a diagram of the architecture of a top-level computing system similar to that computing system on which the contour detection methods disclosed in the current document are implemented.

На Фиг. 2A-D показаны два типа портативных устройств полученияIn FIG. 2A-D show two types of portable receiving devices

изображений.images.

На Фиг. 3 показано типовое изображение с цифровым кодированием.In FIG. 3 shows a typical digitally encoded image.

На Фиг. 4 показан один из вариантов цветовой модели RGB.In FIG. 4 shows one of the options for the RGB color model.

На Фиг. 5 показана другая цветовая модель «Оттенок-насыщенность-светлота» («HSL»).In FIG. 5 shows another hue-saturation-lightness (HSL) color model.

На Фиг. 6 показано формирование полутонового или бинарного изображения из цветного изображения.In FIG. 6 shows the formation of a grayscale or binary image from a color image.

На Фиг. 7 показано дискретное вычисление градиента яркости.In FIG. 7 shows a discrete calculation of the brightness gradient.

На Фиг. 8 показан градиент, рассчитанный для точки на непрерывнойIn FIG. 8 shows the gradient calculated for a point on a continuous

поверхности.surface.

На Фиг. 9 показан ряд примеров градиента яркости.In FIG. 9 shows a number of examples of the brightness gradient.

На Фиг. 10 показано применение ядра к изображению.In FIG. 10 shows the application of the kernel to an image.

На Фиг. 11 показана свертка изображения.In FIG. 11 shows a convolution of the image.

На Фиг. 12 показан некоторый пример ядра и методики обработки изображений на основе ядра.In FIG. 12 shows some example of a kernel and kernel-based image processing techniques.

На Фиг. 13-14 показан общий подход к определению контура, используемый в раскрываемых в данном документе способах и системах.In FIG. 13-14 show a general approach to determining the contour used in the methods and systems disclosed herein.

На Фиг. 15-26 показан частный вариант реализации раскрываемых в настоящем документе способов и систем.In FIG. 15-26 show a particular embodiment of the methods and systems disclosed herein.

На Фиг. 27A-G показан с использованием блок-схем и представлений структур данных один из вариантов реализации раскрываемых в данном документе способов определения контуров на цифровых изображениях, используемых во множестве различных устройств, приборов и вычислительных систем в качестве начального шага различных типов процессов автоматической обработки цифровых изображений.In FIG. 27A-G shows, using flowcharts and representations of data structures, one embodiment of the disclosed methods for determining the contours of digital images used in many different devices, instruments, and computing systems as an initial step in various types of digital image automatic processing processes.

ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИDESCRIPTION OF PREFERRED EMBODIMENTS

Настоящий документ относится к способам и системам определения контуров, включая криволинейные контуры, на цифровых изображениях для использования в последующих задачах обработки цифровых изображений, включая оптическое распознавание символов. В первом подразделе ниже приводится краткое введение в архитектуру вычислительной системы, цифровые изображения и способы обработки цифровых изображений со ссылками на Фиг. 1-12. В следующем подразделе приводится подробное описание раскрываемых в настоящем документе способов и систем со ссылками на Фиг. 13-26. В итоговом подразделе приводится одна из возможных реализаций способов и систем настоящего изобретения, которая иллюстрируется блок-схемами со ссылками на Фиг. 27A-G.This document relates to methods and systems for determining contours, including curved contours, in digital images for use in subsequent digital image processing tasks, including optical character recognition. The first subsection below provides a brief introduction to the architecture of a computing system, digital images, and digital image processing methods with reference to FIG. 1-12. The following subsection provides a detailed description of the methods and systems disclosed herein with reference to FIG. 13-26. The final subsection provides one possible implementation of the methods and systems of the present invention, which is illustrated in block diagrams with reference to FIG. 27A-G.

ОбзорOverview

На Фиг. 1 приведена схема архитектуры вычислительной системы верхнего уровня, подобной той вычислительной системе, на которой реализованы раскрываемые в текущем документе способы определения контуров. Мобильные устройства получения изображений, включая смартфоны и цифровые камеры, могут быть представлены схематически аналогичным образом и также могут содержать процессоры, память и внутренние шины. Знакомым с современной наукой и технологиями будет понятно, что программы или подпрограммы управления, содержащие машинные команды, которые хранятся в физической памяти устройства под управлением процессора, представляют компонент управления для устройства и являются настолько же физическими, материальными и важными, как и любой другой компонент электромеханического устройства, включая устройства получения изображений. Компьютерная система содержит один или более центральных процессоров (ЦП) 102-105, один или более электронных модулей памяти 108, взаимосвязанных с ЦП через шину подсистемы ЦП/памяти 110 или несколько шин, первый мост 112, который соединяет шину подсистемы ЦП/памяти 110 с дополнительными шинами 114 и 116, либо другие виды средств высокоскоростного соединения, в том числе множественные высокоскоростные последовательные соединения. Эти шины или последовательные соединения, в свою очередь, соединяют ЦП и память со специализированными процессорами, такими как графический процессор 118, а также с одним или более дополнительными мостами 120, взаимосвязанными с высокоскоростными последовательными соединениями или несколькими контроллерами 122-127, например с контроллером 127, который предоставляет доступ к различным типам запоминающих устройств большой емкости 128, электронным дисплеям, устройствам ввода и другим подобным компонентам, подкомпонентам и вычислительным ресурсам.In FIG. 1 is a diagram of the architecture of a top-level computing system similar to that computing system on which the contour detection methods disclosed in the current document are implemented. Mobile imaging devices, including smartphones and digital cameras, can be represented schematically in the same way and can also contain processors, memory and internal buses. Those familiar with modern science and technology will understand that control programs or routines containing machine instructions stored in the physical memory of the device under the control of the processor represent a control component for the device and are as physical, material and important as any other electromechanical component devices, including imaging devices. A computer system comprises one or more central processing units (CPUs) 102-105, one or more electronic memory modules 108 interconnected with a CPU via a CPU / memory subsystem bus 110 or several buses, a first bridge 112 that connects a CPU / memory subsystem bus 110 s additional buses 114 and 116, or other types of means of high-speed connections, including multiple high-speed serial connections. These buses or serial connections, in turn, connect the CPU and memory to specialized processors, such as the graphics processor 118, as well as to one or more additional bridges 120, interconnected with high-speed serial connections or several controllers 122-127, for example, with the controller 127 , which provides access to various types of mass storage devices 128, electronic displays, input devices, and other similar components, subcomponents, and computing resources m.

На Фиг. 2A-D показаны два типа портативных устройств получения изображений. На Фиг. 2А-С показана цифровая камера 202. Цифровая камера содержит объектив 204, кнопку спуска затвора 205, нажатие которой пользователем приводит к получению цифрового изображения, которое соответствует отраженному свету, поступающему в объектив 204 цифровой камеры. С задней стороны цифровой камеры, которая видна пользователю, когда он держит камеру при съемке цифровых изображений, находится видоискатель 206 и жидкокристаллический дисплей видоискателя 208. С помощью видоискателя 206 пользователь может напрямую просматривать создаваемое объективом 204 камеры изображение, а с помощью жидкокристаллического дисплея 208 - просматривать электронное отображение создаваемого в настоящей момент объективом изображения. Обычно пользователь камеры настраивает фокус камеры с помощью кольца фокусировки 210, смотря при этом через видоискатель 206 или рассматривая изображение на жидкокристаллическом дисплее 208 для выбора требуемого изображения перед нажатием на кнопку 105 спуска затвора с целью цифрового получения изображения и сохранения изображения в электронной памяти цифровой камеры.In FIG. 2A-D show two types of portable image acquisition devices. In FIG. 2A-C, a digital camera 202 is shown. A digital camera includes a lens 204, a shutter button 205, which is pressed by the user to produce a digital image that corresponds to the reflected light entering the digital camera lens 204. On the back of the digital camera, which is visible to the user when he is holding the camera when shooting digital images, is the viewfinder 206 and the liquid crystal display of the viewfinder 208. Using the viewfinder 206, the user can directly view the image created by the camera lens 204, and use the liquid crystal display 208 to view electronic display of the image currently being created by the lens. Typically, the camera user adjusts the focus of the camera using the focus ring 210, while looking through the viewfinder 206 or viewing the image on the liquid crystal display 208 to select the desired image before pressing the shutter button 105 to digitally acquire the image and store the image in the electronic memory of the digital camera.

На Фиг. 2D показан типовой смартфон с передней стороны 220 и задней стороны 222. На задней стороне 222 имеется объектив 224 цифровой камеры и датчик приближения и (или) цифровой экспонометр 226. На передней стороне смартфона 220 под управлением приложения может отображаться получаемое изображение 226, аналогично работе жидкокристаллического дисплея 208 видоискателя цифровой камеры, а также сенсорная кнопка 228 спуска затвора, при прикосновении к которой происходит получение цифрового изображения и сохранение его в памяти смартфона.In FIG. A typical smartphone is shown in 2D on the front side 220 and the rear side 222. On the back side 222 there is a digital camera lens 224 and a proximity sensor and / or digital exposure meter 226. On the front side of the smartphone 220, the resulting image 226 can be displayed under the control of the application, similar to the operation of a liquid crystal a digital camera viewfinder display 208, as well as a touch shutter button 228, when touched, a digital image is received and stored in the smartphone's memory.

На Фиг. 3 показано типовое изображение с цифровым кодированием. Кодированное изображение включает двумерный массив пикселей 302. На Фиг. 3 каждый небольшой квадрат, например, квадрат 304, является пикселем, который обычно определяется как наименьшая часть детализации изображения, для которой предусматривается цифровая кодировка. Каждый пиксель представляет собой место, обычно представленное парой цифровых значений, соответствующих значениям на осях прямоугольной систем координат х и у, 306 и 308 соответственно. Таким образом, например, пиксель 304 имеет координаты х, у (39,0), а пиксель 312 - координаты (0,0). В цифровой кодировке пиксель представлен числовыми значениями, указывающими на то, как область изображения, соответствующая пикселю, представляется при печати, отображается на экране компьютера или ином дисплее. Обычно для черно-белых изображений для представления каждого пикселя используется единичное значение в интервале от 0 до 255 с числовым значением, соответствующем уровню серого, на котором передается пиксель. В общепринятом понимании значение «0» соответствует черному цвету, а значение «255» - белому. Для цветных изображений может применяться множество различных числовых значений, указывающих на цвет. В одной из стандартных цветовых моделей, показанной на Фиг. 3, каждый пиксель связан с тремя значениями или координатами (r, g, b), которые указывают на яркость красного, зеленого и синего компонента цвета, отображаемого в соответствующей пикселю области.In FIG. 3 shows a typical digitally encoded image. The encoded image includes a two-dimensional array of pixels 302. In FIG. 3, each small square, for example, square 304, is a pixel, which is usually defined as the smallest part of the image detail for which digital encoding is provided. Each pixel represents a place, usually represented by a pair of digital values corresponding to the values on the axes of the rectangular coordinate systems x and y, 306 and 308, respectively. Thus, for example, pixel 304 has x, y coordinates (39.0), and pixel 312 has coordinates (0,0). In digital encoding, a pixel is represented by numerical values that indicate how the image area corresponding to the pixel is displayed during printing, displayed on a computer screen or other display. Typically, for black-and-white images, a single value in the range from 0 to 255 is used to represent each pixel with a numerical value corresponding to the gray level at which the pixel is transmitted. In the common sense, the value “0” corresponds to black, and the value “255” corresponds to white. For color images, many different numerical values can be used to indicate color. In one of the standard color models shown in FIG. 3, each pixel is associated with three values or coordinates (r, g, b) that indicate the brightness of the red, green, and blue component of the color displayed in the corresponding pixel region.

На Фиг. 4 показан один из вариантов цветовой модели RGB. Тремя координатами основных цветов (r, g, b) представлен весь спектр цветов, как было показано выше со ссылкой на Фиг. 3. Цветовая модель может считаться соответствующей точкам в пределах единичного куба 402, в котором трехмерное цветовое пространство определяется тремя осями координат: (1) r 404; (2) g 406; и (3) b 408. Таким образом, координаты отдельного цвета находятся в интервале от 0 до 1 по каждой из трех цветовых осей. Например, чистый синий цвет максимально возможной яркости соответствует точке 410 по оси b с координатами (0,0,1). Белый цвет соответствует точке 412 с координатами (1,1,1,), а черный цвет - точке 414, началу системы координат с координатами (0,0,0).In FIG. 4 shows one of the options for the RGB color model. The three coordinates of the primary colors (r, g, b) represent the entire spectrum of colors, as shown above with reference to FIG. 3. The color model can be considered corresponding to the points within the unit cube 402, in which the three-dimensional color space is determined by three coordinate axes: (1) r 404; (2) g 406; and (3) b 408. Thus, the coordinates of a single color are in the range from 0 to 1 along each of the three color axes. For example, the pure blue color of the maximum possible brightness corresponds to point 410 along the b axis with coordinates (0,0,1). White color corresponds to point 412 with coordinates (1,1,1,), and black color corresponds to point 414, the beginning of the coordinate system with coordinates (0,0,0).

На Фиг. 5 показана другая цветовая модель «Оттенок-насыщенность-светлота» («HSL»). В этой цветовой модели цвета содержатся в трехмерной бипирамидальной призме 500 с шестигранным сечением. Оттенок (h) связан с доминантной длиной волны излучения света, воспринимаемого наблюдателем. Значение оттенка находится в интервале от 0° до 360°, начиная с красного цвета 502 в точке 0°, проходя через зеленый 504 в точке 120°, синий 506 в точке 240°, и заканчивая красным 502 в точке 660°. Насыщенность (s), находящаяся в интервале от 0 до 1, обратно связана с количеством белого и черного цвета, смешанного при определенной длине волны или оттенке. Например, чистый красный цвет 502 является полностью насыщенным при насыщенности s=1,0, в то же время розовый цвет имеет насыщенность менее 1,0, но более 0,0, белый цвет 508 является полностью ненасыщенным с s=0,0, а черный цвет 510 также является полностью ненасыщенным с s=0,0. Полностью насыщенные цвета находятся на периметре среднего шестигранника, содержащего точки 502, 504 и 506. Шкала оттенков серого проходит от черного 510 до белого 508 по центральной вертикальной оси 512, представляющей полностью ненасыщенные цвета без оттенка, но с различными пропорциями черного и белого. Например, черный 510 содержит 100% черного и не содержит белого, белый 508 содержит 100% белого и не содержит черного, а исходная точка 513 содержит 50% черного и 50% белого. Светлота (

Figure 00000001
), представленная центральной вертикальной осью 512, указывает на уровень освещенности в интервале от 0 для черного 510, при
Figure 00000001
=0,0, до 1 для белого 508, при
Figure 00000001
=1,0. Для произвольного цвета, представленного на Фиг. 5 точкой 514, оттенок определяется как угол θ 516, между первым вектором из исходной точки 513 к точке 502 и вторым вектором из исходной точки 513 к точке 520, в которой вертикальная линия 522, проходящая через точку 514, пересекает плоскость 524, включающую исходную точку 513 и точки 502, 504 и 506. Насыщенность представлена отношением расстояния представленной точки 514 от вертикальной оси 512 d' к длине горизонтальной линии, проходящей через точку 520 от исходной точки 513 к поверхности бипирамидальной призмы 500, d. Светлота представлена вертикальным расстоянием от представленной точки 514 до вертикального уровня точки 510, представляющей черный цвет. Координаты конкретного цвета в цветовой модели HSL (h, s,
Figure 00000001
) могут быть получены на основе координат цвета в цветовой модели RGB (r, g, b) следующим образом:In FIG. 5 shows another hue-saturation-lightness (HSL) color model. In this color model, colors are contained in a three-dimensional bipyramidal prism 500 with a hexagonal cross section. Hue (h) is associated with the dominant wavelength of the light emitted by the observer. The hue value is in the range from 0 ° to 360 °, starting from red 502 at 0 °, passing through green 504 at 120 °, blue 506 at 240 °, and ending in red 502 at 660 °. Saturation (s) ranging from 0 to 1 is inversely related to the amount of white and black mixed at a specific wavelength or hue. For example, the pure red color 502 is fully saturated at a saturation of s = 1.0, while the pink color has a saturation of less than 1.0, but more than 0.0, the white color 508 is completely unsaturated with s = 0.0, and black 510 is also completely unsaturated with s = 0,0. Fully saturated colors are located on the perimeter of the middle hexagon containing points 502, 504, and 506. The grayscale scale runs from black 510 to white 508 along the central vertical axis 512, which represents completely unsaturated colors without a hue, but with different proportions of black and white. For example, black 510 contains 100% black and does not contain white, white 508 contains 100% white and does not contain black, and the starting point 513 contains 50% black and 50% white. Lightness (
Figure 00000001
), represented by the central vertical axis 512, indicates the level of illumination in the range from 0 for black 510, at
Figure 00000001
= 0.0, up to 1 for white 508, with
Figure 00000001
= 1.0. For the arbitrary color shown in FIG. 5 by point 514, the hue is defined as the angle θ 516, between the first vector from the starting point 513 to the point 502 and the second vector from the starting point 513 to the point 520, at which the vertical line 522 passing through the point 514 intersects the plane 524 including the starting point 513 and points 502, 504 and 506. Saturation is represented by the ratio of the distance of the represented point 514 from the vertical axis 512 d ′ to the length of the horizontal line passing through point 520 from the starting point 513 to the surface of the bipyramidal prism 500, d. Brightness is represented by the vertical distance from the represented point 514 to the vertical level of the point 510, representing black color. Specific color coordinates in the HSL color model (h, s,
Figure 00000001
) can be obtained based on the color coordinates in the RGB color model (r, g, b) as follows:

Figure 00000002
Figure 00000002

где значения r, g и b соответствуют яркости красного, зеленого и синего первичных цветов, нормализованных на интервале [0, 1]; Cmax представляет нормализованное значение яркости, равное максимальному значению из r, g и b; Cmin представляет собой нормализованное значение яркости, равное минимальному значению из r, g и b; а Δ определяется как Cmax - Cmin.where the values of r, g and b correspond to the brightness of red, green and blue primary colors, normalized to the interval [0, 1]; C max represents the normalized brightness value equal to the maximum value of r, g and b; C min is the normalized brightness value equal to the minimum value of r, g and b; and Δ is defined as C max - C min .

На Фиг. 6 показано формирование полутонового или бинарного изображения из цветного изображения. В цветном изображении каждый пиксель обычно связан с тремя значениями: а, b и с 602. Разные цветовые модели используют для представления конкретного цвета разные значения а, b и с. Полутоновое изображение содержит для каждого пикселя только одно значение яркости 604. Бинарное изображение является частным случаем полутонового изображения, которое имеет только два значения яркости «0» и «1». Обычно серые изображения могут иметь 256 или 65 536 разных значений яркости для каждого пикселя, представленного байтом или 16-битным словом соответственно. Таким образом, чтобы преобразовать цветное изображение в полутоновое, три значения а, b и с цветных пикселей необходимо преобразовать в одно значение яркости для полутонового или бинарного изображения. На первом шаге три значения цвета а, b и с, преобразуются в значение яркости L, обычно в интервале [0,0, 1,0] 606. Для определенных цветовых моделей к каждому из цветовых значений 608 применяется функция, и результаты суммируются 610, давая значение яркости. В других цветовых моделях каждое цветовое значение умножается на коэффициент, и полученные результаты суммируются 612, давая значение яркости. В некоторых цветовых системах одно из трех цветовых значений является, фактически, значением 614 яркости. Наконец, в общем случае к трем цветовым значениям 616 применяется функция, которая дает значение яркости. Затем значение яркости квантуется 618, позволяя получить значение яркости оттенков серого в требуемом интервале, обычно [0, 255] для полутоновых изображений и (0,1) для бинарных изображений.In FIG. 6 shows the formation of a grayscale or binary image from a color image. In a color image, each pixel is usually associated with three values: a, b, and 602. Different color models use different values of a, b, and c to represent a particular color. A grayscale image contains for each pixel only one brightness value 604. A binary image is a special case of a grayscale image that has only two brightness values “0” and “1”. Typically, gray images can have 256 or 65,536 different brightness values for each pixel represented by a byte or 16-bit word, respectively. Thus, in order to convert a color image to a grayscale, the three values a, b and c of color pixels must be converted to a single brightness value for a grayscale or binary image. In the first step, the three color values a, b, and c are converted to the brightness value L, usually in the range [0,0, 1,0] 606. For certain color models, a function is applied to each of the color values 608, and the results are summed 610, giving a brightness value. In other color models, each color value is multiplied by a coefficient, and the results are added up 612, giving the brightness value. In some color systems, one of the three color values is, in fact, a brightness value of 614. Finally, in the general case, a function that gives a brightness value is applied to the three color values 616. Then, the brightness value is quantized 618, allowing you to get the brightness value of the shades of gray in the desired interval, usually [0, 255] for grayscale images and (0,1) for binary images.

На Фиг. 7 показано дискретное вычисление градиента яркости. На Фиг. 7 показан небольшой квадратный участок 702 цифрового изображения. Каждая клетка, например, клетка 704, представляет пиксель, а числовое значение в клетке, например, значение «106» в клетке 704, представляет яркость серого цвета. Допустим, пиксель 706 имеет значение яркости «203». Этот пиксель и четыре смежных с ним пикселя показаны на крестообразной схеме 708 справа от участка 702 цифрового изображения. Рассматривая левый 710 и правый 712 соседние пиксели, изменение значения яркости в направлении х, Δх можно дискретно вычислить как:In FIG. 7 shows a discrete calculation of the brightness gradient. In FIG. 7 shows a small square portion 702 of a digital image. Each cell, for example, cell 704, represents a pixel, and a numerical value in the cell, for example, the value "106" in cell 704, represents a gray brightness. Suppose a pixel 706 has a brightness value of “203”. This pixel and four adjacent pixels are shown in a cruciform pattern 708 to the right of the digital image portion 702. Considering the neighboring pixels to the left 710 and right 712, the change in the brightness value in the x, Δx direction can be discretely calculated as:

Figure 00000003
Figure 00000003

Рассматривая нижний 714 и верхний 716 соседние пиксели, изменение значения яркости в вертикальном направлении Δу можно вычислить как:Considering the lower 714 and upper 716 adjacent pixels, the change in the brightness value in the vertical direction Δy can be calculated as:

Figure 00000004
Figure 00000004

Вычисленное значение Δх является оценкой частного дифференциала непрерывной функции яркости относительно оси х в центральном пикселе 706:The calculated Δx value is an estimate of the partial differential of the continuous brightness function with respect to the x axis in the central pixel 706:

Figure 00000005
Figure 00000005

Частный дифференциал функции F относительно координаты у в центральном пикселе 706 рассчитывается по Δу:The partial differential of the function F relative to the coordinate у in the central pixel 706 is calculated by Δу:

Figure 00000006
Figure 00000006

Градиент яркости в пикселе 706 может быть рассчитан следующим образом:The brightness gradient in the pixel 706 can be calculated as follows:

Figure 00000007
Figure 00000007

где i и j представляют собой единичные векторы в направлениях х и у. Модуль вектора градиента и угол вектора градиента далее рассчитываются следующим образом:where i and j are unit vectors in the x and y directions. The modulus of the gradient vector and the angle of the gradient vector are further calculated as follows:

Figure 00000008
Figure 00000008

Функция atan2(y, х) определена как: (1) arctan(y/x), где х>0; (2) arctan(y/x)+π, где х<0 и у≥0; (3) arctan(y/x) - π, где х<0 и у<0; (4) π/2, где х=0 и у>0; (5) -π/2, где х=0 и у<0; и (6) не определено, где х=0 и у=0. Направление вектора 720 градиента яркости и угол θ 722 показаны наложенными на участок 702 цифрового изображения на Фиг. 7. Следует учесть, что точки вектора градиента расположены в направлении резкого увеличения яркости от пикселя 706. Модуль вектора градиента указывает на ожидаемое увеличение яркости на единицу приращения в направлении градиента. Конечно же, поскольку градиент оценивается исключительно с помощью дискретных операций, в вычислении, показанном на Фиг. 7, направление и модуль градиента представлены исключительно оценками.The function atan2 (y, x) is defined as: (1) arctan (y / x), where x> 0; (2) arctan (y / x) + π, where x <0 and y≥0; (3) arctan (y / x) - π, where x <0 and y <0; (4) π / 2, where x = 0 and y> 0; (5) -π / 2, where x = 0 and y <0; and (6) it is not defined where x = 0 and y = 0. The direction of the brightness gradient vector 720 and the angle θ 722 are shown superimposed on the digital image portion 702 of FIG. 7. It should be noted that the points of the gradient vector are located in the direction of a sharp increase in brightness from the pixel 706. The module of the gradient vector indicates the expected increase in brightness per unit increment in the gradient direction. Of course, since the gradient is estimated solely by discrete operations, in the calculation shown in FIG. 7, the direction and modulus of the gradient are presented solely by estimates.

На Фиг. 8 показан градиент, рассчитанный для точки на непрерывной поверхности. На Фиг. 8 представлена непрерывная поверхность z=F(x,y). Непрерывная поверхность 802 строится относительно трехмерной декартовой системы координат 804 и имеет похожую на шляпу форму. Для отображения непрерывного множества точек с постоянным значением z на поверхности могут быть построены контурные линии, например, контурная линия 806. В конкретной точке 808 на контуре, построенном на поверхности, вектор градиента 810, рассчитанный для точки, расположен перпендикулярно к контурной линии и точкам в направлении максимально резкого наклона вверх на поверхности от точки 808.In FIG. Figure 8 shows the gradient calculated for a point on a continuous surface. In FIG. Figure 8 shows the continuous surface z = F (x, y). The continuous surface 802 is constructed relative to the three-dimensional Cartesian coordinate system 804 and has a hat-like shape. To display a continuous set of points with a constant value of z, contour lines can be constructed on the surface, for example, contour line 806. At a specific point 808 on the contour built on the surface, a gradient vector 810 calculated for the point is perpendicular to the contour line and points at the direction of the sharpest slope upward on the surface from point 808.

Обычно вектор градиента яркости направлен перпендикулярно границе яркости, при этом чем больше модуль градиента, тем острее граница, т.е. тем больше разность в яркости пикселей с двух сторон границы. На Фиг. 9 показан ряд примеров градиента яркости. Каждый пример, например, пример 902, содержит центральный пиксель, для которого рассчитывается градиент, и четыре прилегающих пикселя, которые используются для расчета Δх и Δу. Наиболее резкие границы яркости показаны в первой колонке 904. В этих случаях модуль градиента составляет не менее 127,5, а в третьем случае 906-180,3. Относительно небольшая разность на границе, показанная в примере 908, создает градиент с модулем всего 3,9. Во всех случаях вектор градиента расположен перпендикулярно очевидному направлению границы яркости, проходящего через центральный пиксель.Usually, the luminance gradient vector is directed perpendicular to the luminance boundary, and the larger the gradient modulus, the sharper the boundary, i.e. the greater the difference in brightness of pixels on both sides of the border. In FIG. 9 shows a number of examples of the brightness gradient. Each example, for example, example 902, contains a central pixel for which the gradient is calculated, and four adjacent pixels, which are used to calculate Δx and Δy. The sharpest boundaries of brightness are shown in the first column 904. In these cases, the gradient modulus is at least 127.5, and in the third case 906-180.3. The relatively small difference at the boundary shown in Example 908 creates a gradient with a modulus of only 3.9. In all cases, the gradient vector is perpendicular to the obvious direction of the brightness border passing through the central pixel.

Многие методы обработки изображений включают применение ядер к сетке пикселей, составляющей изображение. На Фиг. 10 показано применение ядра к изображению. На Фиг. 10 небольшая часть изображения 1002 представлена в виде прямоугольной сетки пикселей. Небольшое ядро 3×3 k 1004 показано ниже изображения I 1002. Ядро применяется к каждому пикселю изображения. В случае ядра 3×3, такого как ядро k 1004, показанное на Фиг. 10, для пикселей на границе можно использовать модифицированное ядро, также изображение можно раздвинуть, скопировав значения яркости для пикселей границы в описывающий прямоугольник из пикселей, чтобы иметь возможность применять ядро к каждому пикселю исходного изображения. Чтобы применить ядро к пикселю изображения, ядро 1004 численно накладывается на окрестности пикселя, к которому применяется 1006 ядро с такими же размерами в пикселях, как у ядра. Применение ядра на окрестностях пикселя, к которому применяется ядро, позволяет получить новое значение для пикселя в преобразованном изображении, полученном применением ядра к пикселям исходного изображения. Для некоторых типов ядер новое значение пикселя, к которому применено ядро, In, вычисляется как сумма произведений значения ядра и пикселя, соответствующего значению 1008 ядра. В других случаях новое значение пикселя является более сложной функцией окрестности для пикселя и ядра 1010. В некоторых других типах обработки изображений новое значение пикселя генерируется функцией, применяемой к окрестностям пикселя без использования ядра 1012.Many image processing methods include applying cores to the pixel grid that makes up the image. In FIG. 10 shows the application of the kernel to an image. In FIG. 10, a small portion of the image 1002 is represented as a rectangular grid of pixels. A small 3 × 3 k 1004 core is shown below image I 1002. A core is applied to each pixel in the image. In the case of a 3 × 3 core, such as the k 1004 core shown in FIG. 10, for the pixels on the border, you can use a modified core, you can also expand the image by copying the brightness values for the pixels of the border into a description rectangle of pixels in order to be able to apply a core to each pixel of the original image. To apply the core to an image pixel, the core 1004 is numerically superimposed on a neighborhood of the pixel to which the 1006 core is applied with the same pixel dimensions as the core. Applying the kernel in the vicinity of the pixel to which the kernel is applied allows you to obtain a new value for the pixel in the converted image obtained by applying the kernel to the pixels of the original image. For some types of cores, the new pixel value to which the core is applied, I n , is calculated as the sum of the products of the core value and the pixel corresponding to 1008 core values. In other cases, the new pixel value is a more complex neighborhood function for the pixel and core 1010. In some other types of image processing, the new pixel value is generated by a function applied to the pixel neighborhoods without using the core 1012.

На Фиг. 11 показана свертка изображения. Обычно ядро свертки последовательно применяется к каждому пикселю изображения, в некоторых случаях к каждому пикселю изображения, не принадлежащему границе, или, в других случаях, для создания новых значений преобразованного изображения. На Фиг. 11 ядро 3×3, выделенное штриховкой 1102, было последовательно применено к первой строке пикселей, не принадлежащих границе в изображении 1104. Каждое новое значение, созданное в результате применения ядра к пикселю в исходном изображении 1106, было перенесено в преобразованное изображение 1107. Другими словами, ядро было последовательно применено к исходным окрестностям каждого пикселя в исходном изображении для создания преобразованного изображения. Этот процесс называется «сверткой» и слабо связан с математической операцией свертки, которая выполняется путем умножения изображений, к которым применено преобразование Фурье с последующим обратным преобразованием Фурье по произведению.In FIG. 11 shows a convolution of the image. Typically, the convolution kernel is applied sequentially to each pixel of the image, in some cases to each pixel of the image that does not belong to the border, or, in other cases, to create new values for the converted image. In FIG. 11, the 3 × 3 core, highlighted by hatching 1102, was sequentially applied to the first row of pixels that do not belong to the border in image 1104. Each new value created by applying the kernel to a pixel in the original image 1106 was transferred to the converted image 1107. In other words , the core was sequentially applied to the source neighborhoods of each pixel in the source image to create a transformed image. This process is called “convolution” and is loosely related to the mathematical operation of convolution, which is performed by multiplying the images to which the Fourier transform is applied, followed by the inverse Fourier transform of the product.

На Фиг. 12 показан некоторый пример ядра и методики обработки изображений на основе ядра. В процессе, называемом «медианной фильтрацией», значения яркости в окрестности исходного изображения 1202 были отсортированы 1204 по возрастанию модулей, и новым значением 1208 для соответствующей окрестности преобразованного изображения было выбрано среднее значение 1206. Гауссово сглаживание и очистка от шумов включают применение гауссова ядра 1210 ко всем окрестностям 1214 исходного изображения для создания значения для центрального пикселя окрестности 1216 в соответствующей окрестности обработанного изображения. Значения в гауссовом ядре рассчитываются по выражению, например, такому, как выражение 1218, и используются для создания дискретного представления гауссовой поверхности над окрестностью, образованной вращением кривой нормального распределения вокруг вертикальной оси, совпадающей с центральным пикселем. Горизонтальная и вертикальная компоненты градиента изображения для каждого пикселя могут быть получены применением соответствующих ядер градиента Gx 1220 и Gy 1222. Были указаны только три из множества различных типов методик обработки изображения на основе свертки.In FIG. 12 shows some example of a kernel and kernel-based image processing techniques. In a process called “median filtering,” luminance values in the vicinity of the original image 1202 were sorted 1204 in increasing order of magnitude, and the average value 1206 was selected for the corresponding neighborhood of the converted image 1206. Gaussian smoothing and noise removal include applying a 1210 Gaussian kernel all neighborhoods 1214 of the original image to create a value for the central pixel of the neighborhood 1216 in the corresponding neighborhood of the processed image. Values in a Gaussian core are calculated using an expression, such as expression 1218, for example, and are used to create a discrete representation of a Gaussian surface over a neighborhood formed by rotating a normal distribution curve around a vertical axis that coincides with a central pixel. The horizontal and vertical components of the image gradient for each pixel can be obtained using the corresponding cores of the gradient G x 1220 and G y 1222. Only three of the many different types of convolution-based image processing techniques were indicated.

Способы и системы, к которым относится настоящий документMethods and systems to which this document relates

На Фиг. 13-14 показан общий подход к определению контура, используемый в раскрываемых в данном документе способах и системах. На Фиг. 13 показано определение контура, выполняемое на примере цифрового изображения в соответствии с раскрываемыми в настоящем документе способами и системами. Цифровое изображение 1302 представляет собой фотографию стола 1304, расположенного рядом со стеной 1306 с обоями, в которой имеется окно 1308, через которое виден внешний пейзаж. В этом примере цифровое изображение проходит автоматическую обработку для определения интересующих нас физических объектов. В первой серии шагов обработки цифрового изображения с помощью способов определения контуров, которые описываются в настоящем изобретении, определяются контуры, которые, скорее всего, будут соответствовать контурам и границам интересующих физических объектов, расположенные на границах яркости, имеющихся на цифровом изображении. По результатам определения контуров создается карта контуров 1310, в которой содержатся контуры, соответствующие границам стола 1304, контуры, соответствующие границам документа, лежащего на столе 1312, и контуры, соответствующие части оконной рамы 1314. Другие нежелательные контуры, соответствующие границам яркости, не были определены из-за ограничений и значений параметров, которые управляют определением контура или были отфильтрованы на карте контуров. После этого могут быть выполнены дополнительные шаги по обработке цифрового изображения для определения контуров, также можно использовать дополнительную информацию, содержащуюся в исходном изображении 1302, для опознания и классификации изображенных физических объектов, включая стол, документ и оконную раму. Как было сказано выше, раскрываемые в настоящем документе способы и системы определения контуров подразумевают различные ограничения и параметры для управления определением контуров, чтобы идентифицировать контуры для конкретных целей. В частности, в показанном на Фиг. 13 примере существует множество границ яркости на исходном изображении, соответствующих текстуре пунктирных линий на обоях на стене 1306 за столом. Может быть задан параметр, регулирующий минимальную длину выявляемых контуров, который может иметь значение, исключающее текстуру обоев. Ограничения и значения параметров определяются, в частности, последующими шагами обработки цифровых изображений, которые предполагается применять к цифровому изображению.In FIG. 13-14 show a general approach to determining the contour used in the methods and systems disclosed herein. In FIG. 13 illustrates the definition of a contour performed by the example of a digital image in accordance with the methods and systems disclosed herein. The digital image 1302 is a photograph of a table 1304 located next to a wallpaper wall 1306, in which there is a window 1308 through which an external landscape is visible. In this example, the digital image is automatically processed to determine the physical objects of interest to us. In the first series of steps for processing a digital image using the contour determination methods that are described in the present invention, contours are defined that are most likely to correspond to the contours and boundaries of physical objects of interest located at the brightness boundaries present in the digital image. Based on the results of determining the contours, a contour map 1310 is created, which contains the contours corresponding to the borders of the table 1304, the contours corresponding to the boundaries of the document lying on the table 1312, and the contours corresponding to the parts of the window frame 1314. Other undesirable contours corresponding to the brightness limits were not determined due to restrictions and parameter values that control the definition of the path or have been filtered on the path map. After this, additional steps can be taken to process the digital image to determine the contours, and you can also use the additional information contained in the original image 1302 to identify and classify the displayed physical objects, including a table, a document and a window frame. As mentioned above, the contour determination methods and systems disclosed herein involve various limitations and parameters for controlling the definition of contours in order to identify contours for specific purposes. In particular, as shown in FIG. 13 example, there are many brightness borders on the original image, corresponding to the texture of dashed lines on the wallpaper on the wall 1306 at the table. A parameter can be set that regulates the minimum length of detected contours, which may have a value that excludes the texture of the wallpaper. Limitations and parameter values are determined, in particular, by the subsequent steps of digital image processing, which are supposed to be applied to the digital image.

На Фиг. 14 показан общий подход к определению контуров с использованием раскрываемых в настоящем документе способов и систем. На первом этапе 1402 исходное изображение 1302 обрабатывается с целью определения кандидатов начальных (затравочных) точек, из которых могут быть построены и продлены контуры. Результатом первого этапа может являться карта затравочных точек 1404. На втором этапе 1406 начальные границы продлеваются в двух направлениях из каждой затравочной точки для создания начальных контуров 1408. На заключительном этапе 1410 начальные контуры продлеваются и объединяются для создания итогового множества контуров, затем они могут быть отфильтрованы для создания множества определенных контуров 1412, которое может использоваться для последующих задач обработки изображения. Как подробно описано ниже, каждый из этапов 1402, 1406 и 1410, показанных на Фиг. 14, включает многочисленные процессы и подпроцессы. Эти процессы и подпроцессы связаны с генерацией и хранением множества различных типов промежуточных результатов и данных в памяти и на запоминающих устройствах. В различных вариантах реализации способов и систем настоящего изобретения могут использоваться различные типы представления данных и промежуточных результатов. Например, в одном варианте реализации промежуточный результат может быть представлен двумерной картой с элементами, соответствующими пикселям на цифровом изображении, в другом варианте реализации он может быть представлен сохраненными структурами данных со ссылками на исходное изображение или промежуточные карты.In FIG. Figure 14 shows a general approach to loop detection using the methods and systems disclosed herein. In a first step 1402, the original image 1302 is processed to determine candidates for the initial (seed) points from which the contours can be built and extended. The result of the first step can be a map of seed points 1404. In the second step 1406, the initial borders are extended in two directions from each seed point to create the initial contours 1408. At the final step 1410, the initial borders are extended and combined to create a final set of contours, then they can be filtered to create many specific contours 1412, which can be used for subsequent image processing tasks. As described in detail below, each of steps 1402, 1406, and 1410 shown in FIG. 14 includes numerous processes and subprocesses. These processes and subprocesses are associated with the generation and storage of many different types of intermediate results and data in memory and storage devices. In various embodiments of the methods and systems of the present invention, various types of data presentation and intermediate results may be used. For example, in one embodiment, the intermediate result may be represented by a two-dimensional map with elements corresponding to pixels in the digital image, in another embodiment, it may be represented by stored data structures with links to the original image or intermediate maps.

На Фиг. 15-26 показан частный вариант реализации раскрываемых в настоящем документе способов и систем. На Фиг. 15-26 приведены подробные пошаговые иллюстрации, способствующие пониманию блок-схем, а также приводится описание блок-схем с учетом того, какой вариант реализации описан в последующем подразделе.In FIG. 15-26 show a particular embodiment of the methods and systems disclosed herein. In FIG. Figures 15-26 provide detailed step-by-step illustrations that help to understand the flowcharts, and also describe the flowcharts taking into account which implementation option is described in the next subsection.

На Фиг. 15 показан первый этап сжатия. На Фиг. 15 исходное полученное цифровое изображение 1502 имеет высоту 1536 пикселей и ширину 2048 пикселей. Разность между высотой и шириной составляет 512 пикселей 1504. Исходное изображение 1502, сжатое с различными коэффициентами сжатия, позволяет получить сжатые изображения 1506 и 1507. Первое сжатое изображение 1506 сжимается с коэффициентом сжатия

Figure 00000009
и, в результате, имеет высоту 768 пикселей и ширину 1024 пикселей. Разность между шириной и высотой сжатого изображения составляет 256 пикселей 1508. Второе сжатое изображение сжимается с коэффициентом сжатия
Figure 00000010
, при этом разность между шириной и высотой второго сжатого изображения составляет 128 пикселей 1510. В описываемом варианте реализации изобретения исходное изображение сжимается с одним или более коэффициентами сжатия для создания одного или более соответствующих сжатых изображений, на которых разность между шириной и высотой изображения ниже порогового числа пикселей, например, ниже 300 пикселей. Для сжатия цифрового изображения могут использоваться различные способы. В одном простом способе для создания сжатых изображений из исходного изображения удаляются равноудаленные строки и столбцы пикселей. При более сложных способах могут выполняться различные способы сглаживания, сдвига и интерполяции для предотвращения непреднамеренного удаления необходимых деталей или их искажения при сжатии.In FIG. 15 shows a first compression step. In FIG. 15, the original obtained digital image 1502 has a height of 1536 pixels and a width of 2048 pixels. The difference between the height and width is 512 pixels 1504. The original image 1502, compressed with different compression ratios, allows you to get compressed images 1506 and 1507. The first compressed image 1506 is compressed with a compression ratio
Figure 00000009
and, as a result, has a height of 768 pixels and a width of 1024 pixels. The difference between the width and height of the compressed image is 256 pixels 1508. The second compressed image is compressed with a compression ratio
Figure 00000010
wherein the difference between the width and height of the second compressed image is 128 pixels 1510. In the described embodiment, the original image is compressed with one or more compression factors to create one or more corresponding compressed images in which the difference between the width and height of the image is below the threshold number pixels, for example, below 300 pixels. Various methods can be used to compress a digital image. In one simple method for creating compressed images, equidistant rows and columns of pixels are removed from the original image. With more complex methods, various methods of smoothing, shifting and interpolating can be performed to prevent inadvertent removal of necessary parts or their distortion during compression.

На Фиг. 16 показан следующий этап обработки при реализации процесса определения контуров. Исходное изображение или сжатая версия исходного изображения 1602 сглаживается 1604 с помощью медианного фильтра или свертки с применением гауссова ядра с целью создания сглаженного изображения 1606. Затем к каждому цифровому каналу сглаженного изображения применяются ядра градиента Gx и Gy для создания трех пар карт 1608-1613 горизонтальной компоненты градиента и вертикальной компоненты градиента. Например, ядро горизонтальной компоненты градиента, прошедшее свертку с красным каналом сглаженного изображения 1614, создает карту горизонтальной компоненты градиента для красного канала 1608. Понятие «Gi(X)» используется как для указания на свертку ядра градиента в направлении i с цветовым каналом X изображения, так и для указания на карту градиента, создаваемую при свертке. При формировании и сохранении в памяти шести карт компонент градиента 1608-1613 или, как вариант, при их оперативном формировании модули компонент градиента затем используются для создания «карты градиента» 1616. Каждый элемент карты градиента, например, элемент i 1618, содержит модуль градиента 1620 и угол направления градиента 1622. Небольшая блок-схема на Фиг. 16 показывает процесс формирования карты градиента. Сначала на этапе 1624 для каждого цветового канала вычисляется сумма абсолютных значений компонент градиента и сохраняется в переменных Ri, Gi и Bi. Если Ri превышает Gi, в соответствии с определением на этапе 1626, и если Ri превышает Bi, в соответствии с определением на этапе 1628, на этапе 1630 рассчитывается градиент для клетки или пикселя i с использованием компонент градиента для красного канала. Если Ri не превышает ни Gi, ни Bi, то на этапе 1632 определяется, является ли Bi больше Gi. Если Bi превышает Gi, то на этапе 1634 на основе компонент градиента синего канала рассчитывается модуль и направление градиента для клетки или пикселя i. В ином случае модуль и угол направления градиента рассчитываются по компонентам градиента зеленого канала на этапе 1636. Этот процесс, показанный на блок-схемах 1624, 1626, 1628, 1630, 1632, 1634 и 1636, повторяется для каждого пикселя или клетки i в сглаженном изображении 1606. Следует отметить, что в отдельных вариантах реализации свертка выполняется только для пикселей изображения внутри окрестностей пикселей, для которых возможно наложение ядра, при этом в создаваемой с помощью свертки карты будет меньшее количество столбцов и строк, чем в исходной карте. В других вариантах реализации все исходные изображения расширяются путем копирования, с тем, чтобы ядра могли быть применены ко всем пикселям или клеткам в изображении или для граничных пикселей и клеток используются модифицированные ядра. В связи с этим карта градиента 1616 представляет собой карту модулей и направлений градиентов для каждого пикселя или клетки сглаженного изображения, при этом градиент для каждого пикселя основан на цветовом канале сглаженного изображения, для которого сумма компонент градиента является максимальной.In FIG. 16 shows the next processing step in the implementation of the contour determination process. The original image or compressed version of the original image 1602 is smoothed 1604 using a median filter or convolution using a Gaussian kernel to create a smoothed image 1606. Then, G x and G y gradient cores are applied to each digital channel of the smoothed image to create three pairs of maps 1608-1613 horizontal gradient components and vertical gradient components. For example, the core of the horizontal gradient component that has convolved with the red channel of the smoothed image 1614 creates a map of the horizontal gradient component for the red channel 1608. The term “G i (X)” is used to indicate the convolution of the gradient core in the i direction with the color channel X of the image , and to point to the gradient map created during convolution. When forming and storing six maps of gradient components 1608-1613 in the memory or, alternatively, when they are generated quickly, the gradient component modules are then used to create a “gradient map” 1616. Each element of the gradient map, for example, element i 1618, contains a gradient module 1620 and the angle of the gradient direction 1622. The small block diagram of FIG. 16 shows a gradient map generation process. First, at step 1624, for each color channel, the sum of the absolute values of the gradient components is calculated and stored in the variables R i , G i and B i . If R i exceeds G i , as determined in step 1626, and if R i exceeds B i , as determined in step 1628, the gradient for the cell or pixel i is calculated in step 1630 using the gradient components for the red channel. If R i does not exceed either G i or B i , then at step 1632 it is determined whether B i is greater than G i . If B i exceeds G i , then at step 1634, the modulus and gradient direction for the cell or pixel i are calculated based on the blue channel gradient components. Otherwise, the modulus and gradient angle are calculated from the green channel gradient components in step 1636. This process, shown in flowcharts 1624, 1626, 1628, 1630, 1632, 1634, and 1636, is repeated for each pixel or cell i in the smoothed image 1606. It should be noted that in certain implementations, convolution is performed only for image pixels within neighborhoods of pixels for which a kernel can be superimposed, while in the map created by convolution there will be fewer columns and rows than in the original map. In other embodiments, all source images are expanded by copying so that the kernels can be applied to all pixels or cells in the image, or modified kernels are used for boundary pixels and cells. In this regard, gradient map 1616 is a map of the modules and directions of gradients for each pixel or cell of the smoothed image, and the gradient for each pixel is based on the color channel of the smoothed image for which the sum of the gradient components is maximum.

На Фиг. 17 показано ядро подавления немаксимумов («ядро NMS»). Ядро 1702 NMS содержит три области: (1) центральный пиксель 1704; (2) непосредственная окрестность 1706; и (3) расширенная окрестность 1708. Применение ядра NMS для пикселей подразумевает такое наложение ядра NMS, чтобы область 1704 центрального пикселя ядра NMS накладывалась на пиксель, к которому применяется ядро. При наложении ядра решается, передается ли яркость пикселя, к которому применяется ядро, соответствующему пикселю или клетке итогового изображения или карте, или на итоговую карту или изображение передается значение яркости 0. Если яркость пикселя, находящегося под центральным пикселем ядра NMS, выше яркости пикселя, находящегося в непосредственной окрестности ядра NMS, и если яркость пикселя под областью центрального пикселя выше или равна яркости любого пикселя, лежащего в расширенной окрестности, то на итоговое изображение или карту передается значение яркости центрального пикселя. В ином случае на итоговое изображение или карту передается значение 0. Процесс принятия решений формально выражен 1710 на Фиг. 17. При свертке изображения или карты с ядром NMS для передачи на итоговое изображение или карту выбираются пиксели или клетки изображения или карты с максимальными локальными значениями яркости.In FIG. 17 shows a non-maximum suppression core (“NMS core”). The NMS core 1702 contains three areas: (1) a center pixel 1704; (2) the immediate vicinity of 1706; and (3) an extended neighborhood of 1708. The use of an NMS core for pixels implies an overlay of the NMS core such that an area 1704 of the central pixel of the NMS core overlaps the pixel to which the core is applied. When overlaying the kernel, it is decided whether the brightness of the pixel to which the core is applied is transmitted to the corresponding pixel or cell of the final image or map, or the brightness value 0 is transmitted to the final map or image. If the brightness of the pixel located under the central pixel of the NMS core is higher than the brightness of the pixel, located in the immediate vicinity of the NMS core, and if the brightness of the pixel under the region of the central pixel is higher than or equal to the brightness of any pixel lying in the extended neighborhood, then the resulting image or map The brightness value of the center pixel is set. Otherwise, the value 0 is transmitted to the final image or map. The decision-making process is formally expressed 1710 in FIG. 17. When convolving an image or card with an NMS core, the pixels or cells of the image or card with the maximum local brightness values are selected for transmission to the final image or card.

На Фиг. 18 показаны дополнительные шаги процесса определения контура, приводящие к созданию карты точек, которая содержит указания на исходные пиксели, из которых начинаются контуры, что было описано выше со ссылкой на карту точек 1404 на Фиг. 14. Карта градиента 1802, сформированная в ходе описанного выше процесса со ссылкой на Фиг. 16, свертывается с ядром NMS для создания промежуточной карты точек 1804. Ядро NMS рассматривает компонент модуля градиента для каждой клетки карты градиента и передает модули максимальных локальных градиентов с карты градиента на промежуточную карту точек 1804. Далее к промежуточной карте точек применяется пороговая фильтрация 1806 для создания итоговой карты точек 1808, содержащей самые большие модули градиента, при этом все другие клетки содержат значение 0 в результате свертки с ядром NMS или установления порога. В некоторых вариантах реализации создается индекс 1810, содержащий отсортированные ссылки на исходные пиксели на карте точек для создания отсортированной карты точек 1812. Индекс сортируется по убыванию значений модуля, поэтому большая часть перспективных затравочных пикселей обрабатываются с более высоким приоритетом, чем менее перспективные затравочные пиксели. Следует отметить, что в альтернативных вариантах реализации может использоваться отсортированный массив структур данных, каждая из которых содержит координаты и модуль градиента для затравочного пикселя, а не сохраняет резервную карту точек. В качестве пикселей затравочных точек обычно используются пиксели, соответствующие самым явным границам яркости на цифровом изображении.In FIG. 18 shows additional steps of the contour determination process leading to the creation of a point map that contains indications of the source pixels from which the outlines begin, as described above with reference to the point map 1404 in FIG. 14. A gradient map 1802 generated during the process described above with reference to FIG. 16, collapses with the NMS core to create an intermediate point map of 1804. The NMS core considers the gradient module component for each cell of the gradient map and transfers the maximum local gradient modules from the gradient map to the intermediate point map 1804. Next, threshold filtering 1806 is applied to the intermediate point map a final map of points 1808 containing the largest gradient moduli, while all other cells contain a value of 0 as a result of convolution with the NMS core or setting a threshold. In some implementations, an index 1810 is created that contains sorted links to the source pixels on the point map to create a sorted point map 1812. The index is sorted in descending order of module values, so most promising seed pixels are processed with higher priority than less promising seed pixels. It should be noted that in alternative implementations, a sorted array of data structures can be used, each of which contains the coordinates and the gradient modulus for the seed pixel, and does not save a backup map of points. As the pixels of the seed points, pixels are usually used that correspond to the most obvious brightness boundaries in a digital image.

При наличии карты точек, отсортированной карты точек или иной структуры данных, содержащей затравочные точки, процесс определения контуров продолжается как описано выше со ссылкой на карту или изображение 1408 на Фиг. 14 для начала построения контура от затравочных пикселей или точек. На Фиг. 19 показан общий процесс построения контура. Из заданного затравочного пикселя или точки на карте точек 1902 начальный контур может иметь одно из возможных направлений, показанных стрелками, например, стрелкой 1904. На этапе 1906 выбора исходного направления контура выбирается определенное направление для начального контура и создается вектор 1908 длины L, конец которого соответствует затравочному пикселю 1902, а направление - выбранному направлению. При этом начальный контур представляет собой отрезок с двумя конечными точками, соответствующими концу и началу построенного вектора. В приведенном ниже описании векторы также могут называться «отрезками», поскольку, как описано ниже, контур представлен последовательностью векторов «голова к хвосту». Эти элементы представления контура могут быть закодированы как векторы с начальной точкой, модулем или углом направления или в виде отрезков с координатами начальной и конечной точки отрезка.With a point map, a sorted point map, or other data structure containing seed points, the contour determination process continues as described above with reference to the map or image 1408 in FIG. 14 to start building a contour from the seed pixels or dots. In FIG. 19 shows the general process of constructing a contour. From a given seed pixel or point on the point map 1902, the initial contour can have one of the possible directions shown by arrows, for example, arrow 1904. At step 1906, the initial direction of the contour is selected, a certain direction is selected for the initial contour and a vector 1908 of length L is created, the end of which corresponds to the seed pixel 1902, and the direction to the selected direction. In this case, the initial contour is a segment with two end points corresponding to the end and beginning of the constructed vector. In the description below, vectors can also be called “segments” because, as described below, a path is represented by a sequence of head-to-tail vectors. These contour representation elements can be encoded as vectors with a starting point, a module, or an angle of direction, or in the form of segments with the coordinates of the starting and ending points of the segment.

На Фиг. 20 представлен расчет величины проекции градиента пикселя р по вектору начального контура r, исходящего из затравочного пикселя или затравочной точки i. Как показано на Фиг. 20, предполагаемый исходный вектор r 2002 для контура, совпадающего с затравочным пикселем i 2004, рассматривается в процессе выбора направления начального контура. Пиксель р 2006 расположен вдоль вектора r 2002. Имеется вектор градиента 2008, связанный с пикселемр на карте градиента. Этот вектор градиента имеет угол направления θр 2010, который также присутствует на карте градиента. Угол 2012, θr, является углом направления для вектора r. Угол Ψ 2014 является углом между вектором градиента для пикселя р и вектором r 2002. Вектор pr 2016 является проекцией вектора градиента 2008 на вектор r 2002. В показанных на Фиг. 20 конструкциях угол Ψ легко рассчитывается 2018 на основе углов наклона θр и θr. Отношение модулей векторов pr и вектора градиента для пикселя р равно косинусу угла Ψ 2220. Таким образом, модуль вектора проекции pr вычисляется как произведение косинуса Ψ и модуля вектора градиента, исходящего из пикселя р 2222. Как вариант, для расчета модуля вектора проекции pr 2224 может использоваться скалярное произведение вектора градиента 2202 и вектора r. Замена результата 2222 на выражение скалярного произведения дает выражение для определения модуля вектора проекции pr 2226. Аналогичные конструкции могут быть сгенерированы для всех возможных относительных положений вектора градиента для пикселя р и начального вектора контура r.In FIG. 20 shows a calculation of the magnitude of the projection of the gradient of the pixel p from the vector of the initial contour r, originating from the seed pixel or seed point i. As shown in FIG. 20, the estimated initial vector r 2002 for the contour matching the seed pixel i 2004 is considered in the process of selecting the direction of the initial contour. The pixel p 2006 is located along the vector r 2002. There is a gradient vector 2008 associated with the pixel meter on the gradient map. This gradient vector has a direction angle θ p 2010, which is also present on the gradient map. The angle 2012, θ r , is the direction angle for the vector r. The angle Ψ 2014 is the angle between the gradient vector for the pixel p and the vector r 2002. The vector pr 2016 is the projection of the gradient vector 2008 onto the vector r 2002. In those shown in FIG. In 20 designs, the angle Ψ is easily calculated 2018 based on the inclination angles θ p and θ r . The ratio of the moduli of the vectors pr and the gradient vector for the pixel p is equal to the cosine of the angle Ψ 2220. Thus, the modulus of the projection vector pr is calculated as the product of the cosine Ψ and the modulus of the gradient vector coming from the pixel p 2222. Alternatively, to calculate the modulus of the projection vector pr 2224 can the scalar product of the gradient vector 2202 and the vector r is used. Replacing the result 2222 with an expression of the scalar product gives an expression for determining the modulus of the projection vector pr 2226. Similar constructions can be generated for all possible relative positions of the gradient vector for pixel p and the initial contour vector r.

На Фиг. 21 показано создание промежуточных вычисляемых значений, которые используются в процессе выбора направлений границы для затравочных пикселей. На Фиг. 21 показан затравочный пиксель с координатами (х,у) 2102 вместе с кандидатом вектора начального контура 2104. Для кандидата вектора границы создаются два промежуточных результата

Figure 00000011
2108 и Н(х,у,r) 2110, где r является вектором 2104 и также называется направлением начальной границы, при этом фактически имеется в виду угол направления вектора r. Имеется 10 пикселей, включая затравочный пиксель 2102, которые находятся под вектором 2104, представляющим кандидата начального контура. Значение
Figure 00000011
вычисляется как сумма модулей проекций векторов, связанных с пикселями i1-i10, разделенные на количество элементов множества пикселей под начальным контуром. H(х,у,r) представляет собой гистограмму 2112, на которой направление градиента пикселей под вектором начального контура представлено в виде бинов гистограммы. Как показано в выражении 2114, количество пикселей, зарегистрированных в каждом бине Hi гистограммы, соответствует количеству пикселей с направлением градиента в интервале представленных бином направлений. Бин 2116 с максимальным значением соответствует общему направлению градиента пикселей под начальным контуром. При правильном направлении начального контура направление вектора 2104 должно быть в целом перпендикулярно направлениям градиента пикселей под вектором 2104.In FIG. Figure 21 shows the creation of intermediate calculated values that are used in the process of selecting border directions for seed pixels. In FIG. 21 shows a seed pixel with coordinates (x, y) 2102 together with the candidate vector of the initial contour 2104. Two intermediate results are created for the candidate boundary vector
Figure 00000011
2108 and H (x, y, r) 2110, where r is the vector 2104 and is also called the direction of the initial boundary, while in fact the angle of the direction of the vector r is meant. There are 10 pixels, including the seed pixel 2102, which are below the vector 2104 representing the candidate of the initial contour. Value
Figure 00000011
it is calculated as the sum of the modules of the projections of the vectors associated with the pixels i 1 -i 10 divided by the number of elements of the set of pixels under the initial contour. H (x, y, r) is a histogram 2112, in which the direction of the gradient of pixels under the vector of the initial contour is presented in the form of histogram bins. As shown in expression 2114, the number of pixels recorded in each histogram bin H i corresponds to the number of pixels with a gradient direction in the range of the directions represented by the bin. Bean 2116 with the maximum value corresponds to the general direction of the gradient of pixels under the initial path. With the right direction of the initial contour, the direction of the vector 2104 should be generally perpendicular to the directions of the pixel gradient below the vector 2104.

На Фиг. 22 представлена блок-схема процесса выбора направления границы, в которой выбирается направление начального контура для затравочного пикселя. На этапе 2202 процесс получает координаты затравочного пикселя. На этапе 2204 происходит инициализация пустого множества кандидатов. Множество кандидатов является множеством структур данных кандидатов, каждое из которых включает направление r и значение

Figure 00000012
. В цикле for этапов 2206-2213 рассматривается каждое из направлений r от 0° до 360°. Следует, опять же, отметить, что r в настоящем описании считается как вектором, так и направлением, где направление представляет собой направление ориентации вектора r. На этапе 2207 для рассматриваемого направления вычисляется гистограмма H(x,y,r). На этапе 2208 для бина с максимальным значением в H(х,у,r) устанавливается индекс j. На этапе 2209 определяется, является ли направление r перпендикулярным углу в диапазоне углов, соответствующих бину с максимальным значением и его ближайшим соседям. Если направление r является перпендикулярным углу в этом диапазоне, то на этапе 2210 определяется, превышает ли значение или число пикселей, назначенное бину с максимальным значением, пороговое значение В. Если да, то на этапе 2211 рассчитывается значение
Figure 00000011
для рассматриваемого направления и, на этапе 2212, в множество кандидатов добавляется запись для рассматриваемого направления. После завершения цикла for этапов 2206-2213, если количество элементов в множестве кандидатов меньше 0, как определено на этапе 2214, то на этапе 2215 возвращается вектор со значением 0 для указания на то, что предпочтительное направление контура для затравочного пикселя не может быть установлено. В ином случае на этапе 2216 выбирается один кандидат из множества кандидатов с наибольшим значением
Figure 00000011
. Если значение
Figure 00000012
для выбранного кандидата превышает пороговое значение
Figure 00000013
, как определено на этапе 2218, то на этапе 2220 возвращается направление r, содержащееся в выбранном кандидате. В противном случае на этапе 2215 возвращается нулевой вектор, указывающий на невозможность определения направления для затравочного пикселя. Таким образом, выбор исходного направления контура для затравочного пикселя включает выбор направления, согласованного с направлениями векторов градиента для пикселей в окрестности начального контура, когда в окрестности имеется консенсус относительно направления градиента.In FIG. 22 is a flowchart of a process for selecting a direction of a boundary in which a direction of an initial contour for a seed pixel is selected. At step 2202, the process obtains the coordinates of the seed pixel. At step 2204, an empty set of candidates is initialized. A plurality of candidates is a plurality of candidate data structures, each of which includes a direction r and a value
Figure 00000012
. In the for loop of steps 2206-2213, each of the directions r from 0 ° to 360 ° is considered. It should again be noted that r in the present description is considered both a vector and a direction, where the direction is the direction of orientation of the vector r. At step 2207, a histogram H (x, y, r) is computed for the direction in question. At step 2208, an index j is set for the bin with the maximum value in H (x, y, r) . At step 2209, it is determined whether the direction r is perpendicular to the angle in the range of angles corresponding to the bin with the maximum value and its nearest neighbors. If the direction r is perpendicular to the angle in this range, then at step 2210 it is determined whether the value or number of pixels assigned to the bin with the maximum value exceeds threshold value B. If yes, then at step 2211 the value is calculated
Figure 00000011
for the direction in question and, at step 2212, an entry for the direction in question is added to the plurality of candidates. After completing the for loop of steps 2206-2213, if the number of elements in the plurality of candidates is less than 0, as determined at step 2214, then at step 2215 a vector is returned with a value of 0 to indicate that the preferred outline direction for the seed pixel cannot be set. Otherwise, at step 2216, one candidate is selected from the set of candidates with the highest value
Figure 00000011
. If the value
Figure 00000012
for selected candidate exceeds threshold
Figure 00000013
as determined in step 2218, then in step 2220, the direction r contained in the selected candidate is returned. Otherwise, at step 2215, a zero vector is returned indicating that it is not possible to determine the direction for the seed pixel. Thus, the selection of the initial direction of the contour for the seed pixel includes the selection of the direction that is consistent with the directions of the gradient vectors for the pixels in the vicinity of the initial contour, when in the vicinity there is consensus regarding the direction of the gradient.

Следует отметить, что в некоторых случаях бин гистограммы с максимальным значением будет отсутствовать. В основном в таких случаях способ потерпит неудачу из-за выбора порога на основе порогового значения В. В других случаях, при наличии бинов гистограммы с максимальными значениями, можно с учетом дополнительной информации или выбрать один из бинов гистограммы с максимальным значением как соответствующий направлению градиента для окрестности, или отказаться от определения направления, вернув вектор 0.It should be noted that in some cases the bin of the histogram with the maximum value will be absent. Basically, in such cases, the method will fail due to the choice of the threshold based on the threshold value B. In other cases, if there are histogram bins with maximum values, you can take into account additional information or select one of the histogram bins with the maximum value as corresponding to the gradient direction for neighborhood, or refuse to determine the direction by returning the vector 0.

На Фиг. 23 и 24 представлен выбор направления для продления контура. Процесс выбора направления продления контура в целом аналогичен процессу выбора исходных направлений контура для затравочных пикселей, описанному выше со ссылкой на Фиг. 20-22. Однако в процессе продления контура следующий вектор длины L продлевается из конечного пикселя строящегося контура, а не путем построения двух векторов из затравочной точки в двух противоположных направлениях. На Фиг. 23 показан следующий вектор-кандидат 2302, продленный из конечного пикселя 2304 формируемого контура. В этом случае в качестве направлений кандидатов рассматриваются только направления с углом 2α 2306. Иными словами, следующий отрезок контура 2302 может быть наклонен относительно направления предыдущего уже существующего отрезка контура 2308 на угол α. В ином случае процесс выбора направления аналогичен процессу выбора направления для начальных векторов, соответствующих начальному контуру для затравочного пикселя.In FIG. 23 and 24 show the choice of direction for extending the contour. The process of selecting the direction of extending the contour is generally similar to the process of selecting the initial directions of the contour for the seed pixels described above with reference to FIG. 20-22. However, in the process of extending the contour, the next vector of length L is extended from the final pixel of the contour under construction, and not by constructing two vectors from the seed point in two opposite directions. In FIG. 23 shows the following candidate vector 2302, extended from the final pixel 2304 of the generated contour. In this case, only directions with an angle of 2306 are considered as candidate directions. In other words, the next segment of the contour 2302 can be tilted relative to the direction α of the angle of the previous existing segment of the contour 2308. Otherwise, the direction selection process is similar to the direction selection process for initial vectors corresponding to the initial contour for the seed pixel.

На Фиг. 25 показан процесс построения контура. Этот процесс начинается в затравочном пикселе 2502. Исходный вектор 2504 строится для образования начального контура с направлением, выбранным согласно приведенному выше описанию со ссылкой на Фиг. 20-22. Затем начальный вектор продлевается в каждом направлении за счет последовательного добавления продлевающих векторов, например, векторов 2506-2508 для каждого конца контура. Если направление следующего продления из конкретной конечной точки контура определить невозможно, то продление контура в этом направлении оканчивается в этой конечной точке.In FIG. 25 shows the process of constructing a contour. This process begins at the seed pixel 2502. An initial vector 2504 is constructed to form an initial contour with a direction selected according to the above description with reference to FIG. 20-22. Then, the initial vector is extended in each direction by sequentially adding extension vectors, for example, vectors 2506-2508 for each end of the contour. If the direction of the next extension from a particular endpoint of the contour cannot be determined, then the extension of the contour in this direction ends at that endpoint.

На Фиг. 26 представлено соединение двух контуров для образования единого результирующего контура. На Фиг. 26 первый многосегментный контур 2602 заканчивается в конечной точке 2604, а второй многосегментный контур 2606 заканчивается в конечной точке 2608. Первый и второй контуры 2602 и 2606 могут представлять две дискретных и различных границы яркости в пределах изображения или могут представлять две части одной границы яркости с разрывом, разделяющим эти две части. В последнем случае обе части соединяются для формирования единого непрерывного контура. В процессе объединения оба контура продлеваются из соответствующих конечных точек, на что указывают пунктирные векторы 2610 и 2612, продолжающиеся из конечных отрезков 2614 и 2616 первого 2602 и второго 2606 контуров. В качестве направления продления может быть выбрано направление конечного отрезка каждого контура, включающего одну или две конечных точки, или может определяться путем использования аппроксимации, исходя из направлений n конечных отрезков каждого контура. Может использоваться множество различных способов, в том числе способы линейной регрессии, при которых конечная часть контуров выражается с помощью линейной и квадратичной или кубической аппроксимации, если конечные части контуров, по всей видимости, криволинейные. Продления в примере на Фиг. 26 пересекаются в точке 2620. Угол пересечения β 2622 и перпендикулярные расстояния d1 2624 и d2 2626 вычисляются, чтобы определить, следует ли объединять эти два контура. Если угол β не превышает порогового значения, и если минимальное из двух расстояний d1 и d2 не превышает минимальное расстояние, то строится связующий отрезок 2630 для объединения двух контуров с целью создания единого результирующего контура.In FIG. 26 shows the connection of two loops to form a single resulting loop. In FIG. 26, the first multi-segment path 2602 ends at the end point 2604, and the second multi-segment path 2606 ends at the end point 2608. The first and second paths 2602 and 2606 can represent two discrete and different brightness borders within the image or can represent two parts of the same brightness border with a gap separating these two parts. In the latter case, both parts are connected to form a single continuous circuit. In the process of combining, both contours are extended from the corresponding end points, as indicated by the dotted vectors 2610 and 2612, continuing from the end segments 2614 and 2616 of the first 2602 and second 2606 contours. As the extension direction, the direction of the end segment of each contour, including one or two end points, can be selected, or it can be determined by using the approximation based on the directions of n end segments of each contour. Many different methods can be used, including linear regression methods, in which the finite part of the contours is expressed using linear and quadratic or cubic approximations, if the final parts of the contours are apparently curved. Extensions in the example of FIG. 26 intersect at point 2620. The intersection angle β 2622 and the perpendicular distances d 1 2624 and d 2 2626 are calculated to determine whether to combine these two contours. If the angle β does not exceed the threshold value, and if the minimum of the two distances d 1 and d 2 does not exceed the minimum distance, then a connecting segment 2630 is constructed to combine the two contours in order to create a single resulting contour.

Блок-схемыFlowcharts

В настоящем подразделе рассматривается серия блок-схем, которые иллюстрируют один из вариантов реализации раскрываемых в настоящем документе способов и систем. Эти блок-схемы частично основаны на рассмотренных ранее Фиг. 13-26, которые иллюстрируют многие процессы и подпроцессы, входящие в определение контура.This subsection discusses a series of flowcharts that illustrate one embodiment of the methods and systems disclosed herein. These flowcharts are based in part on the previously discussed FIGS. 13-26, which illustrate many of the processes and subprocesses that are part of the definition of the circuit.

На Фиг. 27A-G показан с использованием блок-схем и представлений структур данных один из вариантов реализации раскрываемых в данном документе способов определения контуров на цифровых изображениях, используемых во множестве различных устройств, приборов и вычислительных систем в качестве начального шага различных типов процессов автоматической обработки цифровых изображений.In FIG. 27A-G shows, using flowcharts and representations of data structures, one embodiment of the disclosed methods for determining the contours of digital images used in many different devices, instruments, and computing systems as an initial step in various types of digital image automatic processing processes.

На Фиг. 27А представлена блок схема процедуры «найти контуры», которая описывает один из вариантов реализации раскрываемого в данном документе способа определения контуров на цифровом изображении. На этапе 2702 происходит получение цифрового изображения, а также выделение и инициализация массива контуров из структур данных контуров. На этапе 2703 определяется минимальный коэффициент сжатия Cmin, необходимый для сжатия полученного изображения так, чтобы разница между высотой и шириной сжатого изображения была ниже указанного порогового числа пикселей. На этапе 2704 определяется максимальный используемый коэффициент сжатия Cmax. В цикле for этапов 2705-2707 итеративно вызывается подпрограмма «определить контуры» для сжатия исходного изображения с коэффициентом сжатия в интервале [Cmin, Cmax] и определения контуров в сжатом изображении. Количество сжатых изображений, сформированных в цикле for, может зависеть от параметризованной итерации интервала коэффициента сжатия, от размеров полученного цифрового изображения и от других факторов. В некоторых случаях формируется только одно сжатое изображение. В других случаях контуры определяются без сжатия на исходном изображении, если диспропорция размеров исходного изображения меньше порогового числа пикселей. На этапе 2708 вызывается подпрограмма «объединить определенные контуры» для совмещения контуров, выявленных в цикле for этапов 2705-2707. На этапе 2709 вызывается подпрограмма «выбрать итоговые контуры» для выбора итогового множества контуров в качестве идентифицированных контуров для использования в последующих процессах обработки цифрового изображения.In FIG. 27A is a flowchart of a “find outlines” procedure that describes one embodiment of a method for determining outlines in a digital image disclosed herein. At step 2702, a digital image is acquired, as well as the allocation and initialization of the array of contours from the data structures of the contours. At step 2703, the minimum compression ratio C min needed to compress the resulting image is determined so that the difference between the height and width of the compressed image is below the specified threshold number of pixels. At step 2704, the maximum usable compression ratio C max is determined. In the for loop of steps 2705-2707, the “determine contours” subroutine is iteratively called to compress the original image with a compression coefficient in the interval [C min , C max ] and determine the contours in the compressed image. The number of compressed images generated in a for loop may depend on the parameterized iteration of the compression ratio interval, the size of the resulting digital image, and other factors. In some cases, only one compressed image is generated. In other cases, the contours are determined without compression in the original image if the imbalance in the size of the original image is less than the threshold number of pixels. At step 2708, the “merge defined paths” routine is called to align the paths identified in the for loop of steps 2705-2707. At step 2709, the “select resulting contours” routine is called to select the resulting set of contours as identified contours for use in subsequent digital image processing processes.

На Фиг. 27В представлена структура данных, использующаяся в описанном варианте реализации. Структура данных контуров 2712 представляет собой массив данных контуров, каждый из которых включает массив cs 2713, в котором хранится начальная точка и конечная точка 2714 для индивидуальных контуров, выявленных в конкретном сжатом изображении или, в определенных случаях, исходном изображении. Помимо того, структура данных контуров содержит указание на количество выявленных контуров 2716 и ссылку 2717 на сжатое изображение или, в определенных случаях, на исходное изображение 2718, в котором определены контуры. Это, конечно же, только одна из возможных структур данных, используемых в одном из возможных способов для представления контуров, выявленных в одном или более цифровых изображениях.In FIG. 27B shows a data structure used in the described embodiment. The contour data structure 2712 is an array of contour data, each of which includes an cs 2713 array that stores the start point and end point 2714 for the individual contours identified in a particular compressed image or, in certain cases, the original image. In addition, the structure of these contours contains an indication of the number of detected contours 2716 and a link 2717 to a compressed image or, in certain cases, to the original image 2718 in which the contours are defined. This, of course, is only one of the possible data structures used in one of the possible ways to represent the contours detected in one or more digital images.

На Фиг. 27С показана блок-схема подпрограммы «определить контуры», вызываемой на этапе 2706 на Фиг. 27А. На этапе 2720 принимается изображение (обычно сжатое изображение C) и ссылка на структуру данных контуров. На этапе 2721 устанавливаются значения для ряда параметров, которые управляют определением контуров. К ним относятся: (1) L, длина отрезков, используемых для построения контуров; (2) α, максимальный угол изгиба следующего отрезка по отношению к текущему, конечному отрезку контура; (3) h, количество бинов в гистограмме Н(х,у,r); (4) В, минимальное значение бина гистограммы с максимальным значением; (5)

Figure 00000013
, минимальное
Figure 00000012
значение начального отрезка; и (6) Re, радиус окрестности контура. Эти значения могут быть жестко заданы, поступать из файла конфигурации или указываться через интерфейс пользователя.In FIG. 27C shows a block diagram of a “determine contours” routine called in step 2706 of FIG. 27A. At step 2720, an image (typically a compressed image C) and a link to the outline data structure are received. At step 2721, values are set for a series of parameters that control the definition of loops. These include: (1) L, the length of the segments used to construct the contours; (2) α, the maximum bending angle of the next segment with respect to the current, final segment of the contour; (3) h, the number of bins in the histogram H (x, y, r) ; (4) B, the minimum value of the histogram bin with the maximum value; (5)
Figure 00000013
minimum
Figure 00000012
value of the initial segment; and (6) R e , the radius of the neighborhood of the contour. These values can be hard-coded, come from the configuration file, or specified through the user interface.

На этапе 2722, полученное изображение С сглаживается, как описано выше со ссылкой на этап 1604 на Фиг. 16. В цикле for этапов 2723-2725 создаются карты градиента для каждого из трех цветовых каналов в сжатом изображении С, как описано выше со ссылкой на Фиг. 16. На этапе 2726 создаются карта градиента и карта точек с индексом (1802 и 1812 на Фиг. 18). В цикле for этапов 2727-2730, в карту градиента вносится запись для каждого пикселя i изображения С, как описано выше со ссылкой на Фиг. 16. На этапе 2731 к карте градиента применяется ядро NMS для формирования промежуточной карты точек (1804 на Фиг. 18). На этапе 2732 промежуточная карта точек фильтруется до 0 записей j, для которых модули градиента будут меньше порогового значения (1806 на Фиг. 18). На этапе 2733 на карте точек (1810 на Фиг. 18) создается отсортированный индекс. Наконец, на этапе 2734 вызывается подпрограмма «построить контуры» для построения контуров, совпадающих с некоторыми из затравочных пикселей, на которые указывает карта точек, созданная на этапах 2731-2733.At step 2722, the obtained image C is smoothed as described above with reference to step 1604 in FIG. 16. In the for loop of steps 2723-2725, gradient maps are created for each of the three color channels in the compressed image C, as described above with reference to FIG. 16. At step 2726, a gradient map and a map of points with an index are created (1802 and 1812 in FIG. 18). In the for loop of steps 2727-2730, an entry for each pixel i of image C is entered into the gradient map, as described above with reference to FIG. 16. At step 2731, an NMS core is applied to the gradient map to form an intermediate point map (1804 in FIG. 18). At step 2732, an intermediate point map is filtered to 0 entries j for which the gradient moduli will be less than the threshold value (1806 in FIG. 18). At step 2733, a sorted index is created on the point map (1810 in FIG. 18). Finally, at step 2734, the “build contours” routine is called to construct the paths that match some of the seed pixels that are indicated by the point map created in steps 2731-2733.

На Фиг. 27D показана блок-схема подпрограммы «построить контуры», вызываемой на этапе 2734 на Фиг. 27С. На этапе 2736 подпрограмма получает сжатое изображение С, карту точек с индексом и ссылку на структуру данных контуров. В цикле for этапов 2737-2751 рассматриваются все затравочные точки на карте точек в порядке убывания значений модуля градиента, при этом используется индекс, связанный с картой точек. На этапе 2738 вызывается подпрограмма «выбрать направление границы для затравочной точки» с целью определения направления начального контура, включая совмещение построенного вектора с затравочной точкой. Следует отметить, что подпрограмма «выбрать направление границы для затравочной точки» описана выше со ссылкой на Фиг. 22. Если направление не возвращается, текущая итерация цикла for этапов 2737-2751 заканчивается, и рассматривается следующая затравочная точка. В противном случае на этапе 2740 из затравочной точки создается исходный вектор в соответствии с заданным направлением, как описано выше со ссылкой на Фиг. 19. Во внутреннем цикле for этапов 2741-2749 начальный контур продлевается в обоих направлениях через вызванную на этапе 2745 подпрограмму «выбрать направление границы для продления». Эта подпрограмма описана выше со ссылкой на Фиг. 24, а процесс построения контуров в целом описан выше со ссылкой на Фиг. 25. После завершения контура все затравочные точки в окрестности контура, определенной радиусом Re, удаляются с карты точек и из индекса для предотвращения инициации новых контуров в чрезмерной близости к установленному текущему контуру. Наконец, после завершения внешнего цикла for этапов 2737-2751, на этапе 2752 заполняется структура данных контура в массиве контуров.In FIG. 27D shows a block diagram of the construct contours subroutine called in step 2734 of FIG. 27C. At step 2736, the subroutine receives a compressed image C, a map of points with an index, and a link to the outline data structure. In the for loop of steps 2737-2751, all seed points on the point map are considered in decreasing order of the values of the gradient modulus, using the index associated with the point map. At step 2738, the subroutine “select the direction of the boundary for the seed point” is called to determine the direction of the initial contour, including combining the constructed vector with the seed point. It should be noted that the “select border direction for seed” routine is described above with reference to FIG. 22. If the direction does not return, the current iteration of the for loop of steps 2737-2751 ends and the next seed point is considered. Otherwise, at step 2740, an initial vector is created from the seed point in accordance with the specified direction, as described above with reference to FIG. 19. In the internal for loop of steps 2741-2749, the initial contour is extended in both directions through the subroutine “select the direction of the boundary for extension” called in step 2745. This routine is described above with reference to FIG. 24, and the contouring process as a whole has been described above with reference to FIG. 25. After completing the contour, all the seed points in the vicinity of the contour defined by the radius R e are removed from the point map and from the index to prevent the initiation of new contours in excessive proximity to the established current contour. Finally, after completing the external for loop of steps 2737-2751, at step 2752, the outline data structure in the outline array is populated.

На Фиг. 27Е показана блок-схема подпрограммы «объединить определенные контуры», вызываемой на этапе 2708 на Фиг. 27А. На этапе 2754 размещается структура данных результатов и принимается ссылка на структуру данных контуры. В цикле for этапов 2756-2759 рассматриваются структура данных каждого контура в структуре данных контуров. Структура данных каждого контура в структуре данных контуров соответствует конкретному сжатому изображению или в определенных случаях исходному изображению. На этапе 2757 вызывается подпрограмма «соединить контуры» для объединения любых частей более длинных контуров, разделенных разрывом, как описано выше со ссылкой на Фиг. 26, и контуров, выявленных для рассматриваемого сжатого изображения. На этапе 2758 вызывается подпрограмма «изменить масштаб контуров» для изменения масштаба определенных в сжатом изображении контуров до масштаба исходного изображения. На этапе 2760 вызывается подпрограмма «выполнить слияние контуров» для слияния всех контуров, обнаруженных во всех сжатых изображениях, а на этапе 2761 производится объединение контуров, переданных в структуру данных результатов, путем вызова подпрограммы «соединить контуры». Следует отметить, что подпрограмма «соединить контуры» считается полиморфной и принимает ссылку на структуру данных контуров и на индекс сжатого изображения, как описано на этапе 2757, или принимает один аргумент, ссылающийся на структуру данных результатов.In FIG. 27E shows a block diagram of a “merge defined circuits” routine called up at step 2708 in FIG. 27A. At step 2754, the result data structure is placed and a reference to the contour data structure is received. The for loop of steps 2756-2759 examines the data structure of each contour in the contour data structure. The data structure of each path in the path data structure corresponds to a particular compressed image or, in certain cases, the original image. At step 2757, the “connect contours” routine is called to merge any parts of longer contours separated by a gap, as described above with reference to FIG. 26, and the contours detected for the compressed image in question. At step 2758, the “resize contours” routine is called to resize the contours defined in the compressed image to the scale of the original image. At step 2760, the “perform contour merging” subroutine is called to merge all the contours found in all compressed images, and at step 2761, the contours transferred to the result data structure are merged by calling the “connect contours” subroutine. It should be noted that the “connect contours” routine is considered polymorphic and accepts a link to the contour data structure and the compressed image index, as described in step 2757, or takes one argument that refers to the result data structure.

На Фиг. 27F показана блок-схема подпрограммы «соединить контуры», вызываемой на этапе 2757 на Фиг. 27. На этапе 2764 подпрограмма получает сжатое изображение С, использующееся в качестве индекса для структуры данных контуров, ссылка на которую также передается в подпрограмму. В цикле do-while этапов 2765-2773 объединяются пары контуров, выявленных в сжатом изображении С. На этапе 2766 локальной переменной прогресс присваивается значение false (ложь). На этапе 2767 для пары контуров с конечными точками на расстоянии D одна от другой выполняется поиск выявленных контуров. Следует отметить, что для D в определенных вариантах реализации могут быть заданы параметры. При обнаружении следующей пары в соответствии с определением на этапе 2768, на этапах 2769-2771 выполняется рассмотрение с учетом конечных точек и продлений двух контуров, которое рассматривалось выше со ссылкой на Фиг. 26, чтобы определить, следует ли объединять два контура. Если обнаружено, что два контура следует объединить, то на этапе 2772 локальная переменная прогресс получает значение true (истина), и два контура объединяются, как было рассмотрено выше со ссылкой на Фиг. 26. Один из исходных контуров пары удаляется, а другой изменяется, чтобы соответствовать двум объединенным контурам. Цикл do-while этапов 2766-2773 продолжает итерации до тех пор, пока локальная переменная прогресс принимает значение true (истина), как определено на этапе 2773.In FIG. 27F shows a block diagram of a connect loop routine called in step 2757 of FIG. 27. At step 2764, the routine receives a compressed image C, which is used as an index for the contour data structure, a link to which is also passed to the routine. The do-while loop of steps 2765-2773 combines the pairs of paths identified in the compressed image C. At step 2766, the progress variable is set to false (false). At step 2767, for a pair of loops with endpoints at a distance D from one another, a search for the detected loops is performed. It should be noted that for D in certain embodiments, parameters can be set. When the next pair is detected as determined at step 2768, at steps 2769-2771, a consideration is performed taking into account the end points and the extensions of the two loops, which were discussed above with reference to FIG. 26 to determine whether two circuits should be combined. If it is found that the two loops should be combined, then at step 2772, the local variable progress is set to true (true), and the two loops are combined, as discussed above with reference to FIG. 26. One of the pair's original contours is deleted, and the other is modified to fit the two combined contours. The do-while loop of steps 2766-2773 continues to iterate until the local progress variable is set to true (true), as determined at step 2773.

На Фиг. 27G показана блок-схема подпрограммы «выполнить слияние контуров», вызываемой на этапе 2760 на Фиг. 27Е. На этапе 2776 подпрограмма получает ссылку на структуру данных результатов и на структуру данных контуров. Затем в цикле do-while этапов 2777-2785 определенные на сжатом изображении контуры объединяются со структурой данных результатов. На этапе 2778 локальной переменной прогресс присваивается значение false (ложь). На этапе 2779 в определенных контурах на сжатом изображении выполняется поиск следующего контура, не совпадающего с любым контуром, уже имеющимся в структуре данных результатов, найденный контур сохраняется в структуре данных контуров. Если в соответствии с определением на этапе 2780 такой контур обнаружен, то на этапе 2781 определяются все контуры, совпадающие с найденным контуром среди контуров, определенных в сжатом изображении. На этапе 2782 выбирается лучший из этих контуров, который и добавляется к структуре данных результатов. Для выбора лучшего контура могут использоваться различные критерии, в том числе длина. Два контура могут считаться совпадающими, если они совместно используют количество пикселей, превышающее пороговое количество пикселей, если их совпадающая часть больше пороговой доли общего числа пикселей в контурах или при иных условиях. Затем, на этапе 2783 из структуры данных контуров удаляются изначально обнаруженный контур и совпадающие контуры. На этапе 2784 локальной переменной прогресс присваивается значение true (истина). Цикл do-while повторяется до тех пор, пока на этапе 2785 локальной переменной прогресс не будет присвоено значение false (ложь).In FIG. 27G shows a block diagram of the “perform contour merge” routine called in step 2760 of FIG. 27E. At step 2776, the routine obtains a link to the result data structure and to the contour data structure. Then, in the do-while loop of steps 2777-2785, the contours defined on the compressed image are combined with the result data structure. At step 2778, the local variable progress is set to false. At step 2779, in certain contours in the compressed image, a search is made for the next contour that does not match any contour already existing in the result data structure, the found contour is stored in the contour data structure. If, according to the determination in step 2780, such a contour is detected, then in step 2781 all contours matching the found contour are determined among the contours defined in the compressed image. At step 2782, the best of these loops is selected, which is added to the result data structure. Various criteria can be used to select the best contour, including length. Two contours can be considered coincident if they share the number of pixels in excess of the threshold number of pixels, if their coincident portion is greater than the threshold fraction of the total number of pixels in the contours, or under other conditions. Then, at step 2783, the initially detected contour and matching contours are removed from the loop data structure. At step 2784, the local variable is set to true. The do-while loop repeats until, at step 2785, the local variable progress is set to false.

Хотя настоящее изобретение описывается на примере конкретных вариантов реализации, предполагается, что оно не будет ограничено только этими вариантами реализации. Специалистам в данной области техники будут очевидны возможные модификации в пределах сущности настоящего изобретения. Например, любые из множества различных параметров реализации и проектирования, в том числе модульная организация, язык программирования, аппаратная платформа, структуры управления, структуры данных и прочие параметры реализации и проектирования могут варьироваться для получения альтернативных вариантов реализации способов и систем настоящего изобретения.Although the present invention is described using specific embodiments as an example, it is contemplated that it will not be limited only to these embodiments. Possible modifications within the spirit of the present invention will be apparent to those skilled in the art. For example, any of a variety of different implementation and design parameters, including modular organization, programming language, hardware platform, control structures, data structures, and other implementation and design parameters may vary to provide alternative implementations of the methods and systems of the present invention.

Следует понимать, что представленное выше описание вариантов реализации изобретения приведено для того, чтобы дать возможность любому специалисту в данной области техники воспроизвести или применить настоящее изобретение. Специалистам в данной области техники будут очевидны возможные модификации представленных вариантов реализации, при этом общие принципы, представленные здесь без отступления от сущности и объема настоящего изобретения, могут быть применены в рамках других вариантов реализации. Таким образом, подразумевается, что настоящее изобретение не ограничено представленными здесь вариантами реализации. Напротив, в его объем входят все возможные варианты реализации, согласующиеся с раскрываемыми в настоящем документе принципами и новыми отличительными признаками.It should be understood that the above description of embodiments of the invention is provided in order to enable any person skilled in the art to reproduce or apply the present invention. Possible modifications to the presented embodiments will be apparent to those skilled in the art, while the general principles presented herein without departing from the spirit and scope of the present invention can be applied within other embodiments. Thus, it is understood that the present invention is not limited to the embodiments presented here. On the contrary, it includes all possible implementation options that are consistent with the principles and new distinguishing features disclosed in this document.

Claims (110)

1. Подсистема обработки изображений, входящая в состав устройства, прибора или системы, которые получают цифровое изображение и вводят полученное цифровое изображение в подсистему обработки изображений с целью определения контуров, включая криволинейные и прямолинейные контуры, совпадающие с границами яркости в цифровом изображении, при этом подсистема обработки изображений включает:1. The image processing subsystem, which is part of a device, device or system that receives a digital image and enters the resulting digital image into the image processing subsystem to determine the contours, including curvilinear and rectilinear contours, coinciding with the brightness boundaries in the digital image, while the subsystem image processing includes: отдельный аппаратный уровень или аппаратный уровень, используемый совместно с устройствами, приборами или системами, включающий один или более процессоров, один или более модулей памяти; иa separate hardware level or hardware level used in conjunction with devices, devices or systems, including one or more processors, one or more memory modules; and команды в машинном коде, хранящиеся в одном или более физических устройствах хранения данных, которые при выполнении одним или более из одного или более процессоров управляют подсистемой обработки изображений со следующими целями:instructions in machine code stored in one or more physical data storage devices that, when executed by one or more of one or more processors, control the image processing subsystem for the following purposes: получение цифрового изображения, иdigital image acquisition, and применение многочисленных значений параметров, регулирующих определение контуров путемapplication of numerous parameter values governing the determination of circuits by определения затравочных пикселей в пределах цифрового изображения, совпадающих с границами яркости, иdetermining the seed pixels within the digital image matching the brightness boundaries, and для каждого из множества затравочных пикселейfor each of the plurality of seed pixels построение начального контура, который включает затравочный пиксель,building an initial path that includes a seed pixel, итеративное продление обоих концов начального контура вдоль границы яркости для создания выявленного контура иiteratively extending both ends of the initial contour along the brightness boundary to create a detected contour and сохранение выявленного контура в структуре данных в памяти.storing the identified contour in the data structure in memory. 2. Подсистема обработки изображений по п. 1, отличающаяся тем, что значения параметров включают:2. The image processing subsystem according to claim 1, characterized in that the parameter values include: длину отрезка L;segment length L; максимальный угол изгиба линии α;maximum bending angle of the line α; количество бинов в гистограмме h;the number of bins in the histogram h; минимальное допустимое число точек в бине гистограммы В;the minimum allowable number of points in the bin of histogram B; значение
Figure 00000014
минимальной суммы модулей проекций; и радиус контура Re.
value
Figure 00000014
minimum sum of projection modules; and the radius of the contour R e .
3. Подсистема обработки изображений по п. 1, отличающаяся тем, что определение затравочных пикселей в пределах цифрового изображения, совпадающих с границами яркости, также включает:3. The image processing subsystem according to claim 1, characterized in that the determination of the seed pixels within the digital image that match the brightness boundaries also includes: сжатие полученного цифрового изображения для получения одного или более сжатых цифровых изображений, для которых разница в пикселях между высотой и шириной каждого сжатого цифрового изображения является для изображения меньше порогового числа пикселей;compressing the obtained digital image to obtain one or more compressed digital images for which the pixel difference between the height and width of each compressed digital image is less than the threshold number of pixels for the image; сглаживание каждого сжатого цифрового изображения;smoothing of each compressed digital image; создание карты градиента для каждого сглаженного сжатого цифрового изображения; иcreating a gradient map for each smoothed compressed digital image; and определение затравочных пикселей с использованием созданной карты градиента.determination of seed pixels using the created gradient map. 4. Подсистема обработки изображений по п. 3, отличающаяся тем, что сглаживание каждого сжатого цифрового изображения также включает применение операции сглаживания к сжатому цифровому изображению, причем операция сглаживания выбирается из следующих:4. The image processing subsystem according to claim 3, characterized in that the smoothing of each compressed digital image also includes applying a smoothing operation to the compressed digital image, the smoothing operation being selected from the following: медианная фильтрация;median filtering; свертка с гауссовым ядром; иconvolution with a Gaussian core; and свертка с ядром усреднения.convolution with averaging kernel. 5. Подсистема обработки изображений по п. 3, отличающаяся тем, что создание карты градиента для каждого сглаженного сжатого цифрового изображения также включает:5. The image processing subsystem according to claim 3, characterized in that the creation of a gradient map for each smoothed compressed digital image also includes: размещение карты градиента в памяти;placement of the gradient map in memory; для каждого пикселя сглаженного сжатого цифрового изображения,for each pixel of a smoothed compressed digital image, по каждому из трех цветовых каналов,for each of the three color channels, вычисление модуля градиента для пикселя;calculating the gradient modulus for a pixel; выбор цветового канала, для которого вычисленный модуль градиента максимален; иselection of a color channel for which the calculated gradient modulus is maximum; and помещение указания на модуль градиента и на направление градиента для выбранного цветового канала в соответствующую клетку или элемент карты градиента.placing an indication of the gradient modulus and the direction of the gradient for the selected color channel in the corresponding cell or element of the gradient map. 6. Подсистема обработки изображений по п. 5, отличающаяся тем, что вычисление модуля градиента для пикселя также включает:6. The image processing subsystem according to claim 5, characterized in that the calculation of the gradient modulus for the pixel also includes: свертку ядра Gx с цветовым каналом сглаженного сжатого цифрового изображения для получения карты горизонтальной компоненты градиента;convolution of the core G x with the color channel of the smoothed compressed digital image to obtain a map of the horizontal gradient component; свертку ядра Gy с цветовым каналом сглаженного сжатого цифрового изображения для получения карты вертикальной компоненты градиента; иconvolution of the core G y with the color channel of the smoothed compressed digital image to obtain a map of the vertical gradient component; and вычисление модуля градиента как квадратного корня из суммы значения, хранящегося в карте горизонтальной компоненты градиента пикселя, и значения, хранящегося в карте вертикальной компоненты градиента пикселя.calculating the gradient modulus as the square root of the sum of the value stored in the map of the horizontal component of the pixel gradient and the value stored in the map of the vertical component of the pixel gradient. 7. Подсистема обработки изображений по п. 5, отличающаяся тем, что помещение направления градиента для выбранного цветового канала в соответствующую клетку или элемент карты градиента также включает:7. The image processing subsystem according to claim 5, characterized in that the placement of the gradient direction for the selected color channel in the corresponding cell or element of the gradient map also includes: вычисление направления градиента путем применения функции atan2 к значению, хранящемуся в карте горизонтальной компоненты градиента пикселя, и значению, хранящемуся в карте вертикальной компоненты градиента пикселя.calculating the direction of the gradient by applying the atan2 function to the value stored in the map of the horizontal component of the pixel gradient and the value stored in the map of the vertical component of the pixel gradient. 8. Подсистема обработки изображений по п. 3, отличающаяся тем, что определение затравочных пикселей с помощью созданной карты градиента также включает:8. The image processing subsystem according to claim 3, characterized in that the determination of the seed pixels using the created gradient map also includes: свертку значений модуля градиента созданной карты с ядром подавления немаксимумов для создания карты промежуточных точек; иconvolution of the values of the gradient module of the created map with the core of non-maximum suppression to create a map of intermediate points; and применение пороговой фильтрации к карте промежуточных точек для создания карты точек, которая содержит пиксели с наибольшими значениями модулей градиента.applying threshold filtering to the map of intermediate points to create a map of points that contains pixels with the highest values of the gradient moduli. 9. Подсистема обработки изображений по п. 8, отличающаяся тем, что определение затравочных пикселей с помощью созданной карты градиента также включает:9. The image processing subsystem according to claim 8, characterized in that the determination of the seed pixels using the created gradient map also includes: сортировку обнаруженных затравочных пикселей по модулю градиента в убывающем порядке.sorting the detected seed pixels modulo the gradient in descending order. 10. Подсистема обработки изображений по п. 1, отличающаяся тем, что построение начального контура, который включает затравочный пиксель, также включает:10. The image processing subsystem according to claim 1, characterized in that the construction of the initial contour, which includes a seed pixel, also includes: определение направления контура для начального контура;determination of the direction of the contour for the initial contour; создание первого вектора с концом, совпадающим с затравочным пикселем, направлением ориентации, аналогичным определенному направлению контура, и длиной, равной значению параметра отрезка; иcreating a first vector with an end coinciding with the seed pixel, an orientation direction similar to a certain direction of the contour, and a length equal to the value of the segment parameter; and включение отрезка с конечными точками, совпадающими с началом и концом первого вектора, в многосегментный контур в качестве первого отрезка.inclusion of a segment with end points that coincide with the beginning and end of the first vector in the multi-segment contour as the first segment. 11. Подсистема обработки изображений по п. 10, отличающаяся тем, что определение направления контура для начального контура также включает:11. The image processing subsystem according to claim 10, characterized in that determining the direction of the contour for the initial contour also includes: для каждого из множества кандидатов направленийfor each of the many candidate directions создание первого вектора с концом, совпадающим с затравочным пикселем, направлением ориентации, соответствующим кандидату направления, и длиной, равной значению параметра отрезка; иcreating a first vector with an end matching the seed pixel, an orientation direction corresponding to the candidate direction, and a length equal to the value of the segment parameter; and определение среднего значения проекций градиентов пикселей, совпадающих с первым вектором, иdetermining the average value of the projections of the pixel gradients matching the first vector, and определение гистограммы градиентов пикселей, совпадающих с первым вектором;determining a histogram of pixel gradients matching the first vector; выбор в качестве итогового направления контура кандидата направления, для которого средний модуль проекций имеет наибольшее значение; иselection as the final direction of the contour of the candidate of the direction for which the average projection module is of the greatest importance; and когда итоговое направление контура совпадет с различимой границей яркости полученного цифрового изображения,when the final direction of the contour coincides with a distinguishable border of brightness of the obtained digital image, выбор в качестве направления контура итогового направления контура.selection as the contour direction of the final contour direction. 12. Подсистема обработки изображений по п. 11, отличающаяся тем, что направление итогового контура совпадает с различимой границей яркости полученного цифрового изображения, когда направление итогового контура перпендикулярно к направлению, соответствующему бину гистограммы с максимальным значением или бину гистограммы, непосредственно смежному с бином гистограммы с максимальным значением, и когда средний модуль проекций градиентов пикселей, совпадающих с первым вектором, превышает пороговую величину.12. The image processing subsystem according to claim 11, characterized in that the direction of the resulting contour coincides with a distinguishable brightness boundary of the obtained digital image, when the direction of the resulting contour is perpendicular to the direction corresponding to the histogram bin with the maximum value or the histogram bin directly adjacent to the histogram bin with the maximum value, and when the average modulus of the projections of the gradients of pixels coinciding with the first vector exceeds a threshold value. 13. Подсистема обработки изображений по п. 1, отличающаяся тем, что итеративное продление обоих концов начального контура вдоль границы яркости для создания выявленного контура также включает:13. The image processing subsystem according to claim 1, characterized in that iteratively extending both ends of the initial contour along the brightness boundary to create a detected contour also includes: итеративные для каждого конца контура, пока конец контура не прервется,iterative for each end of the circuit until the end of the circuit is interrupted, попытки определить направление границы яркости на конце контура,attempts to determine the direction of the brightness border at the end of the contour, если направление границы яркости определено, построение вектора на конце контура в направлении определенного направления границы яркости, иif the direction of the brightness border is determined, plotting a vector at the end of the path in the direction of the specific direction of the brightness border, and прерывание конца контура в противном случае, до прерывания обоих концов контура.interruption of the end of the circuit otherwise, until the interruption of both ends of the circuit. 14. Подсистема обработки изображений по п. 13, отличающаяся тем, что для направления границы яркости на конце контура вводится ограничение по наклону не более чем на угол α между ним и направлением контура на конце контура.14. The image processing subsystem according to claim 13, characterized in that for the direction of the brightness border at the end of the contour, a slope restriction of no more than an angle α between it and the contour direction at the end of the contour is introduced. 15. Подсистема обработки изображений по п. 14, отличающаяся тем, что направление контура на конце контура определяется как:15. The image processing subsystem according to claim 14, characterized in that the direction of the contour at the end of the contour is defined as: направление отрезка, совпадающего с концом контура; иthe direction of the segment coinciding with the end of the contour; and направление, определяемое среднеквадратичной аппроксимацией для итогового числа отрезков на конце контура.the direction determined by the rms approximation for the total number of segments at the end of the contour. 16. Подсистема обработки изображений по п. 1, также включающая:16. The image processing subsystem according to claim 1, also including: последующее определение контуров для каждого сглаженного сжатого изображения,subsequent determination of the contours for each smoothed compressed image, объединение пар контуров, соответствующих двум частям общей границы яркости, разделенных промежутками, длиной менее порогового значения длины; иcombining pairs of loops corresponding to two parts of a common brightness border, separated by gaps, less than a threshold length value; and объединение контуров, обнаруженных на нескольких сглаженных и сжатых изображениях.combining contours found in several smoothed and compressed images. 17. Способ обработки изображений, реализованный в подсистеме обработки изображений, входящей в состав устройства, прибора или системы, которые получают цифровое изображение и вводят полученное цифровое изображение в подсистему обработки изображений с целью определения контуров, включая криволинейные и прямолинейные контуры, совпадающие с границами яркости цифрового изображения, имеющую отдельный аппаратный уровень или аппаратный уровень, используемый совместно с другими устройствами, приборами или системами, включающий один или несколько процессоров и один или несколько модулей памяти, который включает:17. The image processing method implemented in the image processing subsystem that is part of the device, device or system that receives a digital image and enters the resulting digital image into the image processing subsystem to determine the contours, including curvilinear and rectilinear contours that match the brightness limits of the digital images having a separate hardware level or hardware level used in conjunction with other devices, devices or systems, including one or several nly processors and one or more memory modules, which includes: получение цифрового изображения;digital image acquisition; применение многочисленных значений параметров, регулирующих определение контуров;the use of numerous parameter values governing the definition of circuits; определение затравочных пикселей в пределах цифрового изображения, совпадающих с границами яркости; иthe determination of the seed pixels within the digital image that coincide with the boundaries of brightness; and для каждого из множества затравочных пикселейfor each of the plurality of seed pixels построение начального контура, который включает затравочный пиксель,building an initial path that includes a seed pixel, итеративное продление обоих концов начального контура вдоль границы яркости для создания выявленного контура иiteratively extending both ends of the initial contour along the brightness boundary to create a detected contour and сохранение выявленного контура в структуре данных в памяти.storing the identified contour in the data structure in memory. 18. Способ по п. 17, отличающийся тем, что определение затравочных пикселей в пределах цифрового изображения, совпадающих с границами яркости, также включает:18. The method according to p. 17, characterized in that the determination of the seed pixels within the digital image that match the brightness boundaries also includes: сжатие полученного цифрового изображения для получения одного или более сжатых цифровых изображений, для которых разница в пикселях между высотой и шириной каждого сжатого цифрового изображения является для изображения меньше порогового числа пикселей;compressing the obtained digital image to obtain one or more compressed digital images for which the pixel difference between the height and width of each compressed digital image is less than the threshold number of pixels for the image; сглаживание каждого сжатого цифрового изображения;smoothing of each compressed digital image; создание карты градиента для каждого сглаженного сжатого цифрового изображения; иcreating a gradient map for each smoothed compressed digital image; and определение затравочных пикселей с использованием созданной карты градиента.determination of seed pixels using the created gradient map. 19. Способ по п. 18, отличающийся тем, что создание карты градиента для каждого сглаженного сжатого цифрового изображения также включает:19. The method according to p. 18, characterized in that the creation of a gradient map for each smoothed compressed digital image also includes: размещение карты градиента в памяти;placement of the gradient map in memory; для каждого пикселя сглаженного сжатого цифрового изображения, по каждому из трех цветовых каналов,for each pixel of a smoothed compressed digital image, for each of the three color channels, вычисление модуля градиента для пикселя;calculating the gradient modulus for a pixel; выбор цветового канала, для которого вычисленный модуль градиента максимален; иselection of a color channel for which the calculated gradient modulus is maximum; and помещение указания на модуль градиента и на направление градиента для выбранного цветового канала в соответствующую клетку или элемент карты градиента.placing an indication of the gradient modulus and the direction of the gradient for the selected color channel in the corresponding cell or element of the gradient map. 20. Способ по п. 18, отличающийся тем, что определение затравочных пикселей с помощью созданной карты градиента также включает:20. The method according to p. 18, characterized in that the determination of the seed pixels using the created gradient map also includes: свертку значений модуля градиента созданной карты с ядром подавления немаксимумов для создания карты промежуточных точек; иconvolution of the values of the gradient module of the created map with the core of non-maximum suppression to create a map of intermediate points; and применение пороговой фильтрации к карте промежуточных точек для создания карты точек, которая содержит пиксели с наибольшими значениями модулей градиента.applying threshold filtering to the map of intermediate points to create a map of points that contains pixels with the highest values of the gradient moduli. 21. Способ по п. 17, отличающийся тем, что создание начального контура, который включает затравочный пиксель, также включает:21. The method according to p. 17, characterized in that the creation of the initial contour, which includes a seed pixel, also includes: определение направления контура для начального контура;determination of the direction of the contour for the initial contour; создание первого вектора с концом, совпадающим с затравочным пикселем, направлением ориентации, аналогичным определенному направлению контура, и длиной, равной значению параметра отрезка; иcreating a first vector with an end coinciding with the seed pixel, an orientation direction similar to a certain direction of the contour, and a length equal to the value of the segment parameter; and включение отрезка с конечными точками, совпадающими с началом и концом первого вектора, в многосегментный контур в качестве первого отрезка.inclusion of a segment with end points that coincide with the beginning and end of the first vector in the multi-segment contour as the first segment. 22. Способ по п. 21, отличающийся тем, что определение направления контура для начального контура также включает:22. The method according to p. 21, characterized in that the determination of the direction of the circuit for the initial circuit also includes: создание первого вектора с концом, совпадающим с затравочным пикселем, направлением ориентации, соответствующим кандидату направления, и длиной, равной значению параметра отрезка; иcreating a first vector with an end matching the seed pixel, an orientation direction corresponding to the candidate direction, and a length equal to the value of the segment parameter; and определение среднего значения проекций градиентов пикселей, совпадающих с первым вектором, иdetermining the average value of the projections of the pixel gradients matching the first vector, and определение гистограммы градиентов пикселей, совпадающих с первым вектором;determining a histogram of pixel gradients matching the first vector; выбор в качестве итогового направления контура кандидата направления, для которого средний модуль проекций имеет наибольшее значение; иselection as the final direction of the contour of the candidate of the direction for which the average projection module is of the greatest importance; and когда итоговое направление контура совпадет с различимой границей яркости полученного цифрового изображения,when the final direction of the contour coincides with a distinguishable border of brightness of the obtained digital image, выбор в качестве направления контура итогового направления контура.selection as the contour direction of the final contour direction. 23. Физическое устройство хранения данных, в котором хранятся команды в машинном коде, которые при выполнении одним или более процессорами, относящимися к аппаратному уровню подсистемы обеспечения обработки изображений, которая содержит один или более процессоров и один или более модулей памяти, которая включена в устройство, прибор или систему, получающие цифровое изображение и вводящие полученное цифровое изображение в подсистему обработки изображений, выполняют управление подсистемой обработки изображений с целью определения контуров на цифровом изображении за счет следующего:23. A physical data storage device that stores instructions in machine code that, when executed by one or more processors related to the hardware level of the image processing support subsystem, which contains one or more processors and one or more memory modules that is included in the device, a device or system that receives a digital image and enters the resulting digital image into the image processing subsystem controls the image processing subsystem to determine a moat in the digital image due to the following: получение цифрового изображения;digital image acquisition; применение многочисленных значений параметров, регулирующих определение контуров;the use of numerous parameter values governing the definition of circuits; определение затравочных пикселей в пределах цифрового изображения, совпадающих с границами яркости; иthe determination of the seed pixels within the digital image that coincide with the boundaries of brightness; and для каждого из множества затравочных пикселейfor each of the plurality of seed pixels построение начального контура, который включает затравочный пиксель,building an initial path that includes a seed pixel, итеративное продление обоих концов начального контура вдоль границы яркости для создания выявленного контура иiteratively extending both ends of the initial contour along the brightness boundary to create a detected contour and сохранение выявленного контура в структуре данных в памяти.storing the identified contour in the data structure in memory.
RU2016124833A 2016-06-22 2016-06-22 Method and system for determining expanded contours on digital images RU2628172C1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
RU2016124833A RU2628172C1 (en) 2016-06-22 2016-06-22 Method and system for determining expanded contours on digital images
US15/195,759 US10503997B2 (en) 2016-06-22 2016-06-28 Method and subsystem for identifying document subimages within digital images
US15/195,726 US10387744B2 (en) 2016-06-22 2016-06-28 Method and system for identifying extended contours within digital images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016124833A RU2628172C1 (en) 2016-06-22 2016-06-22 Method and system for determining expanded contours on digital images

Publications (1)

Publication Number Publication Date
RU2628172C1 true RU2628172C1 (en) 2017-08-15

Family

ID=59641791

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016124833A RU2628172C1 (en) 2016-06-22 2016-06-22 Method and system for determining expanded contours on digital images

Country Status (1)

Country Link
RU (1) RU2628172C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2787072C1 (en) * 2019-06-11 2022-12-28 Цзянсу Вокэйшнл Колледж Оф Агрикальче Энд Форестри Method for promptly detecting surface defects of crown caps based on image processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690842B1 (en) * 1996-10-07 2004-02-10 Cognex Corporation Apparatus and method for detection and sub-pixel location of edges in a digital image
RU2325044C1 (en) * 2007-02-21 2008-05-20 Московский государственный университет инженерной экологии Gradient method of object contour extraction at halftone raster image matrix
RU2383925C2 (en) * 2007-10-22 2010-03-10 Государственное образовательное учреждение высшего профессионального образования Курский государственный технический университет Method of detecting contours of image objects and device for realising said method
US8295607B1 (en) * 2008-07-09 2012-10-23 Marvell International Ltd. Adaptive edge map threshold

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690842B1 (en) * 1996-10-07 2004-02-10 Cognex Corporation Apparatus and method for detection and sub-pixel location of edges in a digital image
RU2325044C1 (en) * 2007-02-21 2008-05-20 Московский государственный университет инженерной экологии Gradient method of object contour extraction at halftone raster image matrix
RU2383925C2 (en) * 2007-10-22 2010-03-10 Государственное образовательное учреждение высшего профессионального образования Курский государственный технический университет Method of detecting contours of image objects and device for realising said method
US8295607B1 (en) * 2008-07-09 2012-10-23 Marvell International Ltd. Adaptive edge map threshold

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2787072C1 (en) * 2019-06-11 2022-12-28 Цзянсу Вокэйшнл Колледж Оф Агрикальче Энд Форестри Method for promptly detecting surface defects of crown caps based on image processing
RU2821377C1 (en) * 2023-05-29 2024-06-21 Федеральное государственное автономное образовательное учреждение высшего образования "Уральский федеральный университет имени первого Президента России Б.Н. Ельцина" Method of tracking objects on video

Similar Documents

Publication Publication Date Title
RU2680765C1 (en) Automated determination and cutting of non-singular contour of a picture on an image
RU2628266C1 (en) Method and system of preparing text-containing images to optical recognition of symbols
US10387744B2 (en) Method and system for identifying extended contours within digital images
US8134578B2 (en) Hybrid importance maps for content aware digital image resizing
US10366469B2 (en) Method and system that efficiently prepares text images for optical-character recognition
US8374428B2 (en) Color balancing for partially overlapping images
CN112581629A (en) Augmented reality display method and device, electronic equipment and storage medium
US12124534B2 (en) Method for generating a plurality of sets of training image data for training machine learning model
CN109636890B (en) Texture fusion method and device, electronic equipment, storage medium and product
US10902657B2 (en) Jointly editing related objects in a digital image
CN107154030A (en) Image processing method and device, electronic equipment and storage medium
CN106548455A (en) For adjusting the apparatus and method of the brightness of image
US8655100B2 (en) Correcting an artifact in an image
CN111583381A (en) Rendering method and device of game resource map and electronic equipment
US20210342972A1 (en) Automatic Content-Aware Collage
CN113506305A (en) Image enhancement method, semantic segmentation method and device for 3D point cloud data
EP4270321B1 (en) Graphic rendering method and apparatus, and storage medium
CN117897723A (en) System and method for learning tone curves for local image enhancement
RU2626661C1 (en) Method and subsystem of determining digital images of fragments containing documents
US11200708B1 (en) Real-time color vector preview generation
CN110942488B (en) Image processing device, image processing system, image processing method, and recording medium
RU2608239C1 (en) Method and system for determining suitability of document image for optical character recognition and other image processing operations
EP4350280A1 (en) Three-dimensional measurement device
RU2628172C1 (en) Method and system for determining expanded contours on digital images
RU2636097C1 (en) Method and system of preparing text-containing images to optical recognition of symbols

Legal Events

Date Code Title Description
QZ41 Official registration of changes to a registered agreement (patent)

Free format text: LICENCE FORMERLY AGREED ON 20151118

Effective date: 20171031

QC41 Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right

Free format text: LICENCE FORMERLY AGREED ON 20151118

Effective date: 20180710

PC43 Official registration of the transfer of the exclusive right without contract for inventions

Effective date: 20181121

QB4A Licence on use of patent

Free format text: LICENCE FORMERLY AGREED ON 20201211

Effective date: 20201211

QC41 Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right

Free format text: LICENCE FORMERLY AGREED ON 20201211

Effective date: 20220311