Передача данных, используя оптические коды

Иллюстрации

Показать все

Изобретение относится к средствам для передачи данных, используя оптические коды. Технический результат заключается в повышении эффективности передачи данных, используя оптические коды. Принимают значения данных для кодирования в изображении. Генерируют изображение, содержащее множество областей кодирования, при этом каждая из областей кодирования содержит соответствующее представление значения данных. Значение данных можно различать на основе любой одной из множества областей кодирования. Области кодирования размещены с выбранной из, по меньшей мере, двух плотностью в пределах изображения. Представление значения данных основано на отношении между количеством первого элемента или размером площади поверхности, занимаемой первым элементом в одной из областей кодирования, и количеством второго элемента или размером площади поверхности, занимаемой вторым элементом в одной из областей кодирования. При этом количество первого элемента и количество второго элемента представляет собой количество идентичных или разных форм в пределах заданной области. 4 н. и 12 з.п. ф-лы, 17 ил.

Реферат

Данное раскрытие относится к передаче данных, используя оптические коды.

Оптические коды часто используют для передачи данных. Например, сканер оптического кода может считывать данные, кодированные в виде штрих-кода или в виде кода быстрого отклика (QR). Однако, по меньшей мере, некоторые типы оптических кодов требуют относительно длительного времени считывания. Некоторые технологии оптического кода позволяют использовать относительно узкий диапазон положений и углов, при которых код и устройство считывания должны быть размещены относительно друг друга. Иногда также необходимо, чтобы устройство считывания оптического кода вначале фокусировалось на объекте, на котором нанесен оптический код.

В ЕР 1705595 А2 описана система, которая передает информацию о пароле, как сигнал пароля в виде движущегося изображения. Сигнал пароля движущегося изображения изменяет свой однородный цвет рамки в заданном интервале времени, в соответствии с информацией пароля.

Другие варианты оптической передачи данных могут быть предпочтительными. Это относится, по меньшей мере, к некоторым из вариантов осуществления, представленных в формуле изобретения.

Данные могут быть кодированы в виде оптического кода, используя комбинации визуально различимых свойств. В некоторых случаях данные представляют, используя отношение двух или больше свойств.

Некоторые варианты осуществления способа содержат: принимают значения данных для кодирования в изображения и генерируют изображение, при этом изображение содержит множество областей кодирования, каждая из областей кодирования содержит соответствующее представление значения данных, значение данных можно различать на основе любой одной из множества областей кодирования, области кодирования размещены с выбранной плотностью в пределах изображения, равной, по меньшей мере, двум. Генерирование изображения содержит: выбирают, на основе значения данных, изображение кодирования из набора изображений кодирования. Выбранное изображение кодирования может содержать множество элементов, расположенных в виде решетки, элементы представляют собой идентичные элементы или представляют собой разные элементы. Множество элементов могут представлять собой разноцветные формы, такие как квадраты, прямоугольники, круги, кресты, треугольники, овалы, ромбы, звезды и триграммы. Цветные формы могут иметь цвета, по меньшей мере, один из красного, синего и зеленого. Множество элементов может быть размещено в виде повторяющейся структуры в решетке. В некоторых случаях выбранное изображение содержит первый элемент при представлении значения данных, генерирующий изображения, дополнительно содержащие: выбирают, на основе значения данных, дополнительное изображение из набора изображений кодирования, выбранное дополнительное изображение, содержащее второй элемент при представлении значения данных; и комбинируют выбранное изображение и выбранное дополнительное изображение. Представление значения данных может быть основано на отношении первого элемента в одной из областей кодирования и второго элемента в одной из областей кодирования. Отношение может представлять собой отношение количества первого элемента к количеству второго элемента. Отношение также может представлять собой отношение площади поверхности, занимаемой первым элементом, к площади поверхности, занимаемой вторым элементом. В некоторых случаях изображение представляет собой одно в последовательности изображений для декодирования, каждое изображение в последовательности изображений кодирует часть фрагмента информации. Последовательность изображений может представлять собой изменяющуюся по времени последовательность, отображаемую на электронном дисплее.

