рд╡реЗрдм рдХреИрдорд░рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд░ рдХрдмреНрдЬрд╛

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


рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реЗрдмрдХреИрдо рдФрд░ рдкрд╛рдпрдерди рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреЛрдИ рднреА рдореЗрд░реА рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЙрд╕ рдХреИрдорд░реЗ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдбреЗрд▓реЗрдХреНрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЦрд░реАрджрд╛ рдерд╛: рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдереЛрдбрд╝рд╛ рдбреЗрдврд╝ рдорд╛рдЪрд┐рд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рди 7 рдФрд░ рдорд┐рдВрдЯ 13 рдореЗрдВ рдЪреЗрдХ рдХрд┐рдпрд╛, рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдФрд░ рдЪрд▓рд╛ рдЧрдпрд╛), рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдХреАрдорддред рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди, рдХреИрдорд░рд╛ рдЪрдордХрджрд╛рд░ рд╕рдВрдХреЗрддрдХ рдпрд╛ рдЕрдиреНрдп рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдЗрд╕рдХреА рдЕрджреГрд╢реНрдп рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рддреЗ рд╣реИрдВред


рдЪреВрдВрдХрд┐ рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рджреЛрдиреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдХреЛ рджреЛрдиреЛрдВ рдУрдПрд╕ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред OpenCV рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдмрд╛рдЗрдирд┐рдВрдЧ рдорджрдж рдХрд░реЗрдЧреАред рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди video4linux рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░реЗ рд▓рд┐рдП рдУрдкрдирд╕реАрд╡реА рд╕реАрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, v4l рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИрдмреНрд░рд╕реНрдЯреИрдЯрд┐рдпрд╛ рдерд╛ ред

рд╕реБрдиреНрди рдФрд░ opencv рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

sudo apt-get install python-numpy sudo apt-get install python-opencv 


рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рд╡реЗ рдпрд╣рд╛рдБ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рдпрдерди рдХреЗ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реБрдиреНрди рдФрд░ opencv рд╡рд┐рддрд░рдг рдХреЛ рдкрдВрдк рдХрд░рддреЗ рд╣реИрдВред

рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐ рд╣реИред рдмрд╕ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рддрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╣рдо /build/python/2.x/cv2.pyd рдкрд╛рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рд╕рд╛рдЗрдЯ-рдкреИрдХреЗрдЬ рдореЗрдВ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рд╣рдо рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде cv.py рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ:

 from cv2.cv import * 


рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдЖрдпрд╛рдд:
 import cv 


рд╣рдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рд╣рд┐рдЧреБрдИ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдкреНрд░рдпреЛрдЧ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЯреЗрд╕реНрдЯ рдмреЙрд▓ - рдПрдХ рдлреНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдлрд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрдирд╛:

 import cv capture = cv.CaptureFromCAM(0) frame = cv.QueryFrame(capture) cv.SaveImage("capture.jpg", frame) 


рдХреИрдкреНрдЪрд░рдлрд╝реНрд░реЗрдордХреИрдо рдлрд╝рдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреИрдкреНрдЪрд░ рд╣реЛрдЧрд╛ред 0 рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рдпрд╣ рдХрдИ рдХреИрдорд░реЛрдВ рдХреЗ рд╣реЛрдиреЗ рдкрд░ рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред -1 рдХрд╛ рдорд╛рди "рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдз рдХреИрдорд░рд╛" рдХрд╛ рдЕрд░реНрде рд╣реИред

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

 import cv capture = cv.CaptureFromCAM(-1) cv.NamedWindow("capture", cv.CV_WINDOW_AUTOSIZE) i = 0 while True: frame = cv.QueryFrame(capture) cv.ShowImage("capture", frame) cv.WaitKey(10) path = "capture%.4d.jpg" % i #      cv.SaveImage(path, frame) i += 1 


NamedWindow рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реНрд░реЗрдо рд▓реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред WaitKey рд╣реИрдВрдбрд▓рд░ рдЦрд┐рдбрд╝рдХреА рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рджреЗрд░реА рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдХреБрдВрдЬреА рджрдмрд╛рдиреЗ рдпрд╛ рдПрдХ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЦрд┐рдбрд╝рдХреА рдлрд╝реНрд░реЗрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧреА (рдФрд░, рд╕рдВрднрд╡рддрдГ, рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА)ред


рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдлреНрд░реЗрдо рдкрд░ рдХрдмреНрдЬрд╛ред рдХреИрдорд░рд╛ рдореЙрдирд┐рдЯрд░ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИ - рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ ...

