рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ CTK SHTRIH-FR-K рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдерд░реНрдорд▓ рд╣реЗрдб, рдЗрдВрдЬрдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдХреБрдЫ рднреА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд▓рд┐рдЦрдирд╛ рд╣реИ рдЬреЛ рдЦрдЬрд╛рдВрдЪреА рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░реЗрдЧрд╛ рдФрд░ рдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдЧрд╛ред

рдЖрдЗрдП рд╣рдо рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
import cv2 import numpy as np import serial
cv2 - OpenCV рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдпрд╣ рдЫрд╡рд┐ рдХреЛ рдЗрдирдкреБрдЯ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╛рд░рд╛ рднрд╛рд░ рдЙрдард╛рддрд╛ рд╣реИред
numpy рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред OpenCV рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдкреАрд╕реА рдХреЙрдо-рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрд░рд┐рдпрд▓ - рд▓рд╛рдЗрдмреНрд░реЗрд░реАред
ser = serial.Serial('COM5', 9600, write_timeout=1, timeout=0.1)
9600 рдмреАрдкреАрдПрд╕ рдкрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╢реБрд░реБрдЖрддред
frame1 = cv2.imread('ars2.jpg')
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
height = frame1.shape[0]//(frame1.shape[1]//432) frame1 = cv2.resize(frame1, (432,height), interpolation = cv2.INTER_AREA)
рдЫрд╡рд┐ рдХреЛ рджрд┐рдП рдЧрдП рдЖрдХрд╛рд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпред
grayscaled1 = cv2.cvtColor(frame1,cv2.COLOR_BGR2GRAY) ret,thresh1 = cv2.threshold(grayscaled1,127,255,cv2.THRESH_BINARY) img_bin = thresh1/255
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдЫрд╡рд┐ рдХреЛ рдХрд╛рд▓рд╛ рдФрд░ рд╕рдлреЗрдж рдмрдирд╛рддреА рд╣реИред рджреВрд╕рд░рд╛ рджреНрд╡реИрддрдХрд░рдг рдХрд░рддрд╛ рд╣реИред Binarization - рдирд┐рдЪрд▓рд╛ рд░реЗрдЦрд╛ рдПрдХ рддрд╕реНрд╡реАрд░ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдореВрд▓реНрдп 1 рдпрд╛ 0. рд╣реЛрдЧрд╛ред рдирдХрджреА рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛рд▓реЗ рд░рдВрдЧ рдХреЗ рд░рдВрдЧреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, 127 рд╕реЗ рдХрдо рдореВрд▓реНрдп рд╡рд╛рд▓реЗ рд╕рднреА рдкрд┐рдХреНрд╕реЗрд▓ 1 рд╕реЗ рдЕрдзрд┐рдХ 0 рд╣реЛрдВрдЧреЗред
for n in range(img_bin.shape[0]): for m in range(img_bin.shape[1]):
рдпрд╣ рдХреЛрдб рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдмрд╛рдЗрдЯ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╛рдиреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдЖрда рдкрд┐рдХреНрд╕реЗрд▓ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдлрд┐рд░ рдпрд╣ рдЙрд╕реА рдкрдВрдХреНрддрд┐ рд╕реЗ рдЕрдЧрд▓реЗ 8 рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
while i: while u!=1: u = ser.write( b'P') u=0 ff=ser.read(1) if ff==b'B': i=0
рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреА рд╢реБрд░реБрдЖрддред рдЕрдЧрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ рддреЛ рд╢реБрд░реВ рди рдХрд░реЗрдВред
i=54 while i: while u!=1:
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рддрд╕реНрд╡реАрд░ рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИ, рдЪреЗрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд╛рдЗрди рднреЗрдЬрдирд╛ред
if h==2: low=low+54 h=0
рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕реБрд╡рд┐рдзрд╛ред рдпрджрд┐ рдЫрд╡рд┐ рдХреЛ рдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИ, рддреЛ рдЫрд╡рд┐ рдХреА рдКрдБрдЪрд╛рдИ рдЖрдзреЗ рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред рдпрд╣ рдЗрдВрдЬрди рдХреА рдкрд┐рдЪ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ рджреЛ рдЪрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддрдм рдЫрд╡рд┐ рдордВрдж рд╣реЛрдЧреАред
while i: ff = ser.read(1)
рд╣рдо D рдЕрдХреНрд╖рд░ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдорд╢реАрди рдиреЗ рдПрдХ рд▓рд╛рдЗрди рдкреНрд░рд┐рдВрдЯ рдХреА рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рд╕реВрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ
github.com/beetlea/shtrih-m-fr-kрдареАрдХ рд╣реИ, рдпрд╣рд╛рдБ рдЖрдк vidosiki рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреАрдбреВ рдХреА рд╕реАрд▓ рдХреЗ рд╕рд╛рде vidos рд╣реА рдЬреАрд╡рд┐рдд рдирд╣реАрдВ рдерд╛ред