Дополнительные варианты способа содержат: используют датчик изображения, получающий изображение, по меньшей мере, части изображения, представленного на поверхности, при этом изображение содержит множество областей кодирования, каждая из областей содержит соответствующее представление общего значения данных, а области кодирования расположены с выбранной плотностью в пределах изображения, равной, по меньшей мере, двум; идентифицируют первый и второй элементы в, по меньшей мере, одной из областей; и на основе идентифицированных первого и второго элементов, определяют общее значение данных. В некоторых случаях каждое из соответствующих представлений общих значений данных основано на отношении между первым элементом в представлении и вторым элементом в представлении, определение общего значения данных, содержащее: определяют отношение и определяют ассоциированное значение для отношения.

Примерные варианты осуществления системы содержат: датчик изображения; и модуль управления на основе компьютера, соединенный с датчиком изображения, модуль управления, выполненный с возможностью получения, используя датчик изображения, изображения, по меньшей мере, части изображения, показанного на поверхности, при этом изображение содержит множество областей кодирования каждой из областей, содержащей соответствующее представление общего значения данных, а области кодирования размещены с выбранной плотностью в пределах изображения, равной, по меньшей мере, двум, идентифицируют первый и второй элементы в, по меньшей мере, одной из областей, и на основе идентифицированного первого и второго элементов; определяют общее значение данных. Датчик изображения может быть выполнен с возможностью считывать изображение, без фокусирования на поверхности.

Дополнительные варианты осуществления способа содержат: идентифицируют количество первого цвета в изображении, которое было захвачено с дисплея портативного электронного устройства; идентифицируют количество второго цвета в изображении; определяют отношение количества первого цвета к количеству второго цвета; и на основе определенного отношения, определяют значение, кодированное в изображении. В некоторых вариантах осуществления количество первого цвета и второго цвета представляют собой соответствующие площади поверхности в изображении.

Дополнительные варианты осуществления содержат устройство на основе компьютера, выполненное с возможностью выполнения одного или больше раскрытых способов.

По меньшей мере, некоторые варианты осуществления раскрытых способов могут быть воплощены, используя компьютер или устройство на основе компьютера, которое выполняет одно или больше действий способа, компьютер или устройство на основе компьютера, считывающее инструкции для выполнения действий способа с одного или больше считываемых компьютером носителей информации. Считываемые компьютером носители информации могут содержать, например, один или больше из оптических дисков, компонентов энергозависимого запоминающего устройства (таких как DRAM или SRAM), или компонентов энергонезависимого запоминающего устройства (таких как приводы жесткого диска, RAM типа Flash или ROM). Считываемые компьютером носители информации не охватывают чистые переходные сигналы. Способы, раскрытые здесь, не выполняют исключительно в уме человека.

Раскрытие относится к следующим фигурам, на которых:

на фиг. 1 показана блок-схема примерного варианта выполнения оптического считывающего устройства;

на фиг. 2 показана блок-схема примерного варианта выполнения системы для использования с оптическим считывающим устройством;

на фиг. 3 показан оптический код;

на фиг. 4А-4С показаны примерные изображения;

на фиг. 5 показаны примерные изображения;

на фиг. 6 показаны примерные изображения с соответствующими структурами;

на фиг. 7 показаны примерные комбинированные изображения;

на фиг. 8А и 8В показывают участки оптических кодов;

на фиг. 9 показан примерный оптический код, в котором элементы скомпонованы в решетке;

на фиг. 10 показан примерный вариант выполнения способа для генерирования оптического кода;

на фиг. 11 показан примерный вариант выполнения другого способа для генерирования оптического кода;

на фиг. 12 показан примерный вариант выполнения способа для декодирования оптического кода;

на фиг. 13 показан примерный вариант выполнения портативного электронного устройства;

на фиг. 14 показана блок-схема примерного варианта выполнения компьютера.

На фиг. 1 показана блок-схема примерного варианта осуществления оптического считывающего устройства ПО. Считывающее устройство ПО содержит датчик 120 изображения, соединенный с модулем 130 управления считывающим устройством. Датчик 120 изображения содержит, например, датчик CCD (прибор с зарядовой связью), датчик CMOS (комплементарный металлооксидный полупроводник), или оптический датчик другого типа. В некоторых случаях датчик 120 изображения может фокусироваться на изображении; в других случаях датчик 120 изображения выполнен так, что он не имеет возможности фокусирования на изображении. Датчик 120 изображения может иметь объектив или он может выполнять свою функцию без объектива. Модуль 130 управления считывающим устройством представляет собой устройство на основе компьютера, содержащее процессор, который запрограммирован для выполнения одного или больше действий способа, раскрытого в данной заявке. Процессор может быть соединен с запоминающим устройством, в котором содержатся соответствующие инструкции для процессора. Считывающее устройство ПО записывает изображение 140. Изображение 140 появляется на дисплее портативного электронного устройства (не показано), или на другой поверхности (например, на листе бумаги).