рдЬрдм рдЖрдк рд╢реЙрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдард╣рд░рд╛рд╡ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рдлреНрд░реЗрдо рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд░ рдорд┐рдирдЯ 1 рдлреНрд░реЗрдоред рдпрд╣ рдкрд╛рд╢ рдореЗрдВ time.sleep (60) рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд╢реВрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдлрд╝реНрд░реЗрдо рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 import cv capture = cv.CaptureFromCAM(-1) fourcc = cv.CV_FOURCC('M','J','P','G') fps = 16 w, h = 640, 480 stream = cv.CreateVideoWriter("test.avi", fourcc, fps, (w, h)) while True: frame = cv.QueryFrame(capture) cv.WriteFrame(stream, frame) 


рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИ: CreateVideoWriter рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдзрд╛рд░рд╛ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝реНрд░реЗрдо рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдорд╛рдкреНрдд рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдХреНрд░ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдлреЛрд░рдХреЗ рдПрдХ рдХреЛрдбреЗрдХ рд╣реИ, рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдЪрд╛рд░- рд╡рд░реНрдг рдХреЛрдбреЗрдХ рдирд╛рдо рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CV_FOURCC ('P', 'I', 'M,' 1 ') MPEG-1 рд╕рдВрдкреАрдбрд╝рди рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ, рдЖрдк рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ рдпрд╛ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдмреЙрдХреНрд╕ рдореЗрдВ 0 рдХреЗ рд▓рд┐рдП рдХреЛрдбреЗрдХ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -1 рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛!)ред рдПрд▓реНрд▓реЗрджрд╛рд░ рд╣реИрдмреНрд░рд╛рдпрдЬрд╝рд░ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдбреЗрдХреНрд╕ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЛ рджреЗрдЦрдирд╛ рдХрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реИ: www.fourcc.org/codecs.php

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

 fps = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FPS) 


рд░рд┐рдЯрд░реНрди -1, рдЬреЛ CreateVideoWriter рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдЖрдиреБрднрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреИрдорд░реЛрдВ рдореЗрдВ, рдпрд╣ 14 рд╕реЗ 16 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк 25 рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдлрд╝рд╛рдЗрд▓ 20 рдХреЗ рджрд╢рдХ рдХреА рдПрдХ рдореВрдХ рдлрд┐рд▓реНрдо рдЬреИрд╕реА рд╣реЛрдЧреАред

рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдлреНрд░реЗрдо_рд╕рд╛рдЗрдЬ рдлреНрд░реЗрдо рдХреА рдКрдВрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реИред рдХреИрдорд░рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрд░рдВрднреАрдХреГрдд рдХрд░реЗрдВ:

 w = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH) h = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT) w, h = int(w), int(h) #     float 


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

 config = { cv.CV_CAP_PROP_BRIGHTNESS: 50, cv.CV_CAP_PROP_CONTRAST: 50, cv.CV_CAP_PROP_SATURATION: 50, } for param, value in config.iteritems(): cv.SetCaptureProperty(capture, param, value) 


рдЪрдордХ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдФрд░ рд╕рдВрддреГрдкреНрддрд┐ рдкреИрд░рд╛рдореАрдЯрд░ 1 рд╕реЗ 100 рддрдХ рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдЕрдВрдзреЗрд░реЗ рдХрдорд░реЛрдВ рдореЗрдВ рд╢реВрдЯрд┐рдВрдЧ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдлрд╝реНрд░реЗрдо


рдЪрдордХ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдФрд░ рд╕рдВрддреГрдкреНрддрд┐ 50 рдЕрдВрдХ рд╣реИрдВ


рдЪрдордХ 50, рдХрдВрдЯреНрд░рд╛рд╕реНрдЯ 70, рд╕рдВрддреГрдкреНрддрд┐ 0

рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреИрдорд░реЗ рд╕реЗ рдлреНрд░реЗрдо рдХреЛ рдкреАрдЖрдИрдПрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрдиреНрд╣реЗрдВ cv рдкреНрд░рд╛рд░реВрдк рд╕реЗ PIL рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:

 pil_img = Image.fromstring("L", cv.GetSize(frame), frame.tostring()) 


рдФрд░ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ:

 cv_img = cv.CreateImageHeader(pil_img.size, cv.IPL_DEPTH_8U, 3) cv.SetData(cv_img, pil_img.tostring()) 


рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдПрдХреНрд╕реЗрд╕ рд╣реИ, рд╣рдо рдлрд╝реНрд░реЗрдо рд╢реВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдореЗрд▓ рд╕реЗ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реАрдбрд┐рдпреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реНрдЯреНрд░реАрдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, wx рдкрд░ GUI рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЦреБрдж рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

рд╕рдВрджрд░реНрдн:

1) OpenCV рдкреБрд╕реНрддрдХрд╛рд▓рдп
2) рдкрд╛рдпрдерди рдмрдВрдзрди рджрд╕реНрддрд╛рд╡реЗрдЬ
3) рдзрд╛рд░рд╛ "рд╣рд╛рдИрдЧреБрдИ"

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


All Articles