рдмрд╛рд░рдХреЛрдб рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!

рдПрдХ рдЖрдзреБрдирд┐рдХ рд╡реНрдпрдХреНрддрд┐ рд╣рд░ рджрд┐рди рдмрд╛рд░рдХреЛрдб рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛ред рдЬрдм рд╣рдо рд╕реБрдкрд░рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рдЙрддреНрдкрд╛рдж рдЦрд░реАрджрддреЗ рд╣реИрдВ, рддреЛ рдмрд╛рд░рдХреЛрдб рдХреА рдорджрдж рд╕реЗ рдЙрдирдХреЗ рдХреЛрдб рдареАрдХ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд╛рд░реНрд╕рд▓, рдЧреЛрджрд╛рдореЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рди, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдЖрдЧреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдо рд╣реА рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдмрд╛рд░рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИ?



рдЖрдЗрдП рдЗрд╕реЗ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЙрд╕реА рд╕рдордп рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХрд╛ рдбрд┐рдХреЛрдбрд░ рд▓рд┐рдЦреЗрдВрдЧреЗред

рдкрд░рд┐рдЪрдп


рдмрд╛рд░рдХреЛрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рд▓рдВрдмрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд░рд╣рд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░рдпрд╛рд╕ 1950 рдХреЗ рджрд╢рдХ рдореЗрдВ рд╡рд╛рдкрд╕ рд╢реБрд░реВ рд╣реБрдЖ, 1952 рдореЗрдВ рдПрдХ рдХреЛрдб рд░реАрдбрд░ рдХреЗ рд▓рд┐рдП рдкреЗрдЯреЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд░реЗрд▓рд╡реЗ рдкрд░ рдХрд╛рд░реЛрдВ рдХреА рдЫрдВрдЯрд╛рдИ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЗрдВрдЬреАрдирд┐рдпрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рдерд╛ - рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рдирд╛ рдФрд░ рдлреЛрдЯреЛрдХрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдирд╛ред 1962 рдореЗрдВ, рдЕрдореЗрд░рд┐рдХреА рд░реЗрд▓рд╡реЗ ( рдХрд╛рд░рдЯреНрд░рд╛рдХ рд╕рд┐рд╕реНрдЯрдо) рдкрд░ рдХрд╛рд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдХреЛрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ , 1968 рдореЗрдВ рд╕рд░реНрдЪрд▓рд╛рдЗрдЯ рдХреЛ рд▓реЗрдЬрд░ рдмреАрдо рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рд╕реЗ рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рдФрд░ рдкрд╛рдардХ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рд╣реЛ рдЧрдпрд╛ред 1973 рдореЗрдВ, "рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдЙрддреНрдкрд╛рдж рдХреЛрдб" рдкреНрд░рд╛рд░реВрдк рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдФрд░ 1974 рдореЗрдВ рдПрдХ рд╕реБрдкрд░рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рдХреЛрдб рд╕реНрдХреИрдирд░ (Wrigley's chewing gum is the United States;) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣рд▓рд╛ рдЙрддреНрдкрд╛рдж рдмреЗрдЪрд╛ рдЧрдпрд╛ред 1984 рдореЗрдВ, рджреБрдХрд╛рдиреЛрдВ рдХреЗ рдПрдХ рддрд┐рд╣рд╛рдИ рдиреЗ рд╕реНрдЯреНрд░реАрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд░реВрд╕ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ 90 рдХреЗ рджрд╢рдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╢реБрд░реВ рд╣реБрдЖред

рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдб рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдХреНрд░рдо "12345678" рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ):



рдЪрд▓рд┐рдП рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ "рдХреЛрдб -128" рдлреЙрд░реНрдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдЧрд╛ - рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЗрд╕рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╕реАрдзрд╛ рд╣реИред рдЬреЛ рд▓реЛрдЧ рдЕрдиреНрдп рдкреНрд░рдЬрд╛рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реЗ рдПрдХ рдСрдирд▓рд╛рдЗрди рдЬрдирд░реЗрдЯрд░ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдмрд╛рд░рдХреЛрдб рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрдиреБрдХреНрд░рдо рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддрдп рдХреА рдЧрдИ рд╣реИ:



