рд╢реБрдн рджреЛрдкрд╣рд░, рдЖрдЬ рдХрд╛ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореИрдВ
OpenCV рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ 3D рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди
рд╡рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдирдП рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рднрд╛рдЧ рд▓рд┐рдпрд╛ рдерд╛ред рд╕рдВрднрд╡рддрдГ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдЕрдкрдирд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореЗрд░рд╛ рдирд╛рдо
рдЕрдирд╛рддреЛрд▓реА рдмрдХреНрд╢реАрд╡ рд╣реИ , рдореИрдВ
рдЗрдЯрд╕реЗрдЬрд╝ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛
рд╣реВрдВ , рдореИрдВ рдЕрдм 7 рд╕рд╛рд▓ рд╕реЗ
рдУрдкрдирд╕реАрд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдореИрдВ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рдХреЗ рд╕рд╛рде 3D рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдереА? рдФрд░ рдЖрдк рд╕рд╣реА рд╣реЛрдВрдЧреЗ рдЬрдм рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рджреГрд╖реНрдЯрд┐ рдХреЛ рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ рдЬреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо
21 рд╡реАрдВ рд╕рджреА рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рдХрд╛ рджрд╛рдпрд░рд╛ рд╕рд┐рд░реНрдл рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЗрдореЗрдЬреЗрд╕ рд╕реЗ рдХрд╣реАрдВ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ рд╣реИ, рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдЪреЗрд╣рд░реЗ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред рд╡рд┐рдЬреНрдЮрд╛рди рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╣рдорд╛рд░реА рддреНрд░рд┐-рдЖрдпрд╛рдореА рджреБрдирд┐рдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдорд╛рдкрдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдмрд╛рдЬрд╛рд░ рдкрд░ рд╕рд╕реНрддреЗ
рдХрд╛рдЗрдиреЗрдЯ рд╕реЗрдВрд╕рд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рд╕реБрдЧрдо рд╣реЛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рддреАрди рдЖрдпрд╛рдореА рд░рдВрдЧ рдмрд┐рдВрджреБ рдмрд╛рджрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рд╕рдЯреАрдХрддрд╛ рдФрд░ рдЧрддрд┐ рдХреЗ рд╕рд╛рде рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ 3 рдбреА рджреБрдирд┐рдпрд╛ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдкреНрд░рдЧрддрд┐, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЫреЛрдбрд╝ рднреА рдореЛрдмрд╛рдЗрд▓ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ, рдЬрд╣рд╛рдВ рдПрдХреАрдХреГрдд рдЧрд╛рдпрд░реЛрд╕реНрдХреЛрдк рдФрд░ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ 3 рдбреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдХреИрдорд░реЗ рдХреЗ рдЖрдВрджреЛрд▓рди рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рджреГрд╢реНрдп рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рд╕рдЯреАрдХрддрд╛ред
рдпрд╣ рд╕рдм 3 рдбреА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред 3 рдбреА рд╡рд┐рднрд╛рдЬрди, 3 рдбреА рд╢реЛрд░ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ, рд╡рд╕реНрддреБрдУрдВ рдХреА 3 рдбреА рдЖрдХрд╛рд░ рдорд╛рдиреНрдпрддрд╛, 3 рдбреА рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди, рд╢рд░реАрд░ рдореБрджреНрд░рд╛ рдХреА 3 рдбреА рдЯреНрд░реИрдХрд┐рдВрдЧ, рдпрд╛ рдЧрд░реНрдн рдзрд╛рд░рдг рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рд╣рд╛рдеред рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм XBox рдХреЗ рд▓рд┐рдП Kinect рдХреА рдмрд┐рдХреНрд░реА рд╣реБрдИ, рддреЛ Microsoft рдиреЗ рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдорд╛рдирд╡ рд╢рд░реАрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SDK рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧреЗрдо рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реБрдИ - рдЬрдм, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЧреЗрдо рдЪрд░рд┐рддреНрд░, Kinect рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ ред рдРрд╕реЗ 3D рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рдХрд▓реНрдкрдирд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд╡реЗ рддреАрди рдЖрдпрд╛рдореА рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ рд╣реИрдВ, рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдЬреНрдпрд╛рдорд┐рддрд┐, рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 3 рдбреА рдореЗрдВ рдорд╛рдирд╡ рд╣рд╛рде рдХреА рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕реНрдерд┐рддрд┐ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдбрд┐рдмрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдХреНрд╕рд░ рд╡рд┐рдХрд╕рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрднрд┐рд╕рд░рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ред
OpenCV рд╡рд┐рдЬрд╝ рдореЗрдВ рдХреИрдорд░рд╛ рдкрде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗрдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд┐рдХрд╛рд╕ рд╡реЗрдХреНрдЯрд░ 3 рдбреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, 3 рдбреА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо
рдУрдкрдирд╕реАрд╡реА рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдФрд░ рдЪреВрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдмрдирд╛рдиреЗ рдХреА рдЬрд▓реНрджреА рдореЗрдВ рд╣реИрдВред
рд╡рд┐рдЬрд╝ рдореЙрдбреНрдпреВрд▓ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо рд╣реИред OpenCV рд╣рдореЗрд╢рд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рднреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдСрдкрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдПрдкреАрдЖрдИ (рдХрдВрдЯреЗрдирд░, рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдХрд╛рд░ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди) рдХреЗ рдХрд╛рд░рдг рдЬреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рдореЗрдердб, рдбреЗрд╡рд▓рдкрд░ рд╕рдордп рдХреА рдмрдЪрддред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡рд┐рдЬрд╝ рдЗрди рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдЕрдзреАрд░ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реБрдП рдпрд╣рд╛рдВ рд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред
рд╡рд┐рдЬрд╝ рджрд░реНрд╢рди
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдпрд╛ рдЬрдм рдореБрдЭреЗ рдХрд┐рд╕реА рддрд░рд╣ рдПрдХ рд╕реАрдорд┐рдд рд╕рдордп рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рдУрдбреЛрдореЗрдЯреНрд░реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо (
vslam ) рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рддреНрд╡рдЪрд╛ рдореЗрдВ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдореБрдЭреЗ рдХреИрд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреА рдФрд░ рдореИрдВ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред ред рдФрд░ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдРрд╕рд╛ рдореЙрдбреНрдпреВрд▓ рд╣реЛрдирд╛ рд╕реНрд╡рд╕реНрде рд╣реЛрдЧрд╛ред рд╕рдм рдХреБрдЫ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдкрд░рд┐рдкрдХреНрд╡ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ
рд▓рд╛рдХрд░ рдУрдЬрд╝рд╛рди рдЯреЛрдВрдХрд▓ , рд╣рдорд╛рд░реЗ
Google рд╕рдорд░ рдСрдлрд╝ рдХреЛрдб рдЫрд╛рддреНрд░ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛ред рд╡рд┐рдЬрд╝ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдкрд░ рдХрд╛рдо рдЬрд╛рд░реА рд╣реИред
рдбрд┐рдЬрд╛рдЗрди рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рддреНрд░рд┐-рдЖрдпрд╛рдореА рд╡рд┐рдЬреЗрдЯ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ 3D рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдкрд╛рд░ рдХрд░рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рдиреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдмрд┐рдВрджреБ рдмрд╛рджрд▓ рдЕрдХреНрд╕рд░ рдХреИрдорд░реЗ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдХреИрдорд░реЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрджреЛрдВ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╕рднреА рдмрд┐рдВрджреБ рдмрд╛рджрд▓реЛрдВ рдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирд░реНрдЧрдард┐рдд рди рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕ рдмрд┐рдВрджреБ рдмрд╛рджрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдУрдкрдирд╕реАрд╡реА рд╡рд┐рдЬрд╝ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдЬреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрдиреЗ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдмрдирддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдФрд░ рдЙрдиреНрдореБрдЦ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд╡рд▓ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП
VTK рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рдЙрд╕реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЯрд╛рд╕реНрдХ рд╡реАрдЯреАрдХреЗ рдХреЗ рдПрдХ рдЙрдк-рдЖрд╡рд░рдг рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдмрд▓рд╛ рд╣реБрдЖ рд╣реИ, рдУрдкрдирд╕реАрд╡реА рд╢реИрд▓реА рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рд╕реЗрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдореВрд▓ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдХреБрдЫ рд╕реЗрдЯ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИред рд╡рд░реНрдгрд┐рдд рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реАрдЯреАрдХреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ VTK рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдереЛрдбрд╝реА рдЕрд╕реБрд╡рд┐рдзрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдкреНрд░рдпреЛрдЬреНрдп рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдСрдлрд╕реЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред
рд╡рд┐рдЬрд╝ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡
рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд░реЛрдЯреЗрд╢рди рдФрд░ рдЕрдиреБрд╡рд╛рдж рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рд░реЛрдЯреЗрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд░реЛрдЯреЗрд╢рди рд╡реЗрдХреНрдЯрд░ (
рд░реЛрдбреНрд░рд┐рдЧреНрд╕ рд╡реЗрдХреНрдЯрд░ ) рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдПрдХ
рдЪрддреБрд░реНрднреБрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдиреБрд╡рд╛рдж рдХреЗрд╡рд▓ рдПрдХ рддреНрд░рд┐-рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд╣реИред рд░реЛрдЯреЗрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд 4x4 рдПрдлрд╛рдЗрди рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд╕реАрд╡рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдпрд╣ рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИред рд▓реЗрдХрд┐рди ... "рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ!", рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, "рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдХрд┐рд╕реА рднреА рд╡рд╕реНрддреБ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕рдордп рдРрд╕рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ!" рдФрд░ рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдЖрдк рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреЛрдЬрд╝ рдмрдирд╛рдиреЗ рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЙрдкрдХрд░рдг рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд┐рдд рд╡рд░реНрдЧ cv :: Affine3d рд╣реИ, рдЬреЛ, рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдУрдбреЛрдореЗрдЯреНрд░реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рд╣рд╛рдВ, рдЪрддреБрд░реНрднреБрдЬ рдкреНрд░реЗрдореА рдореБрдЭ рдкрд░ рдкрддреНрдерд░ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред
рддреЛ рдЪрд▓рд┐рдП рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рджреЗрддреЗ рд╣реИрдВред рд╡рд┐рдЬрд╝ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рд╡рд╕реНрддреБ рд╕реЗ рдЬреБрдбрд╝реЗ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд░реВрдкрд╛рдВрддрд░рдг рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдордЭреМрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╕реНрддреБ рдХреЗ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдмрд┐рдВрджреБрдУрдВ (рдкреЙрдЗрдВрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд░) рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдПрдХ рдореЗрдВ рдмрджрд▓рдирд╛ред рдЕрд░реНрдерд╛рддреН:
рдЬрд╣рд╛рдВ P
G , P
O рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдмрд┐рдВрджреБ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ рдФрд░ рд╡рд╕реНрддреБ рдХреЗ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ M, рдкрд░рд┐рд╡рд░реНрддрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рд╡рд╕реНрддреБ рдХреА рдореБрджреНрд░рд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдореБрджреНрд░рд╛ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
// cv::Vec3d x_axis, y_axis, z_axis, origin; cv::Affine3d pose = cv::makeTransformToGlobal(x_axis, y_axis, z_axis, origin); // cv::Vec3d position, view_direction, y_direction; Affine3d pose = makeCameraPose(position, view_direction, y_direction); // , Affine3d pose1; Affine3d pose2 = Affine3d::Identity(); // cv::Matx33d R; cv::Vec3d t; Affine3d pose = Affine3d(R, t); // double rotation[9]; double translation[3]; Affine3d pose = Affine3d(cv::Matx33d(rotation), cv::Vec3d(translation));
рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреГрд╢реНрдп рдУрдбреЛрдореЗрдЯреНрд░реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реЛрдВ, рдФрд░ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрди рдкрд░рд┐рд╡рд░реНрддрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ cv :: Mat рдХреЗ рдЕрдВрджрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рддрдм рдирдП рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдореБрджреНрд░рд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
// 4x4 43 cv::Mat pose_in_old_format; Affine3d pose = Affine3d(pose_in_old_format); // 33 cv::Mat R, t; Affine3d pose = Affine3d(R, translation); // cv::Vec3d rotation_vector: Affine3d pose = Affine3d(rotation_vector, translation);
рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╡рд░реНрдЧ рдЖрдкрдХреЛ рдкреЛрдЬрд╝ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рддреАрди-рдЖрдпрд╛рдореА рд╡реИрдХреНрдЯрд░ рдФрд░ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
// 90 Oy 5 Ox. Affine3d pose = Affine3d().rotate(Vec3d(0, CV_PI/2, 0,)).translate(Vec3d(5, 0, 0)); // cv::Vec3d a_vector; cv::Point3d a_point; cv::Vec3d transformed_vector = pose * a_vector; cv::Vec3d transformed_point = pose * a_point; // Affine3d camera1_to_global, camera2_to_global; Affine3d camera1_to_camera2 = camera2_to_global.inv() * camera1_to_global
рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рд╣рдо рдХреИрдорд░рд╛ 1 рдХреА рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рджрд╛рдИрдВ рдУрд░ рдмрд┐рдВрджреБ рдХреЛ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ (рджрд╛рдПрдВ) рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдмрд┐рдВрджреБ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдХреИрдорд░рд╛ 2 рдХреА рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░рдирд╛ рд╣реИред рд╣рдореЗрдВ рдХреИрдорд░рд╛ 2 рдХреА рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХреИрдорд░рд╛ 1 рдХреА рдореБрджреНрд░рд╛ рдорд┐рд▓рддреА рд╣реИред
// double distance = cv::norm((cam2_to_global.inv() * cam1_to_global).translation()); double rotation_angle = cv::norm((cam2_to_global.inv() * cam1_to_global).rvec());
рдЗрд╕ рдкрд░, рд╢рд╛рдпрдж, рд╣рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдореЗрдВ рдЕрдкрдиреЗ рднреНрд░рдордг рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдХреМрди рдкрд╕рдВрдж рдЖрдпрд╛, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ cv :: Affine3d рдЙрджрд╛рд╣рд░рдг рд╕реНрдЯреИрдХ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рд╕рднреА рд╡рд┐рдзрд┐рдпрд╛рдБ рдЗрдирд▓рд╛рдЗрди рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ, рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЦреЛрд▓рддреА рд╣реИрдВред
рд╡рд┐рдЬ рдХреЗ рд╕рд╛рде рджреГрд╢реНрдп
рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд░реНрдЧ рдХреЛ cv :: viz :: Viz3d рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреНрд▓рд╛рд╕ рдПрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдиреЗ, рдЙрд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ, рд╡рд┐рдЬреЗрдЯреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рдпреВрдЬрд░ рдЗрдирдкреБрдЯ рдХреЛ рдореИрдиреЗрдЬ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Viz3d viz1(тАЬmywindowтАЭ);
OpenCV рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рддрд░рд╣, рдпрд╣ рд╡рд░реНрдЧ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдВрдХ рдХреА рдЧрд┐рдирддреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдирд╛рдо рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Viz3d viz2 = viz1; Viz3d viz3 = cv::viz::getWindowByName(тАЬmywindowтАЭ): Viz3d viz4(тАЬmywindowтАЭ);
рдпрджрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рдирд╛рдо рд╡рд╛рд▓реА рдПрдХ рдЦрд┐рдбрд╝рдХреА рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдореА рд╡рд┐рдЬрд╝ 3 рдбреА рдЙрджрд╛рд╣рд░рдг рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА рдФрд░ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдЧреАред рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрдм рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рд╡рд┐рдВрдбреЛ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХрд╣реАрдВ рдкрд░ рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдореБрдЦреНрдп () рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдлрд┐рд░ рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рднреА рдирд╛рдо рд╕реЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВред рдпрд╣ рд╡рд┐рдЪрд╛рд░ OpenCV рдореЗрдВ рд╕рд┐рджреНрдз cv :: imshow (window_name, image) рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рднреА рдирд╛рдорд┐рдд рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╡рд┐рдЬреЗрдЯ рдкреНрд░рдгрд╛рд▓реА
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдХрдИ рдмрд┐рд▓реНрдбрд░реЛрдВ рдФрд░ рдХрднреА-рдХрднреА рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдмрдирддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
// WLine line(Point3d(0.0, 0.0, 0.0), Point3d(1.0, 1.0, 1.0), Color::apricot()); // WCube cube(Point3d(-1.0, -1.0, -1.0), Point3d(1.0, 1.0, 1.0), true, Color::pink());
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдПрдХ рдордирдорд╛рдирд╛ рд▓рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдШрди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордиреНрд╡рдп рдЕрдХреНрд╖реЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдПрдХ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рднреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рдЬрд╝ рдХреА рд╢реИрд▓реА рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╕рд┐рдЦрд╛рддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХреА рдереА, рдЬрдм рдкреНрд░рддрд┐рдкрд╛рджрди, рдЖрдк рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХреЛрдИ рднреА рд╡рд┐рдЬреЗрдЯ рдкреЛрдЬ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд╕рд╛рде, рд╣рдо рдЗрд╕рдХреА рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреНрдпреВрдм рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдиреНрдореБрдЦ рдХрд░рддреЗ рд╣реИрдВред
// (1.0, 1.0, 1.0) 3 Vec3d rvec = Vec3d(1.0, 1.0, 1.0) * (3.0/cv::norm(Vec3d(1.0, 1.0, 1.0)); Viz3d viz(тАЬtest1тАЭ); viz.showWidget(тАЬcooтАЭ, WCoordinateSystem()); viz.showWidget(тАЬcubeтАЭ, cube, Affine3d(rvec, Vec3d::all(0))); viz.spin();
рдФрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд┐рдЬрд╝ 3 рдбреА :: рд╢реЛрд╡рд┐рдбрдЧреЗрдЯ () рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо, рдирд┐рд░реНрдорд┐рдд рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдЖрдк 3D рджреГрд╢реНрдп рдореЗрдВ рдирд╛рдо рд╕реЗ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рдЬреЛрдбрд╝, рд╣рдЯрд╛ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХреЗрдВред рдпрджрд┐ рдЙрд╕ рдирд╛рдо рд╡рд╛рд▓рд╛ рдХреЛрдИ рд╡рд┐рдЬреЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдЙрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрдпреВрдм рдФрд░ рдПрдХ рд▓рд╛рдЗрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдЬрд╝ рдПрдХ рдХреНрд╖реЗрддреНрд░, рдПрдХ рд╕рд┐рд▓реЗрдВрдбрд░, рдПрдХ рд╡рд┐рдорд╛рди, рдПрдХ 2D рд╕рд░реНрдХрд▓, 3 рдбреА рдФрд░ 2 рдбреА рдореЗрдВ рдЪрд┐рддреНрд░ рдФрд░ рдкрд╛рда, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрде, рдХреИрдорд░рд╛ рд╕реНрдерд┐рддрд┐, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдмрд┐рдВрджреБ рдмрд╛рджрд▓реЛрдВ рдФрд░ рдПрдХ рдЬрд╛рд▓ (рд░рдВрдЧрд╣реАрди, рд░рдВрдЧреАрди рдпрд╛ рд░рдВрдЧреАрди) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдмрдирд╛рд╡рдЯ)ред рдпрд╣ рдХрдИ рд╡рд┐рдЬреЗрдЯ рдЕрдВрддрд┐рдо рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╕реНрдЯрдо рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рд╕рдордпред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВред рдЕрдм рдЖрдЗрдП рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдмрд┐рдВрджреБ рдмрд╛рджрд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП:
// . CV_32FC3 cv::Mat cloud = cv::viz::readCloud(тАЬdragon.plyтАЭ); // cv::Mat colors(cloud.size(), CV_8UC3); theRNG().fill(colors, RNG::UNIFORM, 50, 255); // NAN - float qnan = std::numeric_limits<float>::quiet_NaN(); cv::Mat masked_cloud = cloud.clone(); for(int i = 0; i < cloud.total(); ++i) if ( i % 16 != 0) masked_cloud.at<Vec3f>(i) = Vec3f(qnan, qnan, qnan); Viz3d viz(тАЬdragonsтАЭ); viz.showWidget(тАЬcooтАЭ, WCoordinateSystem()); // viz.showWidget(тАЬredтАЭ, WCloud(cloud, Color::red()), Affine3d().translate(Vec3d(-1.0, 0.0, 0.0))); // viz.showWidget(тАЬcoloredтАЭ, WCloud(cloud, colors), Affine3d().translate(Vec3d(+1.0, 0.0, 0.0))); // viz.showWidget(тАЬmaskedтАЭ, WCloud(masked_cloud, colors), Affine3d::Identity()); // A , viz.showWidget(тАЬpaintedтАЭ, WPaintedCloud(cloud), Affine3d().translate(Vec3d(+2.0, 0.0, 0.0))); viz.spin();
рдЗрд╕ рдХреЛрдб рдХрд╛ рдкрд░рд┐рдгрд╛рдо:
рдЙрдкрд▓рдмреНрдз рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ
рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВред
рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рддреЗ рджреГрд╢реНрдп
рдпрд╣ рдЕрдХреНрд╕рд░ рдХреЗрд╡рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡рд╕реНрддреБрдПрдВ рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВ, рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Kinect рдХреЗ рд╕рд╛рде рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд╣реИ, рддреЛ рд╣рдо рддрдерд╛рдХрдерд┐рдд рдмрд┐рдВрджреБ рдХреНрд▓рд╛рдЙрдб рд╡реАрдбрд┐рдпреЛ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
cv::VideoCapture capture(CV_CAP_OPENNI) Viz3d viz(тАЬdynamicтАЭ); //... ... // viz.setViewerPose(Affine3d().translate(1.0, 0.0, 0.0)); while(!viz.wasStopped()) { //... ... // , // , Kinect // , capture.grab(); capture.retrieve(color, CV_CAP_OPENNI_BGR_IMAGE); capture.retrieve(depth, CV_CAP_OPENNI_DEPTH_MAP); Mat cloud = computeCloud(depth); Mat display = normalizeDepth(depth); viz.showWidget("cloud", WCloud(cloud, color)); viz.showWidget("image", WImageOverlay(display, Rect(0, 0, 240, 160))); // 30 viz.spinOnce(30 /*ms*/, true /*force_redraw*/)); }
рдпрд╣ рдЪрдХреНрд░ рддрдм рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд┐рдбрд╝рдХреА рдмрдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рдкреБрд░рд╛рдиреЗ рдмрд╛рджрд▓ рдХреЗ рд╕рд╛рде рд╡рд┐рдЬреЗрдЯ рдХреЛ рдПрдХ рдирдП рдмрд╛рджрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдирд┐рдпрдВрддреНрд░рдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕
рдлрд┐рд▓рд╣рд╛рд▓, рдХреИрдорд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рддрдерд╛рдХрдерд┐рдд рдЯреНрд░реИрдХрдмреЙрд▓ рдХреИрдорд░рд╛ рд╢реИрд▓реА рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди 3D рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рдордиреЗ 3D рдореЗрдВ рдХреБрдЫ рдмрд┐рдВрджреБ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдпрд╣ рдХреИрдорд░рд╛ рдорд╛рдЙрд╕ рд╕реЗ рдШреВрдорддрд╛ рд╣реИред рдорд╛рдЙрд╕ рдкрд░ рдШреБрдордХреНрдХрдбрд╝ рдЗрд╕ рдмрд┐рдВрджреБ рд╕реЗ / рдХреЗ рдХрд░реАрдм рдЖ рдЬрд╛рддрд╛ рд╣реИред Shift / ctrl рдмрдЯрди рдФрд░ рдорд╛рдЙрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЗрд╕ рдШреБрдорд╛рд╡ рдмрд┐рдВрджреБ рдХреЛ 3D рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдмрдбрд╝реЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реА-рдлрд╝реНрд▓рд╛рдИ рдореЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред рдореИрдВ 'H' рд╣реЙрдЯ рдмрдЯрди рджрдмрд╛рдиреЗ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬрдмрдХрд┐ рд╡рд┐рдЬрд╝, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЫрдкреЗ рдЕрдиреНрдп рдлреАрдЪрд░реНрд╕ рдФрд░ рдлреАрдЪрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЛ рд╕реЗрд╡ рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рдПрдирд╛рдЧреНрд▓рд┐рдлрд┐рдХ рд╕реНрдЯреАрд░рд┐рдпреЛ рдореЛрдб рдСрди рдХрд░рдирд╛ рд╣реИред
OpenCV рд╡рд┐рдЬрд╝ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдкрд╛рда рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЖрдЧреНрд░рд╣ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕ рдЦрдВрдб рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред рд╡рд┐рдЬрд╝ рдХреЛ рд╕рднреА рддреАрди рдкреНрд░рдореБрдЦ рдкреАрд╕реА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ - рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХ рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рд╡реАрдЯреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╡реАрдЯреАрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдУрдкрдирд╕реАрд╡реА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╡рд┐рдЬрд╝ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдУрдкрдирд╕реАрд╡реА рдХреЗрд╡рд▓ 2.4 рдФрд░ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд╣рдорд╛рд░реА рдЧрд┐рдЯрд╣рдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА
https://github.com/Itseez/opencv рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ, рдирд┐рд░реНрджреЗрд╢:
1. рд╡реАрдЯреАрдХреЗ рд╕реНрдерд╛рдкрдирд╛
рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд, рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЙрдкрд╛рдп рд╣реИ рд╡реАрдЯреАрдХреЗ рдХреЛ рдПрдкреНрдЯреЛрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдПрдкреНрдЯ-рдЧреЗрдЯ рдЗрдВрд╕реНрдЯреЙрд▓ рд▓рд┐рдмрд╛рд╡реЗрдЯрдХ 5-рджреЗрд╡ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕рд╛рдЗрдЯ рд╕реЗ рд╡реАрдЯреАрдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрд╕реНрдХрд░рдг 5.10 рд╣реИ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрдордХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдбрд┐рдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред рдореИрдВ CMake BUILD_SHARED_LIBS рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рд╕реЗ рд╡реАрдЯреАрдХреЗ рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рд╕рдВрдХрд▓рди рд╣реЛрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдУрдкрдирд╕реАрд╡реА рд╡рд┐рдЬрд╝ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ 10 рдПрдордмреА рд╣реЛрдЧрд╛ред
Mac рдХреЗ рд▓рд┐рдП, OSX рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП 10.8 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, VTK рдХрд╛ рдХреЛрдИ рднреА рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрдпреБрдХреНрдд рд╣реИред 10.9 Mavericks рдХреЗ рд▓рд┐рдП, VTK 6.2 рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА
github.com/Kitware/VTK.git рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдЗрд╕ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдХреЛрдИ рд░рд┐рд▓реАрдЬрд╝ 6.2 рдирд╣реАрдВ рдереАред рдореИрдХ рдХреЗ рд▓рд┐рдП, рд╕реАрдПрдордХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Xcode рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдбреАрдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рд╣реИред
рд╡реАрдЯреАрдХреЗ рдХреЗ рд╕рд╛рде рдУрдкрдирд╕реАрд╡реА рдХрд╛ рд╕рдВрдХрд▓рди
рдпрд╣ рдХрджрдо рд╕рд░рд▓ рдФрд░ рддреЗрдЬ рд╣реИред рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рджреЗрддрд╛ рд╣реВрдВ, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ
- git рдХреНрд▓реЛрди github.com/Itseez/opencv.git
- [рд╡реИрдХрд▓реНрдкрд┐рдХ] git рдЪреЗрдХрдЖрдЙрдЯ-рдмреА реи.рек рдореВрд▓ / реи.рек
- mkdir build && cd build
- cmake -DWITH_VTK = ON -DVTK_DIR = <VTK рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкрде> ..
рдпрджрд┐ рдЖрдкрдиреЗ apt-get рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ VTK рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕реАрдПрдордХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд╕реАрдПрдордХреЗ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд╡реАрдЯреАрдХреЗ рдкрд╛рдпрд╛ рдФрд░ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдФрд░ рдХрд┐рд╕реА рднреА рдЕрд╕рдВрдЧрддрд┐ рдХреА рд╕реВрдЪрдирд╛ рдирд╣реАрдВ рджреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк QC5 рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде OpenCV рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ VTK Qt4 рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ VTK рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореБрдЦреНрдп () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрд░рдВрднреАрдХрд░рдг рдЪрд░рдг рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХрд╛ рдЙрдкрд╛рдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЪреАрдЬ рдЪреБрдиреЗрдВред рдпрд╛ VTK рдХреЗ рд▓рд┐рдП CMake рдореЗрдВ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░рдХреЗ Qt4 рдХреЗ рдмрд┐рдирд╛ VTK рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред рдпрд╛ рд╡реАрдЯреАрдХреЗ 6.1 рдФрд░ рдЙрдЪреНрдЪрддрд░ рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ Qt5 рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдВред рдЕрдВрдд рдореЗрдВ, OpenCV рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдХ -j 6 рдЪрд▓рд╛рдПрдВ
3. рдЧреНрд░рдВрдереЛрдВ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн (рд╡реИрдХрд▓реНрдкрд┐рдХ)
рдореИрдВ рдпрд╣рд╛рдВ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ:
github.com/Itseez/opencv_extra.git , рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ OPENCV_TEST_DATA_PADH рдореЗрдВ opencv_extra / testdata рдХрд╛ рдкрде рд▓рд┐рдЦреЗрдВред рдФрд░ OpenCV рдХреЗ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ opencv_test_viz рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдВред рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░, рдЖрдк рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рднреА рд╡рд░реНрддрдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреАрдЖрдИ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЦреИрд░, рдлрд┐рд░ рдореИрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореБрдЦреНрдп рдмрд┐рдВрджреБ, рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЕрдм рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдореЗрдВ рдордирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ OpenCV рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдордп рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реА рд╣реИред рдФрд░ рдХрд┐ OpenCV рдореЗрдВ 3D рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕реНрд╡рдпрдВ рдЙрдиреНрд╣реЗрдВ рдпрд╛ рддреЛ Google рд╕рдорд░ рдСрдлрд╝ рдХреЛрдб рдЫрд╛рддреНрд░реЛрдВ рдХреА рдорджрдж рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрднрд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, OpenCV рдореЗрдВ рдРрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднреА рднрд╛рдЧ рд▓реЗрдВрдЧреЗред
рдФрд░ рдореИрдВ рднреА рдЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдЙрдкрдХрд░рдг рдореЗрдВ рд░реБрдЪрд┐ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдпрд╛ рд╢рд╛рдпрдж рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗ рд▓рд┐рдП рднреА рдпрд╣ рдХреНрд╖реЗрддреНрд░ред рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк OpenCV рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд░рдЦрддреЗ рд╣реИрдВ - рддреЛ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рд╣рдо GitHub рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП
рд╣реИрдВ ред рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦрдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреА :-)
рдФрд░ рдпрджреНрдпрдкрд┐ рдЕрдм рдЖрд╡рд╢реНрдпрдХ рдореВрд▓ рдЖрдзрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╡рд┐рдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдорд╛рдирд╡ рд╣рд╛рде рдХреЗ рдХрдВрдХрд╛рд▓ рдХрд╛ рдПрдХ рдореЙрдбрд▓ рдФрд░ рдЗрд╕рдХреЗ рджреГрд╢реНрдпред рдпрд╛ PTAM рдЬреИрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реЗ 3 рдбреА рджреБрдирд┐рдпрд╛ рдХреЗ рдирдХреНрд╢реЗред рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд▓рд╛рдЗрдВрдЯ, рддрд╛рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реЛ, рдЬрдм рдЙрд╕ рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдбреАрдмрдЧ рдХрд░рдирд╛ :) рд▓реЗрдХрд┐рди рдпреЗ рдЕрдм рддрдХ рдкрд╛рдЧрд▓ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ :-)ред рдпрджрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рдЕрдЧрд▓реЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдХреБрдЫ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдИрд╕реАрдкреА рдпрд╛ рдХрд┐рдиреЗрдХреНрдЯ рдлреНрдпреВрдЬрди, рдФрд░ рд╡рд┐рдЬрд╝ рдХреЛ рдХреИрд╕реЗ рдбрд┐рдмрдЧ рдФрд░ рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдВрдд рддрдХ рдкрдврд╝реЗ рд╣реИрдВ - рдПрдХ рдмреЛрдирд╕ред
рдпрд╣рд╛рдБ PCL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ Kinect Fusion рдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рд╣рд▓реНрдХрд╛ рд░реАрдореЗрдХ рд╣реИред