На фиг. 2 показана блок-схема примерного варианта осуществления системы 200 для использования с оптическим считывающим устройством 210, таким как считывающее устройство ПО на фиг. 1. Операцией системы 200 управляет модуль 202 управления системой. Модуль 202 управления представляет собой устройство на основе компьютера, содержащее процессор, который запрограммирован для выполнения одного или больше действий способа, раскрытого в данной заявке. Процессор может быть соединен с запоминающим устройством, в котором содержатся соответствующие инструкции для процессора.

Как упомянуто выше, считывающее устройство 210 может считывать изображение с дисплея портативного электронного устройства 220, или с неэлектронной поверхности, такой как лист бумаги. Портативное электронное устройство 220 представляет собой устройство с дисплеем для представления изображений, например, мобильный телефон, смартфон, планшетный компьютер, компьютеризированные наручные часы (например, "интеллектуальные часы"), портативный компьютер или другое устройство. Информация, считываемая с портативного электронного устройства 220 считывающим устройством 210, может быть передана в один или больше других компонентов. Например, информация может быть передана в систему 230 управления доступом, в систему 240 управления лифтом или в базу 250 данных. Информация, считываемая считывающим устройством 210, также может быть передана в другие компоненты, которые могут выполнять конкретные действия на основе информации. В общем, считывающее устройство 210 может быть выполнено с возможностью передачи информации в любой известный компонент, для обработки информации, принятой с помощью считывания оптических кодов. Компоненты системы 200 могут быть соединены с сетью 260 любого типа.

В некоторых вариантах осуществления сеть 270 беспроводной передачи данных позволяет системе 200 передавать информацию в портативное электронное устройство 220. Например, система 220 может передавать информацию оптического кода в портативное электронное устройство 220. Система 200 может принимать инструкции для передачи информации оптического кода из хост-устройства 280 на основе компьютера.

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

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

На фиг. 3 показан оптический код 300, имеющий площадь 310. (Для ясности детальные свойства кода 300 не показаны на фиг. 3.) В этом примере так называемая область 312 кодирования содержит достаточные свойства для представления кодированной информации. Области 314, 316, 318, и 320 кодирования также каждая содержит достаточные свойства для представления кодированной информации. Как можно видеть в этом примере, области кодирования могут иметь различные размеры и положения. Две области кодирования могут также частично накладываться друг на друга, такие как области 318, 320. Область 322 представляет собой пример области кодирования, которая содержит одну или больше других областей кодирования. Информация, содержащаяся в любой одной из областей 312, 314, 316, 318, 320, 322, достаточна для обеспечения для устройства оптического считывания возможности декодировать информацию, кодированную в оптическом коде 300, даже если одна или больше других частей кода не будут видимы для устройства считывания. Часть кода может не быть видимой, поскольку, например: код может быть частично закрыт объектом (например, палец пользователя находится на части дисплея, на котором представлен код); оптический код также является настолько близким к датчику изображения устройства оптического считывания, что некоторая часть кода находится за пределами области обзора датчика; датчик изображения загрязнен или поврежден; дисплей, на котором появляется код, загрязнен или поврежден; или по другой причине. В общем, чем больше количество областей кодирования в коде, тем более вероятно, что код будет успешно считан. Хотя области кодирования, показанные на фиг. 3, все являются круглыми, области кодирования также могут иметь другие формы (например, прямоугольную, круглую, овальную, треугольную или другую форму). Хотя области, показанные на фиг. 3, каждая имеет единичные соседние области, в дополнительных вариантах осуществления область кодирования может содержать две или больше не соседних областей. Каждая из не соседних областей может не содержать сама по себе достаточно свойств для представления кодированной информации, но вместе они содержат достаточно свойств.