1 - рдХреЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рдЬрдЧрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
2 - рдкреНрд░рддреАрдХ рд╢реБрд░реВ рдХрд░реЛред рдХреЛрдб -128 рдХреЗ рд▓рд┐рдП, 3 рд╡рд┐рдХрд▓реНрдк рд╕рдВрднрд╡ рд╣реИрдВ (рдП, рдмреА рдФрд░ рд╕реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ): 11010000100, 11010010000 рдпрд╛ 11010011100, рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рдХреЛрдб рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ (рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рджреЗрдЦреЗрдВ)ред
3 - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ
4 - рдЪреЗрдХрд╕рдо
5 - рдкреНрд░рддреАрдХ рдмрдВрдж рдХрд░реЛред рдХреЛрдб -128 рдХреЗ рд▓рд┐рдП, рдпрд╣ 1100011101011 рд╣реИред
6 (1) - рдЦрд╛рд▓реА рд╕реНрдерд╛рдиред

рдЕрдм рдмрд┐рдЯреНрд╕ рдХреЛ рдХреИрд╕реЗ рдПрдирдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рдпрджрд┐ рдЖрдк "1" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдкрддрд▓реА рд░реЗрдЦрд╛ рдХреА рдЪреМрдбрд╝рд╛рдИ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдбрдмрд▓-рдЪреМрдбрд╝рд╛рдИ рд▓рд╛рдЗрди рдХреЛрдб "11", рдПрдХ рдЯреНрд░рд┐рдкрд▓ "111", рдФрд░ рдЗрд╕реА рддрд░рд╣ рджреЗрдЧрд╛ред рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдЙрд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ "0" рдпрд╛ "00" рдпрд╛ "000" рд╣реЛрдЧрд╛ред рдЬреЛ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдирд┐рдпрдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд┐рдЯ рдХреНрд░рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ


рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрд▓реНрдЧреЛрд░рд┐рджрдорд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдиреАрдЪреЗ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдЗрд╖реНрдЯрддрдо рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╕ рд╕реНрдЯрдбреА рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВ, рдЗрд╕реЗ рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рдлреИрд▓рд╛рдПрдВ, рдЫрд╡рд┐ рдХреЗ рдордзреНрдп рд╕реЗ рдПрдХ рдХреНрд╖реИрддрд┐рдЬ рд░реЗрдЦрд╛ рд▓реЗрдВ, рдЗрд╕реЗ b / w рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВред

from PIL import Image import numpy as np import matplotlib.pyplot as plt image_path = "barcode.jpg" img = Image.open(image_path) width, height = img.size basewidth = 4*width img = img.resize((basewidth, height), Image.ANTIALIAS) hor_line_bw = img.crop((0, int(height/2), basewidth, int(height/2) + 1)).convert('L') hor_data = np.asarray(hor_line_bw, dtype="int32")[0] 

рдмрд╛рд░рдХреЛрдб рдкрд░, "1" рдХрд╛рд▓реЗ рд░рдВрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ RGB рдореЗрдВ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, 0, рдЗрд╕рд▓рд┐рдП рд╕рд░рдгреА рдХреЛ рдЙрд▓реНрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕реА рд╕рдордп, рд╣рдо рдФрд╕рдд рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред

 hor_data = 255 - hor_data avg = np.average(hor_data) plt.plot(hor_data) plt.show() 

рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдмрд╛рд░рдХреЛрдб рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдЕрдм рдЖрдкрдХреЛ рдПрдХ "рдмрд┐рдЯ" рдХреА рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрдХреНрд░рдо "1101" рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдордзреНрдп рд░реЗрдЦрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреНрд░рд╛рдл рдХреЗ рд╕рдВрдХреНрд░рдордг рдХреЗ рдХреНрд╖рдгреЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВред

 pos1, pos2 = -1, -1 bits = "" for p in range(basewidth - 2): if hor_data[p] < avg and hor_data[p + 1] > avg: bits += "1" if pos1 == -1: pos1 = p if bits == "101": pos2 = p break if hor_data[p] > avg and hor_data[p + 1] < avg: bits += "0" bit_width = int((pos2 - pos1)/3) 

