Библиотека · Как рассчитать
Как рассчитать разрешение камеры под размер кода
Коротко
Модуль — одна квадратная ячейка 2D-кода или самый узкий штрих линейного кода. Чтобы найти его размер, отбросьте свободную зону (чистое поле вокруг кода) и разделите оставшуюся ширину на число модулей по той же оси. Нужное разрешение камеры рассчитайте по диапазону пикселей на модуль из документации своего декодера. С установленным объективом проверьте оба края диапазона, если верхний указан, и измерьте долю успешных чтений на своих кодах. Движение, фокус, свет и качество печати в этот расчёт не входят.
Где взять число пикселей на модуль
Число пикселей на модуль показывает, сколько пикселей изображения укладывается в один модуль по рассчитываемой оси.
Стандарты ISO на символики, то есть на виды кодов, такого числа не дают. Это ISO/IEC 16022:2024 (Data Matrix), ISO/IEC 18004:2024 (QR Code) и ISO/IEC 15417:2007 с изменением 2026 года (Code 128). Они описывают характеристики кода, размеры, декодирование и связанные параметры (нормативные документы). Число пикселей на модуль задаёт декодер — программа, которая читает код. Оно меняется с версией и режимом декодера.
Сначала точно найдите размер модуля
У QR Code версии 3 по стороне 29 модулей. При модуле 0,254 мм сторона кода — 29 × 0,254 ≈ 7,37 мм (DENSO WAVE, документация производителя).
Первая ловушка — свободная зона. Данных в ней нет, но место на детали она занимает. DENSO WAVE просит оставлять у QR по четыре чистых модуля с каждой стороны. Тогда тот же код занимает 37 модулей, или 37 × 0,254 ≈ 9,40 мм (рассчитано). Если разделить полный размер с полями на 29, модуль получится завышенным на 27,6 % (рассчитано по исходным данным).
Вторая ловушка — угадать матрицу. Data Matrix со стороной 10 мм не обязательно состоит из 22 × 22 модулей. Число модулей зависит от данных, способа кодирования и коррекции ошибок. Возьмите его из спецификации на маркировку или посчитайте на заведомо хорошем образце. Допустимые размеры и качество печати ищите в таблицах спецификации символики (руководство GS1 2D in retail, нормативный документ). Модуль или узкий штрих в этих таблицах называют размером X (X-dimension).
Какие пределы публикуют декодеры
| Тип кода | Декодер | Пределы, пикселей на модуль (документация производителя) |
|---|---|---|
| Data Matrix | Basler Data Matrix Reader | Starter: от 3 пикс. Basic: 6–20 пикс. Pro Enhanced: 2–100 пикс. Pro Maximum: 1–100 пикс. |
| QR Code | Basler QR Reader, сводная таблица | Starter: 2–80 пикс. Basic: 6–20 пикс. Pro: 1–100 пикс. |
| 1D, включая Code 128 | Basler Barcode Reader | Starter и Basic: ширина линии от 2 пикс. Pro: от 1 пикс. |
| 1D и 2D | Cognex DataMan 503 с объективом 25 мм, карты чтения | 1D: от 1,2 пикс. 2D: от 2,5 пикс. |
Если в документации есть только минимум, верхний предел не придумывайте.
Цифры Cognex верны только для серии DataMan 503 с объективом 25 мм (DataMan Fixed-Mount Reference Manual, редакция 25.4.1.1 от 17.12.2025, с. 147).
Страница Basler о QR противоречит сама себе. В её сводной таблице для Basic указано 6–20 пикселей, а в абзаце о поиске кода — 2–100. Берите цифры своей установленной версии и проверяйте их на тестовом наборе кодов.
Сколько пикселей нужно для Data Matrix 10 мм и Code 128
Камера в обоих случаях — MV-CA050-12UM, 2448 × 2048 пикселей размером 3,45 мкм (из паспорта). Камера служит исходными данными для расчёта; это не рекомендация считывателя.
Рабочее расстояние отсчитывают не от корпуса камеры, а от главной плоскости объектива — опорной плоскости формулы тонкой линзы. Поле зрения — участок, который камера видит в плоскости кода. Разрешение на объекте — сколько пикселей изображения приходится на миллиметр этого поля.
| Шаг | Data Matrix | Code 128 | Откуда число |
|---|---|---|---|
| Код | сторона 10 мм без свободной зоны, 22 × 22 модуля | узкий штрих 0,5 мм | допущение |
| Рабочее расстояние | 500 мм | 300 мм | допущение |
| Заданное поле зрения | 100 × 83,7 мм | 50 × 41,8 мм | допущение |
| Модуль или узкий штрих | 0,455 мм | 0,5 мм | рассчитано / допущение |
| Предел декодера (Basler Basic) | 6–20 пикс. на модуль | ширина линии от 2 пикс. | документация производителя |
| Нужно пикселей по ширине поля | 1320 пикс. | 200 пикс. | рассчитано |
| Разрешение при заданном поле | 24,5 пикс./мм | 49,0 пикс./мм | рассчитано |
| Модуль в кадре | 11,1 пикс. | 24,5 пикс. | рассчитано |
| Стандартный объектив и его поле | 35 мм, 112,2 мм | 35 мм, 63,9 мм | рассчитано |
| Разрешение с этим объективом | 21,8 пикс./мм | 38,3 пикс./мм | рассчитано |
| Модуль с этим объективом | 9,9 пикс. | 19,1 пикс. | рассчитано |
| Сверка с пределами декодера | внутри 6–20 пикс. | больше 2 пикс. | документация производителя |
Модуль Data Matrix — 10 ÷ 22 ≈ 0,455 мм (рассчитано). При шести пикселях на модуль код занимает в кадре 132 пикселя (рассчитано). Для Code 128 два пикселя на узкий штрих 0,5 мм дают 4 пикселя на миллиметр (рассчитано). Ширину этикетки вместо узкого штриха брать нельзя: ширина штрихкода зависит от содержимого и свободных зон.
В обоих случаях калькулятор берёт стандартный объектив с фокусным расстоянием 35 мм. Его поле шире заданного, поэтому разрешение на объекте падает. Документированные пределы декодеров всё равно соблюдены.
Эти поля — оценка по формуле тонкой линзы. После фокусировки измерьте настоящее поле и пересчитайте разрешение на объекте, как описано в статье о выборе объектива при заданном рабочем расстоянии.
Минимумы 1320 и 200 пикселей посчитаны для разных полей, элементов кода и условий декодера. Сравнивать по ним камеры или типы кодов нельзя.
Рассчитать для своего случая
Откройте пример с Data Matrix или пример с Code 128. В ссылках уже стоят входные данные примеров. Замените камеру, поле и расстояние на свои. Формулы объяснены на справочной странице о поле зрения.
В размер элемента вводите модуль или узкий штрих. Если ввести весь код 10 мм, калькулятор ответит на другой вопрос.
Кнопки быстрого выбора дают 3, 5, 10 и 16 пикселей на элемент. Другое значение от 2 до 20 впишите в параметр nPx прямо в ссылке. Значения вне этого диапазона, например 1,2 или 100 пикселей, считайте вручную. Нужное число пикселей по оси = ширина поля ÷ размер модуля × пикселей на модуль. Фактическое число пикселей на модуль = размер модуля × пикселей сенсора по оси ÷ ширина поля.
В обеих ссылках скорость линии — 0 мм/с. Укажите реальную скорость, и калькулятор покажет самую длинную выдержку (время накопления кадра), при которой смаз остаётся в допуске. Подробнее — в статье о выдержке, смазе и импульсной подсветке.
Что должен указывать паспорт считывателя
Дальность чтения в паспорте считывателя должна быть привязана к символике и размеру X. У MV-IDH9000B в паспорте указано 1280 × 1024 пикселей. Для Data Matrix с размером X 5 мил у этого исполнения указана дальность 5–79 мм (из паспорта). Мил — тысячная доля дюйма. К примерам на 300 и 500 мм эти расстояния не подходят. Запись лишь показывает, как выглядит характеристика, которую можно проверить.
Частые ошибки
- Не включайте свободную зону в размер кода. В примере с QR модуль от этого выходит завышенным на 27,6 %.
- Берите пределы своего декодера. Минимум другого продукта — 1,2 пикс., 2 пикс., 2,5 пикс., 3 пикс. или 6 пикс. — к вашему не переносится.
- Проверяйте оба края диапазона. Самый мелкий модуль сверяйте с минимумом, а самый крупный при самом узком поле — с максимумом, если он есть. В режиме Basic у Basler Data Matrix модуль крупнее 20 пикселей уже вне документированного диапазона.
- Правило 16 пикселей на высоту знака в нашем калькуляторе — для распознавания текста, а не для модулей. Разрешение сенсора ничего не говорит о пикселях на модуль, пока неизвестно поле в плоскости кода.
- Успешное чтение — ещё не класс качества. Декодирование извлекает данные из одного кадра. Верификация оценивает качество самого кода по заданной методике.
Где правило ломается
Расчёт предполагает неподвижный, хорошо освещённый и резкий кадр. Страницы декодеров из таблицы выше ограничивают ещё контраст, наклон кода и полярность — тёмный код на светлом фоне или наоборот. Ограничены и промежутки между элементами, и поисковые шаблоны — фигуры, по которым декодер находит код.
Смаз отнимает пиксели, которые нужны модулю. Расфокусировка размывает края модулей, хотя число пикселей не меняется. Блики и повреждённая маркировка снижают контраст. Подробнее — в статье почему код не читается.
Минимальный элемент в калькуляторе — около 0,245 мм для Data Matrix — это лишь модуль, которому при заданном поле достаётся 6 пикселей. Это не самый мелкий код, который прочитает ваша линия. Его находят по снимкам всего реального диапазона кодов, измеряя доли успешных и ложных чтений.
Следующий шаг
Пришлите артикул считывателя, символику, размер кода и число модулей. Укажите, входит ли в размер свободная зона, каково поле в плоскости кода и какой у вас декодер. Мы пересчитаем разрешение на объекте, сверим пределы по паспорту исполнения и назовём тесты для ваших образцов.
Источники
- MVisionPro engineering calculator and Hikrobot catalog records (datasheet fields); calculations, the tool page and the public API were verified on 2026-09-21
- ISO/IEC 16022:2024 (Data Matrix symbology): https://www.iso.org/standard/80926.html (checked 2026-09-21)
- ISO/IEC 18004:2024 (QR Code symbology): https://www.iso.org/standard/83389.html (checked 2026-09-21)
- ISO/IEC 15417:2007 with Amendment 1:2026 (Code 128): https://www.iso.org/standard/43896.html, https://www.iso.org/standard/87124.html (checked 2026-09-21)
- DENSO WAVE QR Code guidance (symbol version plus module size sets symbol size, worked as 29 modules × 0.254 mm = 7.366 mm; four-module margin on all sides adds eight module widths to the side length): https://www.qrcode.com/en/howto/code.html (checked 2026-09-21)
- GS1 2D in retail implementation guideline, Release 1.1.0 (implementers are directed to the applicable symbol specification tables for conformant X-dimension, size and quality): https://ref.gs1.org/guidelines/2d-in-retail/ (checked 2026-09-21)
- Basler Data Matrix Code Reader vTool (Starter at least 3 px module side; Basic 6–20 px; Pro Enhanced 2–100 px; Pro Maximum 1–100 px): https://docs.baslerweb.com/data-matrix-code-reader-vtool (checked 2026-09-21)
- Basler QR Code Reader vTool (summary table: Starter 2–80 px, Basic 6–20 px, Pro 1–100 px; the Basic detection paragraph on the same page states 2–100 px): https://docs.baslerweb.com/qr-code-reader-vtool (checked 2026-09-21)
- Basler Barcode Reader vTool (minimum line width 2 px for Starter and Basic, 1 px for Pro): https://docs.baslerweb.com/barcode-reader-vtool (checked 2026-09-21)
- Cognex DataMan Fixed-Mount Reference Manual, revision 25.4.1.1 dated 2025-12-17, DataMan 503 Series with 25 mm lens, p. 147 (scan-map minima of 1.2 px per module for 1-D codes and 2.5 px per module for 2-D codes): https://docs.cognex.com/dmst_2541/EN/DataManFixedMountReference.pdf, https://docs.cognex.com/dmst_2541/web/EN/Fixed_Mount_Manual/Content/Topics/FMREF/DataMan503/DataMan503ScanMap25mmLens.htm (checked 2026-09-21)
Похожие материалы
- Почему код не читается и что проверить первым
- Как выбрать промышленный считыватель кодов: стационарный или ручной, этикетка или прямая маркировка
- Как рассчитать фокусное расстояние и поле зрения, когда рабочее расстояние задано станком
- Как рассчитать выдержку для движущейся детали и решить, нужна ли импульсная подсветка
Как подготовлен материал
Материал подготовлен MVisionPro по указанным источникам и с помощью расчётного ядра MVisionPro. Физический тест указан только там, где он действительно проводился. Как мы готовим материалы.
Статус проверки: Проверено. Обновлено 2026-10-07.