Системы считывания штрихового кода на основе соответствующих алгоритмов декодирования позволяют считывать несовершенные символы Code 39. В настоящем подразделе приведен следующий рекомендуемый алгоритм декодирования, используемый при определении значения параметра "декодируемость", указанного в ISO/IEC 15416:
a) подтверждают наличие начальной свободной зоны;
b) для каждого знака символа, включая знаки START и STOP:
1) измеряют совокупную ширину пяти штрихов и четырех пробелов ();
2) вычисляют пороговое значение ;
3) сравнивают ширину каждого элемента этого знака со значением . Если ширина элемента превышает , то элемент считают широким, в противном случае - узким;
4) определяют соответствие комбинации широких и узких элементов действительному знаку из допустимого набора;
c) первый считанный знак символа должен быть знаком START/STOP, по нему определяют направление считывания;
d) продолжают считывание знаков до тех пор, пока не будет обнаружен действительный знак STOP/START (отличный от первого знака);
e) подтверждают наличие конечной свободной зоны.