Добавил:
t.me Фулл всегда есть! А если нет, то Вы плохо его ищите! ИиКГ, СКДИКТ, ОКИТПЭС и тд https://t.me/whitedevil752 Так же веду разработку КД (конструкторской документации) согласно ГОСТ. Имеется опыт работы при производстве на одном из ведущих в области радиэлектроники предприятии. Пишите) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pr3

.docx
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
122 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций

Российской Федерации

Федеральное государственное бюджетное образовательное

учреждение высшего образования

«Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М. А. Бонч-Бруевича»

_____________________________________________________________________________

Кафедра РАДИОТЕХНИКИ

Дисциплина «Технологии распознавания изображений и компьютерное зрение»

Практическая работа №3

«Сканирование шрих-кода»

Выполнили: студенты группы РТ-22,

бригада № 6

Спица М.А.

Стулин П.А.

Сараева Л.В.

Швецов Ф.П.

Проверил: к.т.н. доцент каф. РТ,

Коровин К.О.

________________________

Санкт-Петербург

2026

Задание 1: Считывание штрих-кода

European Article Number, EAN (европейский номер товара), в дальнейшем после распространения известный также как международный артикул (International Article Number) — европейский стандарт штрихкода, предназначенный для кодирования идентификатора товара и производителя. Является надмножеством американского стандарта UPC.

EAN-13 — кодируется 13 цифр (12 значащих + 1 контрольная сумма).

Первая цифра определяется первой (левой) группой, кодирование приведено на рисунке:

Графические различия L-кода, R-кода и G-кода состоят в следующем. Для каждой цифры это одна и та же комбинация чёрно-белых штрихов, L-код отличается от R-кода лишь фотографически негативным исполнением, а G-код отличается от R-кода реверсивным (зеркальным) исполнением. Кодирование цифр приведено в таблице

Исходные данные:

Рис.1 Штрихкод EAN-13 данный для сканирования

Результат работы скрипта:

Группа: 1 Левая часть: 8 3 9 5 6 8 Правая часть часть: 3 5 9 1 5 7

Shape1

Рис.2 Перевернутый штрихкод EAN-13 данный для сканирования

Результат работы скрипта:

Группа: 1 Левая часть: 8 3 9 5 6 8 Правая часть часть: 3 5 9 1 5 7

Рис.3 Альтернативный штрихкод EAN-13 данный для сканирования

Результат работы скрипта:

Группа: 3 Левая часть: 5 6 4 8 7 3 Правая часть часть: 1 1 6 7 5 8

Листинг кода MATLAB:

clc

clear all

close all

%%% Задание 1: считывание штрих кода и раскодирование

a=imread('barcode.jpg');

a=rgb2gray(a);

r=size(a,1)/2;

g=0;

for i=1:size(a,2)

if a(r,i)<=5

g=g+1;

end

if (g>0)&(a(r,i)>0)

break

end

end

for u=1:size(a,2)

if a(r,u)<=5

b=u;

break

end

end

for u=1:size(a,2)

if a(r,u)<=5

d=u;

end

end

c=0;

for ii=(b+3*g):g:((d-3*g))

if a(r,ii)<=5

c=c+1;

m(c)=1;

else

c=c+1;

m(c)=0;

end

end

n=6;

v=n*7;

m1=reshape(m(1:v),7,n);

m2=reshape(m(v+6:end),7,n);

hh=0;

herr=0;

while hh<2

for k=1:size(m1,2)

num1=strjoin(arrayfun(@num2str,m1(:,k), 'UniformOutput', false), '');

switch (num1)

case '0001101'

f=0; h='L';

case '0011001'

f=1; h='L';

case '0010011'

f=2; h='L';

case '0111101'

f=3; h='L';

case '0100011'

f=4; h='L';

case '0110001'

f=5; h='L';

case '0101111'

f=6; h='L';

case '0111011'

f=7; h='L';

case '0110111'

f=8; h='L';

case '0001011'

f=9; h='L';

case '0100111'

f=0; h='G';

case '0110011'

f=1; h='G';

case '0011011'

f=2; h='G';

case '0100001'

f=3; h='G';

case '0011101'

f=4; h='G';

case '0111001'

f=5; h='G';

case '0000101'

f=6; h='G';

case '0010001'

f=7; h='G';

case '0001001'

f=8; h='G';

case '0010111'

f=9; h='G';

end

fitog1(k)=f;

type(k)=h;

end

switch (type)

case 'LLLLLL'

c=0; hh=0;

case 'LLGLGG'

c=1; hh=0;

case 'LLGGLG'

c=2; hh=0;

case 'LLGGGL'

c=3; hh=0;

case 'LGLLGG'

c=4; hh=0;

case 'LGGLLG'

c=5; hh=0;

case 'LGGGLL'

c=6; hh=0;

case 'LGLGLG'

c=7; hh=0;

case 'LGLGGL'

c=8; hh=0;

case 'LGGLGL'

c=9; hh=0;

otherwise

hh=1;

end

for kk=1:size(m2,2)

num2=strjoin(arrayfun(@num2str,m2(:,kk), 'UniformOutput', false), '');

switch (num2)

case '1110010'

f=0;

case '1100110'

f=1;

case '1101100'

f=2;

case '1000010'

f=3;

case '1011100'

f=4;

case '1001110'

f=5;

case '1010000'

f=6;

case '1000100'

f=7;

case '1001000'

f=8;

case '1110100'

f=9;

end

fitog2(kk)=f;

end

if hh==1

mb=fliplr(m);

m1=reshape(mb(1:v),7,n);

m2=reshape(mb(v+6:end),7,n);

herr=herr+1

else

break

end

if herr>1

disp('переворот не сработал')

break

end

end

disp('Группа: ')

disp(c)

disp('Левая часть: ')

disp(fitog1)

disp('Правая часть часть: ')

disp(fitog2)

%%% Графики

figure(10),

imshow(a); title('Штрих-код')

Соседние файлы в предмете Технологии распознавания изображений и компьютерное зрение