По меньшей мере, в некоторых вариантах осуществления количество и размещение областей кодирования оптического кода выбирают в соответствии с известными или ожидаемыми частичными областями устройства оптического считывания. Термин "чувствительные области" относится к области оптического кода, которая захватывается устройством оптического считывания. В других вариантах осуществления чувствительные области могут иметь разные формы (например, прямоугольную, круглую, овальную, треугольную или другую форму). "Минимальная чувствительная область" представляет собой наименьшую область оптического кода, которую устройство оптического считывания может захватывать, и все еще имеет достаточное количество свойств для декодирования кодированной информации. Другими словами, минимальная чувствительная область должна содержать область кодирования оптического кода. Таким образом, области кодирования оптического кода могут быть размещены так, что, независимо от того, какая часть оптического кода будет считана оптическим устройством считывания, если только эта часть является такой же большой, как минимальная чувствительная область, устройство считывания может декодировать кодированную информацию из оптического кода в любом положении в пределах кода. Конечно, во многих случаях устройство оптического считывания может захватывать настолько большую часть кода, насколько это возможно, и, таким образом, фактическая чувствительная область может быть больше, чем минимальная чувствительная область. Чувствительная область или минимальная чувствительная область могут содержать одну соседнюю область, или она может содержать две или больше не соседних областей.

При генерировании оптического кода можно предположить, что минимальная чувствительная область может не обеспечивать требуемую простоту декодирования. Например, минимальная чувствительная область может предоставлять достаточную информацию для декодирования кода, но с более медленной, чем требуемая, скоростью, или с более высокими, чем требуются затратами на вычисления. По этим причинам может использоваться несколько большая чувствительная область, чем минимальная чувствительная область (например, область, которая больше на 1, 5, 10, 15, 20% или на другую величину). При использовании таких больших размеров чувствительной области можно упростить декодирование кода.

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

На фиг. 4А показано примерное изображение 410, которое состоит из множества форм 412, 414, 416, 418, 420, 422. Хотя на штриховом чертеже это не видно, каждая из этих форм заполнена одинаковым сплошным цветом. На фиг. 4 В показано другое примерное изображение, которое состоит из множества форм, таких как формы в изображении 410. Однако, в этом случае, поверхности заполнены структурой, вместо сплошного цвета. На фиг. 4С показано другое примерное изображение 450, которое состоит из множества форм, таких, как в изображении 410. Однако, в этом случае, поверхности заполнены дополнительными формами, а именно, малыми треугольниками и малыми кругами. В дополнительных вариантах осуществления могут использоваться градиенты в изображении, включающем в себя формы, которые формируют на основе градиентов и, таким образом, которые выглядят, как формы с отсутствующими явно определенными границами.

Прямоугольник 432 на фиг. 4 В представляет минимальную чувствительную область для устройства оптического считывания, которое считывает изображение 430. В этом случае часть изображения 430 в пределах прямоугольника 432 заполнена как структурированными формами изображения 430, так и фоновым изображением 436. Присутствие форм и фонового изображения обозначает конкретные данные, которые кодированы в изображении. Прямоугольник 434 представляет другую минимальную чувствительную область для изображения 430. Также в этом случае часть изображения 430 в пределах прямоугольника 434 заполнена как структурированными формами, так и фоновым изображением 436. Чувствительная область, большая, чем минимальные чувствительные области 432, 434, аналогично могла бы охватывать участки как фонового изображения, так и структурированных форм. В случае фиг. 4 В фоновое изображение 436 может, например, представлять сплошной цвет или другую структуру.

В различных вариантах осуществления фоновое изображение для изображения не используется для кодирования данных, но используется для помощи при калибровке датчика изображения устройства оптического считывания. Фоновое изображение также может использоваться, как декорация.

Возвращаясь к фиг. 4С, каждый прямоугольник 452, 454 представляет минимальные чувствительные области для устройства оптического считывания, которое считывает изображение 450. В этом конкретном изображении соответствующее свойство представляет собой отношение количества малых треугольников к количеству малых кругов в пределах заданной области. В каждой из областей 452, 454 отношение малых кругов к малым треугольникам составляет 1:1. Устройство оптического считывания может распознавать это отношение и использовать его для идентификации изображения 450 (то есть, для различения изображения 450 от, по меньшей мере, одного другого изображения). Чувствительная область больше, чем минимальные чувствительные области 452, 454, аналогично будет охватывать участок изображения 450, в котором отношение малых кругов к малым треугольникам составляет 1:1, поскольку это свойство, в общем, является соответствующим для всего изображения 450.

