Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Дмитрий Коняев ([info]dimchansky)
@ 2005-04-08 15:58:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Штрих-код и 666
Спецу по штрих-кодам (на форуме rsdn.ru известному под ником Кодт), в свете происходящей дискуссии задал вопрос:

Некоторые христиане очень сильно заморачиваются над тремя шестёрками в штрих-кодах. Почему они заморачиваются - это другой вопрос. Меня интересует чисто техническая сторона дела. В стандарте EAN-13, как я понял, крайние полосы безопасности - это компьютеная шестёрка, а средняя - это не шестерка или как? Заодним, не могли бы разъяснить, как дела обстоят в других стандартах штрих-кодов? Там ведь шестёрками и не пахнет?
Можете как-то прокомментировать это "математическое исследование" штрих-кода EAN-13:
http://www.pravoslavie.ru/shengen/soloviev.htm


Получил такой ответ:
Привет, Дмитрий!

Разъясняю ситуацию:
какому-то сумрачному человеку захотелось рассказать страшилки на ночь.
Что он и делает, ища 666 где ни попадя.

Впрочем, чтобы развеять сомнения:

Guard Pattern не несёт числовой информации - она вся сосредоточена в основных частях штрихкода.
Всё, что понаписано про логику работы сканера - бред.
Сканер штрихкода, в отличие от сканеров изображений, не транслирует в компьютер сырую картинку.

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

Кстати, а с чего вдруг считается, что цвет пробела 0, а цвет штриха 1 ?
По градациям яркости всё наоборот: чёрный это 0.

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

Во всяком случае, когда я для своих нужд сделал софтверный сканер штрихкода (простенькая прога на VB6) - именно широтная модуляция оказалась The best.

Кстати говоря, а почему ....|.|.XXXXXX.|.|.XXXXXX.|.|.....
расценивается как шестёрки?! Между прочим, помимо ограждения, слева и справа есть здоровенные зоны стабилизации - белые, то есть якобы это серии нулей. Переводя в десятичную систему счисления, мы получим какие-то безумные степени двойки, умноженные на 5 (101b).

P.S.
А почему вообще возник такой _нездоровый_ :) интерес?
Нужно какого-то упёртого бесоискателя успокоить?

Кстати, кто ищет, тот всегда найдёт.
Ищущий бога - найдёт бога. Ищущий хвост и копыта - соответственно. ;-\

Николай

P.P.S.
Говорят, староверы очень не любят имя "Николай" - там в конце собачий лай. А собака - якобы, нечистое животное.
Поэтому, если будешь ссылаться на мои слова - говори "Микола" :)))
Image


(Добавить комментарий)


[info]_vasilisa_@lj
2005-04-08 11:13 (ссылка)
:))

(Ответить) (Ветвь дискуссии)


[info]vatslav@lj
2005-04-08 21:59 (ссылка)
Так будет выглядеть код EAN-13, если все цифры -- шестерки.
Image

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dimchansky@lj
2005-04-15 10:59 (ссылка)
Сразу пару вариантов.

Все тройки:
Image

Все шестёрки:
Image

(Ответить) (Уровень выше)