Библиотека · Как рассчитать

Как рассчитать разрешение камеры под размер кода

Коротко

Модуль — одна квадратная ячейка 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 MatrixBasler Data Matrix ReaderStarter: от 3 пикс. Basic: 6–20 пикс. Pro Enhanced: 2–100 пикс. Pro Maximum: 1–100 пикс.
QR CodeBasler QR Reader, сводная таблицаStarter: 2–80 пикс. Basic: 6–20 пикс. Pro: 1–100 пикс.
1D, включая Code 128Basler Barcode ReaderStarter и Basic: ширина линии от 2 пикс. Pro: от 1 пикс.
1D и 2DCognex 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 MatrixCode 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 мм эти расстояния не подходят. Запись лишь показывает, как выглядит характеристика, которую можно проверить.

Частые ошибки

Где правило ломается

Расчёт предполагает неподвижный, хорошо освещённый и резкий кадр. Страницы декодеров из таблицы выше ограничивают ещё контраст, наклон кода и полярность — тёмный код на светлом фоне или наоборот. Ограничены и промежутки между элементами, и поисковые шаблоны — фигуры, по которым декодер находит код.

Смаз отнимает пиксели, которые нужны модулю. Расфокусировка размывает края модулей, хотя число пикселей не меняется. Блики и повреждённая маркировка снижают контраст. Подробнее — в статье почему код не читается.

Минимальный элемент в калькуляторе — около 0,245 мм для Data Matrix — это лишь модуль, которому при заданном поле достаётся 6 пикселей. Это не самый мелкий код, который прочитает ваша линия. Его находят по снимкам всего реального диапазона кодов, измеряя доли успешных и ложных чтений.

Следующий шаг

Пришлите артикул считывателя, символику, размер кода и число модулей. Укажите, входит ли в размер свободная зона, каково поле в плоскости кода и какой у вас декодер. Мы пересчитаем разрешение на объекте, сверим пределы по паспорту исполнения и назовём тесты для ваших образцов.

Источники

Похожие материалы

Как подготовлен материал

Материал подготовлен MVisionPro по указанным источникам и с помощью расчётного ядра MVisionPro. Физический тест указан только там, где он действительно проводился. Как мы готовим материалы.

Статус проверки: Проверено. Обновлено 2026-10-07.