В некоторых вариантах осуществления оптический код формируют путем комбинирования одного или больше изображений. На фиг. 5 показаны примерные изображения 510, 520, 530, 540, каждое из которых содержит группу форм, таких как форма 512 в изображении 510. Изображения 510, 520, 530, 540 отличаются друг от друга тем, что их формы заполнены разными структурами. На фиг. 6 показаны примерные изображения 610, 620, 630, 640, каждое из которых заполнено соответствующей структурой. На фиг. 7 показано, как выбранные изображения на фиг. 5 и 6 могут быть скомбинированы друг с другом для формирования оптических кодов. Например, изображение 710 представляет собой комбинацию изображений 510 и 610; изображение 720 представляет собой комбинацию изображений 540 и 620; изображение 730 представляет собой комбинацию изображений 530 и 630; и изображение 740 представляет собой комбинацию изображений 530 и 640. Каждое из изображений на фиг. 7 может использоваться для представления конкретного значения. Например, изображение 710 может обозначать "0", изображение 720 может обозначать "1", изображение 730 может обозначать "3", и изображение 740 может обозначать "4". Дополнительные комбинации на основе изображений на фиг. 5 и 6 также могут использоваться, и им могут быть назначены соответствующие значения.

В некоторых вариантах осуществления изображения на фиг. 5 могут быть скомбинированы с использованием фонового изображения, закрашенного сплошным цветом, вместо структурированных фоновых изображений, таких, как показаны на фиг. 6.

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

На фиг. 8А показана верхняя левая часть примерного оптического кода 810. Код 810 содержит элементы, размещенные в решетке, такие как элементы 812, 814, 816. Элементы 812, 814, 816 представляют собой квадраты, каждый из которых имеет разные структуры заполнения. Оставшиеся квадратные элементы решетки каждый имеет одну из этих структур заполнения, таким образом, что элементы 812, 814, 816 повторяют в последовательности для оптического кода 810. Конкретные используемые структуры, относительные пропорции, в которых элементы этих структур представлены в коде 810, или оба этих свойства обозначают конкретную информацию, кодированную в коде 810.

На фиг. 8В показана верхняя левая часть примерного оптического кода 820. Код 820 также содержит элементы, размещенные в решетке, такие как элементы 822, 824, 826. Эти элементы представляют собой квадраты, но они заполнены различными формами: элемент 822 содержит треугольник, элемент 824 содержит круг и элемент 826 содержит звезду. Остальные квадратные элементы решетки, каждый содержит одну из форм, такие, как элементы 822, 824, 826, повторяющиеся в последовательности на поверхности оптического кода 820. Конкретные используемые формы, относительные пропорции, в которых элементы с этими формами появляются в коде 820, или оба эти подхода, обозначают конкретную информацию, кодированную в коде 820.

На фиг. 9 показан примерный оптический код 900, в котором элементы (квадраты, заполненные цветом) размещены в решетке. Каждый из элементов в решетке представляет собой красный, зеленый или синий квадрат.(На штриховом чертеже на фиг. 9 каждый из цветов представлен разными структурами, как обозначено на фигуре.) В одном варианте осуществления элементы представляют собой квадрат приблизительно 0,2-0,3 см; другие размеры элемента также могут использоваться. Хотя в примере на фиг. 9 используются три разных цвета квадратов, в дополнительных вариантах осуществления может использоваться любое количество цветов (например, два цвета, четыре цвета, пять цветов, шесть цветов или другое количество цветов), любое количество структур заполнения, или оба эти подхода. В общем, использование меньшего количества цветов или структур означает, что цвета или структуры могут быть более различимыми друг от друга, и, таким образом, более легко различимыми устройством оптического считывания. Однако использование большего количества цветов или структур увеличивает количество информации, которая может быть кодирована в оптическом коде.

Прямоугольник 910 представляет минимальную чувствительную область для кода 900. В этом случае прямоугольник 910 имеет размер приблизительно один элемент на три элемента. Эта площадь является достаточно большой для определения отношения красного, зеленого и синего квадратов в коде 900. Конечно, больших размеров чувствительные области также можно использовать. Например, может использоваться чувствительная область, имеющая размер три элемента на три элемента. В зависимости от варианта осуществления, отношение может быть определено на основе количества квадратов, или на основе площади поверхности, занимаемой квадратами.