рд╣рдо рдХреЗрд╡рд▓ рдордзреНрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдХреЛрдб "1101" рдХреЛ "101" рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдЗрд╕рдХреА рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЕрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рдХреЛрдбрд┐рдВрдЧред рд╣рдо рдордзреНрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЧрд▓рд╛ рд╕рдВрдХреНрд░рдордг рдкрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдореИрдЪ рдирд┐рд░рдкреЗрдХреНрд╖ рдирд╣реАрдВ рд╣реИ (рдХреЛрдб рдереЛрдбрд╝рд╛ рдШреБрдорд╛рд╡рджрд╛рд░ рдпрд╛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рд╣рдо рдЧреЛрд▓рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

 bits = "" for p in range(basewidth - 2): if hor_data[p] > avg and hor_data[p + 1] < avg: interval = p - pos1 cnt = interval/bit_width bits += "1"*int(round(cnt)) pos1 = p if hor_data[p] < avg and hor_data[p + 1] > avg: interval = p - pos1 cnt = interval/bit_width bits += "0"*int(round(cnt)) pos1 = p 

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд╢рд╛рдпрдж рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╣рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

11010010000110001010001000110100010001101110100011011101000111011011
01100110011000101000101000110001000101100011000101110110011011001111
00010101100011101011


рдбрд┐рдХреЛрдбрд┐рдВрдЧ


рдпрд╣рд╛рдБ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреЛрдИ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред рдХреЛрдб -128 рдореЗрдВ рд╡рд░реНрдг рдПрдХ 11-рдмрд┐рдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ 3 рдХрд┐рд╕реНрдореЗрдВ (рдП, рдмреА рдФрд░ рд╕реА) рд╣реИрдВ рдФрд░ 00 рд╕реЗ 99 рддрдХ рдпрд╛ рддреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдг рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдпрд╛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдиреБрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд 11010010000 рд╣реИ, рдЬреЛ "рдХреЛрдб рдмреА" рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ рд╕рднреА рдХреЛрдбреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрд╣реБрдд рд╣реА рддреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдХреЗрд╡рд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рднреА рдкрд╛рдпрдерди рдореЗрдВ рдХреА рдЧрдИ рдереА (рд╕рдВрдХреЗрдд: рдпрд╣ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ)ред

  CODE128_CHART = """ 0 _ _ 00 32 S 11011001100 212222 1 ! ! 01 33 ! 11001101100 222122 2 " " 02 34 " 11001100110 222221 3 # # 03 35 # 10010011000 121223 ... 93 GS } 93 125 } 10100011110 111341 94 RS ~ 94 126 ~ 10001011110 131141 103 Start Start A 208 SCA 11010000100 211412 104 Start Start B 209 SCB 11010010000 211214 105 Start Start C 210 SCC 11010011100 211232 106 Stop Stop - - - 11000111010 233111""".split() SYMBOLS = [value for value in CODE128_CHART[6::8]] VALUESB = [value for value in CODE128_CHART[2::8]] CODE128B = dict(zip(SYMBOLS, VALUESB)) 

рдЕрдм рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рд╣реИред рд╣рдо рдЕрдкрдиреЗ рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо рдХреЛ 11-рд╡рд░реНрдг рдмреНрд▓реЙрдХ рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ:

 sym_len = 11 symbols = [bits[i:i+sym_len] for i in range(0, len(bits), sym_len)] 

рдЕрдВрдд рдореЗрдВ, рд╣рдо рд▓рд╛рдЗрди рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 str_out = "" for sym in symbols: if CODE128A[sym] == 'Start': continue if CODE128A[sym] == 'Stop': break str_out += CODE128A[sym] print(" ", sym, CODE128A[sym]) print("Str:", str_out) 

рдореИрдВ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рдХрд╛ рдЙрддреНрддрд░ рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдЗрд╕реЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрдорд╡рд░реНрдХ рдХрд░рдиреЗ рджреЗрдВ (рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдзреЛрдЦрд╛ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ :)ред

рдХреЛрдб рднреА рд╕реАрдЖрд░рд╕реА рд╕рддреНрдпрд╛рдкрди рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡реЗ рд╕реНрд╡рдпрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмреЗрд╢рдХ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЕрдкреВрд░реНрдг рд╣реИ, рдФрд░ рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдзрд┐рдХ рдкреЗрд╢реЗрд╡рд░ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдЬрд╝рдмрд╛рд░ ред рдРрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдХреЗрд╡рд▓ 4 рд▓рд╛рдЗрдиреЗрдВ рд▓реЗрдЧрд╛:

 from pyzbar.pyzbar import decode img = Image.open(image_path) decode = decode(img) print(decode) 

(рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдкрд╛рдЗрдк рдЗрдВрд╕реНтАНрдЯреЙрд▓ рдкрд╛рдЗрдмреНрдЬ рджрд░реНрдЬ рдХрд░рдХреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрдВрд╕реНтАНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)

рдЬреЛрдбрд╝ : CRC рдЧрд┐рдирддреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ vinograd19 рд▓рд┐рдЦрд╛ рд╣реИ:

рдЪреЗрдХ рдЕрдВрдХ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдпрд╣ рд╡рд┐рдХрд╛рд╕рд╡рд╛рдж рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдЖред
рдЧрд▓рдд рдбрд┐рдХреЛрдбрд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдЕрдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдмрд╛рд░рдХреЛрдб 1234 рдерд╛, рдФрд░ рдЗрд╕реЗ 7234 рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рджреА рдЧрдИ рдереА, рддреЛ рдЖрдкрдХреЛ рд╕рддреНрдпрд╛рдкрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ 1 рд╕реЗ 7 рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред рд╕рддреНрдпрд╛рдкрди рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрдо рд╕реЗ рдХрдо 90% рдЕрдорд╛рдиреНрдп рд╕рдВрдЦреНрдпрд╛ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛред

1 рджреГрд╖реНрдЯрд┐рдХреЛрдг: рдЪрд▓реЛ рдмрд╕ рд░рд╛рд╢рд┐ рд▓реЗрддреЗ рд╣реИрдВред рддрд╛рдХрд┐ 10 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рд╢реЗрд╖ 0. рд╣реИред рдпрд╛рдиреА, рдкрд╣рд▓реЗ 12 рдЕрдХреНрд╖рд░ рдПрдХ рд╕реВрдЪрдирд╛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд┐рдо рдЕрдВрдХ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдВрдХреЛрдВ рдХрд╛ рдпреЛрдЧ 10 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛред рдЕрдиреБрдХреНрд░рдо рдХреЛ рдбрд┐рдХреЛрдб рдХрд░реЗрдВ, рдпрджрд┐ рдпреЛрдЧ рджрд╕ рд╕реЗ рд╡рд┐рднрд╛рдЬреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдмрдЧ рдХреЗ рд╕рд╛рде рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╛рд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб 1234 рдорд╛рдиреНрдп рд╣реИред 1 + 2 + 3 + 4 = 10. рдХреЛрдб 1216 рднреА рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди 1218 рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╛рд░рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд╕рдордп, рдЪрд╛рдмрд┐рдпреЛрдВ рдкрд░ рдПрдХ рдирдВрдмрд░ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдЖрдИ рдереАред рдФрд░ рдПрдХ рдмреБрд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рджреЛ рдЕрдВрдХреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЪреЗрдХрд╕рдо рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЦрд░рд╛рдм рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдмрд╛рд░рдХреЛрдб 1234 рдХреЛ 2134 рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЪреЗрдХрд╕рдо рдЕрднрд┐рд╕рд░рдг рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЧрд▓рдд рд╕рдВрдЦреНрдпрд╛ рджрд░реНрдЬ рдХреАред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЧрд▓рдд рдХреНрд░рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЪрд╛рдмрд┐рдпрд╛рдБ рдЬрд▓реНрджреА рд╕реЗ рджрд╕реНрддрдХ рджреЗрддреЗ рд╣реИрдВред

рджреВрд╕рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдгред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рд░рд╛рд╢рд┐ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рддрд╛рдХрд┐ рджреЛ рдмрд╛рд░ рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПред рдлрд┐рд░, рдЖрджреЗрд╢ рдмрджрд▓рддреЗ рд╕рдордп, рд░рд╛рд╢рд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╕рд░рдг рдирд╣реАрдВ рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб 2364 рд╡реИрдз рд╣реИ (2 + 3 + 3 + 6 + 4 + 4 = 20), рдФрд░ рдХреЛрдб 3264 рдЕрдорд╛рдиреНрдп рд╣реИ (3+ 2 + 2 + 6 + 4 + 4 = 19)ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рдХрд╛ рдПрдХ рдФрд░ рдмреБрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдерд╛ред рдХреБрдЫ рдХреАрдмреЛрд░реНрдб рдРрд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рджрд╕ рдЕрдВрдХреЛрдВ рдореЗрдВ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ 12345 рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдиреАрдЪреЗ рджреВрд╕рд░реА рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ 67890 рд╣реИред рдпрджрд┐, "1" рдХреБрдВрдЬреА рдХреЗ рдмрдЬрд╛рдп, рджрд╛рдИрдВ рдУрд░ "2" рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ, рддреЛ рдЪреЗрдХрд╕рдо рдЧрд▓рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ "1" рдХреБрдВрдЬреА рдХреЗ рдмрдЬрд╛рдп рдиреАрдЪреЗ "6" рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ, рддреЛ рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, 6 = 1 + 5, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рдПрдХ рд╕рдорд╛рди рдЬрдЧрд╣ рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 * 6 = 2 * 1 + 2 * 5 рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЪреЗрдХрд╕рдо 10 рдмрд┐рд▓реНрдХреБрд▓ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдВрддрд┐рдо рдЕрдВрдХ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб 2134 рдФрд░ 2634 рдореЗрдВ рдЪреЗрдХрд╕рдо рд╕рдорд╛рди рд╣реИрдВред рд╡рд╣реА рддреНрд░реБрдЯрд┐ рддрдм рд╣реЛрдЧреА рдЬрдм рд╣рдо 2 рдХреЛ 2 рдХреЗ рдмрдЬрд╛рдп 7 рджрдмрд╛рддреЗ рд╣реИрдВ, 3 рдХреЗ рдмрдЬрд╛рдп 8 рджрдмрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рддреАрд╕рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдгред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рд░рд╛рд╢рд┐ рд▓реЗрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ ... рддреАрди рдмрд╛рд░ред рдЕрд░реНрдерд╛рддреН, рдХреЛрдб 1234565 рдорд╛рдиреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 1 + 2 * 3 + 3 + 4 * 3 + 5 + 6 * 3 + 4 = 50ред

рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХреБрдЫ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде EAN13 рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдмрди рдЧрдИ рд╣реИ: рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ 13 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЬрд╣рд╛рдВ 13 рд╡реАрдВ рдПрдХ рд╣реА рдЪреЗрдХрд╕рдо рд╣реИред рд╡рд┐рд╖рдо рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рддреАрди рдмрд╛рд░ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрд╛рд░ -ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрд╛рд░рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЪреАрдЬ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣реИрдВред рд╡реИрд╕реЗ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЬреАрд╡рди рд╣реИрдХ рдЬреЛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдкрдврд╝ рдЪреБрдХреЗ рд╣реИрдВ - рдмрд╛рд░рдХреЛрдб рдХреЗ рддрд╣рдд рдкрд╛рда (рдпрджрд┐ рдХреЛрдИ рд╣реИ) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдирдХрд▓ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдкрдардиреАрдп рдХреЛрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдСрдкрд░реЗрдЯрд░ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рджрд░реНрдЬ рдХрд░ рд╕рдХреЗред рддреЛ рдПрдХ рдмрд╛рд░рдХреЛрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рд╕рд░рд▓ рд╣реИ - рдмрд╕ рдЗрд╕рдХреЗ рдиреАрдЪреЗ рдХреЗ рдкрд╛рда рдХреЛ рджреЗрдЦреЗрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реНрдпрд╛рдкрд╛рд░ рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдИрдПрдПрди -13 рдХреЛрдб рд╣реИ, рдмрд┐рдЯ рдХреЛрдбрд┐рдВрдЧ рд╡рд╣рд╛рдВ рд╕рдорд╛рди рд╣реИ, рдФрд░ рдЬреЛ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡реЗ рдЪрд░рд┐рддреНрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕реНрд╡рдпрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред

рдпрджрд┐ рдкрд╛рдардХреЛрдВ рдиреЗ рд░реБрдЪрд┐ рдирд╣реАрдВ рдЦреЛрдИ рд╣реИ, рддреЛ рдЖрдк рдЕрд▓рдЧ рд╕реЗ рдХреНрдпреВрдЖрд░ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/hi439604/


All Articles