В некоторых случаях размер минимальной чувствительной области, по меньшей мере, частично представляет собой функцию того, какое количество разных типов элементов доступно (например, в данном примере, каково количество разных цветов квадратов). Например, если код 900 может быть построен из квадратов пяти разных цветов или десяти разных цветов, тогда прямоугольник 910 должен быть слишком малым для определения отношения всех пяти цветов или всех десяти цветов. В общем, в то время как концепция минимальной чувствительной области может быть полезной при понимании раскрываемых технологий, устройство оптического считывания не должно знать или использовать минимальную чувствительную область конкретного оптического кода при декодировании этого кода. В конкретных вариантах осуществления устройство оптического считывания запрограммировано распознавать одно или больше свойств оптического кода и, на основе распознанных свойств и их размеров, определять размер изображения. Устройство считывания может затем масштабировать изображение, если необходимо. На основе размера изображения, устройство считывания также может определять минимальную чувствительную область для оптического кода.

Код 900 может использоваться в варианте осуществления, в котором отношение установленных цветов определяет значение, кодируемое в коде. В Таблице 1, представленной ниже, показан пример схемы кодирования. В таблице "R" обозначает красный, "G" обозначает зеленый, и "В" означает синий.

При применении схемы кодирования в таблице 1 для примера кода 900, можно видеть, что код 900 содержит отношение R:G:B 1:1:1. Таким образом, код 900 интерпретируется, как кодирование значения 0.

В конкретных вариантах осуществления, в зависимости от таких факторов, как размер решетки, количество цветов, используемых для элементов решетки, и структура, используемая при размещении элементов в решетке, оптический код появляется составленным из вертикальных или горизонтальных цветных полосок, вместо отдельных квадратных элементов.

В дополнительных вариациях, в соответствии с вариантом осуществления на фиг. 9, пространства решетки заняты другими цветными формами, чем разноцветные квадраты. Например, можно использовать прямоугольники, круги, овалы, треугольники, кресты, ромбы, триграммы или другие формы.

Со ссылкой на примеры на фиг. 8А, 8В и 9, описаны варианты осуществления, в которых элементы (например, формы, квадраты, заполненные структурой, квадраты, заполненные цветом) повторяются в заданном порядке в решетке. В дополнительных вариантах осуществления элементы в решетке не повторяются в каком-либо конкретном порядке. Например, элементы могут быть размещены в решетке в случайном порядке, или в псевдослучайном порядке. Однако, по меньшей мере, в некоторых случаях, минимальная чувствительная область для изображений может быть меньшей, если элементы повторяются в данном порядке, поскольку это может помочь обеспечить то, что элементы будут распределены более равномерно в оптическом коде.

Примеры, показанные на фиг. 8А, 8В и 9, также описывают варианты осуществления, в которых заданный набор элементов повторяется вдоль рядов или вдоль столбцов в пределах решетки. Например, на фиг. 9 показана структура "красного квадрата, зеленого квадрата, синего квадрата", повторяющихся вдоль каждого ряда решетки. В дополнительных вариантах осуществления два или больше набора элементов повторяются ортогонально друг с другом в решетке. В одном примере решетка из разноцветных квадратов содержит первый набор элементов, "красный квадрат, зеленый квадрат, синий квадрат", и второй набор элементов, "черный круг, желтая звезда, градиент зеленого квадрата". Первый и второй наборы повторяются по решетке, первый и второй наборы расположены ортогонально друг с другом.

На фиг. 10 показан примерный вариант осуществления способа 1000, для генерирования оптического кода. Способ 1000 выполняется с помощью компьютера и может использоваться, в общем, для генерирования любых из вариантов осуществления оптического кода, описанных здесь. В действии 1010 способа компьютер принимает данные для кодирования оптического кода. Данные содержат, например, число, букву, слово или другую часть информации. В действии 1020, направленном на способ, компьютер генерирует изображение с множеством областей кодирования, каждая из областей содержит соответствующее представление данных. Другими словами, данные кодируют в каждой из областей кодирования таким образом, что, как описано выше, данные могут быть декодированы, используя любую из областей. В некоторых случаях оптический код передают пользователю в действии 1030 способа. Пользователь может затем представить код в устройство считывания кода.

На фиг. 11 показан примерный вариант осуществления другого способа 1100, для генерирования оптического кода. Так же как и способ 1000, способ 1100 выполняется с помощью компьютера, и может использоваться для генерирования любого из вариантов осуществления оптического кода, описанных здесь. В действии 1110 способа компьютер принимает данные для кодирования оптического кода. Данные содержат, например, число, букву, слово или другую часть информации.

В действии 1120 способа компьютер выбирает изображение из набора изображений кодирования. Изображения кодирования представляют собой изображения, которые можно использовать для представления данных. Например, изображение на фиг. 9, и другие изображения, которые описаны в связи с примером на фиг. 9, могут формировать набор изображений кодирования, из которых может быть выбрано изображение. Изображения на фиг. 4А-4С также могут сформировать такой набор. В некоторых случаях, выбранное изображение содержит, по меньшей мере, два элемента, которые представляют отношение, обозначающее кодированные данные. Например, оптический код 450 на фиг. 4С содержит малые треугольники и малые круги, которые представляют отношение. В качестве другого примера, на фиг. 9, красный, зеленый и синий квадраты представляют отношение. В других случаях присутствие определенных элементов (например, элементов определенного цвета или структуры) обозначает кодированные данные.

В некоторых вариантах осуществления изображение, выбранное в действии 1120 способа, формирует оптический код.

В некоторых вариантах осуществления, после выбора изображения, выбирают дополнительное изображение из набора изображений кодирования в действии ИЗО способа. Выбранные изображения комбинируют в действии 1140 способа для формирования оптического кода. Изображения фиг. 5 и 6 представляют собой примеры наборов изображений, из которых могут быть выбраны два изображения. На фиг. 7 показаны примеры комбинированных изображений, сформированных из изображений, показанных на фиг. 5 и 6.

Генерируется ли оптический код на основе комбинированных изображений или одного изображения, зависит от конкретного варианта осуществления. Во многих случаях, аналогичные или идентичные оптические коды могут генерироваться, используя одно или комбинированных изображения. Например, изображение на фиг. 9 можно генерировать путем комбинирования трех изображений, каждое из которых содержит наборы квадратов для соответствующего цвета. В качестве другого примера каждое изображение на фиг. 7 также может быть сохранено как единичное изображение, таким образом, что их не требуется генерировать из двух отдельных изображений при использовании.

Возвращаясь к фиг. 11, в некоторых случаях, оптический код передают пользователю в действии 1150 способа. Пользователь может затем представить код в устройство считывания кода.

На фиг. 12 показан примерный вариант осуществления способа 1200 для декодирования оптического кода. В действии 1210 способа устройство оптического считывания получает изображение, используя датчик изображения. Обычно изображение представляет собой, по меньшей мере, часть изображения, показанного на дисплее портативного электронного устройства. Однако, в некоторых вариантах осуществления, изображение находится на листе бумаги или на другой неэлектронной поверхности. Изображение содержит вариант осуществления любого из оптических кодов, раскрытых здесь. Таким образом, полученное в результате изображение содержит, по меньшей мере, одну область кодирования, и, возможно, множество областей кодирования. Заданная область кодирования может быть составлена из множества не смежных, меньших областей. В некоторых вариантах осуществления каждая из областей кодирования содержит, по меньшей мере, первый и второй элементы, отношение между элементами, представляющее общее кодированное значение данных. В других случаях присутствие конкретных элементов (например, элементов определенного цвета или структуры) обозначает кодированные данные.

В действии 1220 способа устройство оптического считывания обозначает первый и второй элементы в изображении. Это может быть выполнено, используя любой алгоритм компьютерного видения, например, алгоритмы из библиотеки компьютерного видения, такой как OpenCV.

В некоторых вариантах осуществления устройство считывания идентифицирует наибольшую область или области каждого цвета в изображении, возможно, используя функцию из библиотеки компьютерного видения. Такая технология может использоваться, например, с многоцветной решеткой на фиг. 9. После того как будет определена площадь каждого цвета, будет определено отношение площадей каждого цвета. На основе отношения определяют кодированное значение (например, используя справочную таблицу). Пример псевдокода для такого варианта осуществления (используя цвета) представлен ниже:

а = find_area (цвет = красный),

b = find_area (цвет = зеленый),

с = find_area (цвет = синий),

r = evaluate_ratio (а, b, с)

encoded_value - декодировать (r)

Другой пример псевдокода для такого варианта осуществления (используя формы) представлен ниже:

Num_shape_l = count (определить форму (крест))

Num_shape_2 = count (определить форму (квадрат))

r = evaluate_ratio (Num_shape_1, Num_shape_2)

encoded_value = decode (r)

В других вариантах осуществления устройство считывания идентифицирует определенные структуры или формы в оптическом коде. На основе таких структур или форм, представленных в коде, устройство считывания определяет кодированное значение. Пример псевдок