
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рджреГрд╢реНрдп рдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдкрд╛рдП рдЧрдП рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рд╕рдВрд╡рд░реНрдзрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ 3D рд╕реНрдерд╛рди рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рджреЛ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ - рдкреНрд░реЛрдЬреЗрдХреНрд╢рди (GL_PROJECTION) рдФрд░ рдореЙрдбрд▓ (GL_MODELVIEW) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрдкрдирдЬреАрдПрд▓ рдореЗрдВред рд╣рдо
OpenCV рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗред
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рд┐рд░реНрдл рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ (рд╢рд╛рдпрдж рдореИрдВ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛), рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рдм рдкрд░ рдПрдХ рд▓реЗрдЦ рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ред
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдореИрдВ рдЦреБрдж рдПрдХ рдЖрдИрдУрдПрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реВрдВ, рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рдореИрдВ рдЦреБрдж рдХрд╛ рдСрдЧрдореЗрдВрдЯреЗрдб рд░рд┐рдпрд▓рд┐рдЯреА рдЗрдВрдЬрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЖрдзрд╛рд░
OpenCV рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реАред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ (iOS / Android) рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рд╕реНрддрд╛рд╡ рдХреНрд╡рд╛рд▓рдХреЙрдо рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реИред
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдПрдЖрд░ рдПрд╕рдбреАрдХреЗ рдХреЛ
рд╡реБрдлреЛрд░рд┐рдпрд╛ рдирд╛рдо рд╕реЗ
рдЬрд╛рд░реА рдХрд┐рдпрд╛ ред рдЙрд╕реА рд╕рдордп, SDK рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕реНрдЯреЛрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (AppStore, AndroidMarket) рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдЧрд░реНрд╡ рдХреЗ рд╕рд╛рде рдмрддрд╛рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рд╡реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдПрд╕рдбреАрдХреЗ рдХреБрдЫ рдЕрдирд╛рдо рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреНрд╡рд╛рд▓рдХреЙрдо рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдЖрдк
рдЗрд╕ рд▓рд┐рдВрдХ рдХреЛ рд░рд╛рдЗрдЯ рдореЗрдиреВ рдореЗрдВ рдорд┐рд▓ рд░рд╣реЗ рд╕реНрдЯрд╛рд░реНрдЯрд┐рдВрдЧ рдПрд╕рдбреАрдХреЗ -> рд╕реНрдЯреЗрдк 3: рдХрдВрдкрд╛рдЗрд▓рд┐рдВрдЧ рдПрдВрдб рд░рдирд┐рдВрдЧ ... -> рдкрдмреНрд▓рд┐рд╢ рдпреЛрд░ рдПрдкреНрд▓реАрдХреЗрд╢рди рдкрд░
рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЗрд╕ рд╕реЗрдХреНрд╢рди рдХреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдореБрдЭреЗ рдкрд╛рдЧрд▓ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ 90% рдпрдХреАрди рд╣реИ рдХрд┐ рдЬрдм рдЙрдирдХреА рдПрд╕рдбреАрдХреЗ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рддрд┐рд╢рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░реЗрдЧреА, рддреЛ рд╡реЗ рдХрд╣реЗрдВрдЧреЗ "рдпрд╣реА рд╣реИ, рдлреНрд░реАрдмреА рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИ, рджрд╛рджреА рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░реЗрдВ"ред
рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЕрдкрдиреЗ рдЗрдВрдЬрди рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рдирд╣реАрдВ рд╣реИред
рдЕрд╕рд▓ рдореЗрдВ, рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП!
рд╕рд┐рджреНрдзрд╛рдВрдд
рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ OpenCV (
рдХреИрд╕реЗ? ) рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рд╣реА рдХреИрдорд░реЗ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдлреНрд░реЗрдо рдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреА рд╣реИред рдЕрд░реНрдерд╛рддреН, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:

рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрдИ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдиреАрдЪреЗ рдореБрдЦреНрдп рд▓рд┐рдВрдХ рджрд┐рдП рд╣реИрдВред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕рд╛рдзрди
OpenCV рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдИ рдкрдврд╝рдиреЗ рдХреЗ рд╕рд╡рд╛рд▓ рд╣реИрдВред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, 2 рдбреА рд╣реЛрдореЛрдЧреНрд░рд╛рдлреА рд╕реЗ 3 рдбреА рд╕реНрдкреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 2 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛:
- рдЖрдВрддрд░рд┐рдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ (рдЖрдВрддрд░рд┐рдХ рдореИрдЯреНрд░рд┐рдХреНрд╕), рдпрд╛ рдХреИрдорд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ - рдЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдХреИрдорд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ - рдлреЛрдХрд▓ рджреВрд░реА рджреЛ рдЕрдХреНрд╖реЛрдВ ( fx , fy ) рдФрд░ рдлреЛрдХрд╕ рдХреЗрдВрджреНрд░ рд╕рдордиреНрд╡рдп ( cx , cy ) рдХреЗ рд╕рд╛рдеред
рдЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛:

- рдПрдХ рдмрд╛рд╣рд░реА рдореИрдЯреНрд░рд┐рдХреНрд╕, рдпрд╛ рдореЙрдбрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕, рдореЙрдбрд▓ рдХрд╛ рдЦрд┐рдВрдЪрд╛рд╡, рдШреВрдордирд╛ рдФрд░ рдкрд░рд┐рд╡рд╣рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред рдпрд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрд░рдЪрдирд╛:
ред
рдЬрд╣рд╛рдВ рд╡рд┐рдХрд░реНрдг рддрддреНрд╡ рдЦреАрдВрдЪ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рд╢реЗрд╖ рддрддреНрд╡ рд░реЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд░ , рдФрд░ рдкрд░рд┐рд╡рд╣рди рдХреЗ рд▓рд┐рдП рддрддреНрд╡ рд╣реИрдВред
рдиреЛрдЯ: рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЙрдбрд▓ (рд╕рдордиреНрд╡рдп рдкрд░рд┐рд╡рд░реНрддрди рд╕рдореАрдХрд░рдгреЛрдВ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрд╕реА OpenGL рдореЗрдВ, рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдореБрдЦ рддрддреНрд╡ рд╣рдореЗрд╢рд╛ рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВред
рдЕрднреНрдпрд╛рд╕
рдЕрднреНрдпрд╛рд╕ рдореЗрдВ, OpenGL рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ 3D рдореЙрдбрд▓ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдкреНрд░рдХреНрд╖реЗрдкрдг рдореИрдЯреНрд░рд┐рдХреНрд╕ GL_PROJECTION рд╣реИред
- рдореЙрдбрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ GL_MODELVIEW рд╣реИред
рдиреЛрдЯ: iOS рдореЗрдВ, рдЖрдк OpenGLES рдХреЗ 1.1 рдФрд░ 2.0 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЦреНрдп рдЕрдВрддрд░ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢реЗрдбрд░реНрд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИред рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдореЗрдВ 2 рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:
glMatrixMode(GL_PROJECTION); glLoadMatrixf(projectionMatrix); glMatrixMode(GL_MODELVIEW); glLoadMatrixf(modelViewMatrix);
рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, рдЖрдк рдЙрдиреНрд╣реЗрдВ shaders рдХреЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреИрдорд░реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдлреНрд░реЗрдо рдХрд╛ рдЖрдХрд╛рд░ рдХреИрдорд░рд╛рд╕рд╛рдЗрдЬрд╝ = (рдЪреМрдбрд╝рд╛рдИ, рдКрдВрдЪрд╛рдИ) рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреИрдорд░рд╛рд╕рд╛рдЗрдЬрд╝ = (640, 480)ред
рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВред
рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕
рдпрд╣ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреИрдорд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╛рдж рд╡рд╛рд▓реЗ рдореЗрдВ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдХреИрдорд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреИрдорд░реЗ рдХреА рддрдХрдиреАрдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреЛрдИ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХреИрдорд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЦреЛрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕рдХрд╛ рдЕрдВрд╢рд╛рдВрдХрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред OpenCV рдореЗрдВ рдЕрдВрд╢рд╛рдВрдХрди рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡реЗрдмрдХреИрдо рдХреЛ рдСрдирд▓рд╛рдЗрди рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреИрдорд░реЗ рдХреЛ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - iPhone / iPad / iPodред рдФрд░ рдпрд╣рд╛рдБ рдореИрдВ рдмрддрд╛рдП рдЧрдП рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред
рд╣рдо рдХреИрдорд░рд╛ "рдСрдлрд▓рд╛рдЗрди" рдХреЛ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ (рдЪреЗрдХрд░рдмреЛрд░реНрдб) рдХреА рддрд╕реНрд╡реАрд░реЗрдВ рд▓реЗрдВрдЧреЗ, рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрди рддрд╕реНрд╡реАрд░реЛрдВ рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗред рдХреБрдЫ рдмрд┐рдВрджреБ:
- A4 рд╢реАрдЯ рдкрд░ рдПрдХ рдЪреЗрдХрд░рдмреЛрд░реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред рд╢реАрдЯ рд╕рд╛рдл рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдмрд╣реБрдд рд╣реА рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдХрд┐ рдкреНрд░рд┐рдВрдЯрд░ "рдкреНрд░рд╡рд╛рд╣" рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
- рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рддрд╕реНрд╡реАрд░реЛрдВ рдореЗрдВ рд╢рддрд░рдВрдЬ рдХреА рд╢реАрдЯ рд╕рддрд╣ рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рдмрд┐рдЫреА рд╣реЛ - рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдореБрдбрд╝рд╛ рд╣реБрдЖ рдирд╣реАрдВ рдерд╛, рд╢реАрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рдореЛрдбрд╝ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдереЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдХрд╛рд░реНрдбрдмреЛрд░реНрдб рдкрд░ рдЪрд┐рдкрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдмрд╕ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рднрд╛рд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддрд╛рдХрд┐ рд╡реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдХреЛ рдЕрд╡рд░реБрджреНрдз рди рдХрд░реЗрдВред
- рдХреИрдорд░реЗ рд╕реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдХреИрдорд░рд╛ рдЖрдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдХрджрдо рдирд╣реАрдВ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, iPhone 4 рдкрд░, рдЬрдм рдореИрдВ рдЗрд╕реЗ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдХреИрдорд░реЗ рдХреЗ рдлреНрд░реЗрдо рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ 640x480, рдФрд░ рдЬрдм рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреИрдорд░рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ - рдЖрдкрдХреЛ рдмрдбрд╝реА рддрд╕реНрд╡реАрд░реЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ (2592x2536), рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ 640x480 рдХреЛ рд╕рдВрдХреБрдЪрд┐рдд рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
- рд╡рд┐рднрд┐рдиреНрди рдХреЛрдгреЛрдВ рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╢реЙрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ 12-16 + рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ 12 рдФрд░ 16 рдкрд░ рдмрдирд╛рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, 16 рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдзрд┐рдХ рдЫрд╡рд┐рдпрд╛рдВ, рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд┐рддрдирд╛ рд╕рдЯреАрдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдЯреАрдХрддрд╛ 3D рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╢рд┐рдлреНрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ / рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧреАред
- рдХреИрдорд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕реНрддрд░ рдкрд░ рд╣рдо рд╡рд┐рд░реВрдкрдг рдЧреБрдгрд╛рдВрдХ рдкрд╛рддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпреЗ рдЧреБрдгрд╛рдВрдХ рдХреИрдорд░реЗ рдХреЗ рд▓реЗрдВрд╕ рджреНрд╡рд╛рд░рд╛ рдЫрд╡рд┐ рдХреЗ рд╡рд┐рд░реВрдкрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЖрдк OpenCV рдкреНрд░рд▓реЗрдЦрди рдФрд░ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреИрдорд░реЛрдВ рдореЗрдВ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдХреИрдорд░реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпреЗ рдЕрдиреБрдкрд╛рдд рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Xcode рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬрд┐рд╕реЗ рдЖрдк
рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдиреЗ OpenCV рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред рдпрд╛ рдЖрдк
рдпрд╣рд╛рдВ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд░реВрдкрд░реЗрдЦрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред
рддрд╕реНрд╡реАрд░реЗрдВ рдЦреБрдж, рдЖрдкрдХреЛ рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдХреНрд░рдо рдореЗрдВ рдирд╛рдо рдмрджрд▓реЗрдВред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ 2 рдлрд╛рдЗрд▓реЗрдВ рдорд┐рд▓реЗрдВрдЧреА:
- Intrinsics.xml - рдпрд╣рд╛рдВ 3x3 рдХреИрдорд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
- рд╡рд┐рд░реВрдкрдгред xml - рд╡рд╣рд╛рдБ рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдпрджрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреБрдЫ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рд╕рдВрднрд╡рддрдГ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдХрдо рддреАрд╡реНрд░ рдХреЛрдг рдкрд░ред OpenCV рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рднреА рдЖрдВрддрд░рд┐рдХ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдирдВрдмрд░ рд╣реЛрдиреЗ рдкрд░, рд╣рдо рдУрдкрдирдЬреАрдПрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
float cameraMatrix[9] = {6.24860291e+02, 0., cameraSize.width*0.5f, 0., 6.24860291e+02, cameraSize.height*0.5f, 0., 0., 1.}; - (void)buildProjectionMatrix {
рдХреБрдЫ рдиреЛрдЯ:
- рд╣рдо рдЕрдкрдиреЗ рдлреНрд░реЗрдо рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рде рдХреИрдорд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЧреБрдгрд╛рдВрдХ ( рд╕реАрдПрдХреНрд╕ , рд╕рд╛рдЗрдмрд░ ) рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред рдлрд┐рд░ рдлреНрд░реЗрдо рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ 3 рдбреА рдореЙрдбрд▓ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдкреЛрд╕реНрдЯ рдХреЗ рд▓реЗрдЦрдХ рдПрдХ рд╣реА рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЖрдП (рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрджреНрдпрддрди рджреЗрдЦреЗрдВ)ред
- рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рд╕реЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рд▓рд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдПрдХ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдХреИрдорд░реЗ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдлреНрд░реЗрдо рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред
- рдХреИрдорд░реЗ рдХрд╛ рдкреНрд░рд╕реНрддреБрдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЖрдИрдлреЛрди 4 рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЕрд▓рдЧ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред
рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЙрдбрд▓
рдЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, StackOverflow рдореЗрдВ
рдЗрд╕ рдкреНрд░рд╢реНрди рдиреЗ рдореЗрд░реА рдорджрдж рдХреАред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, OpenCV рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИрдВред
рддреЛ рдХреЛрдб:
float cameraMatrix[9] = {6.24860291e+02, 0., cameraSize.width*0.5f, 0., 6.24860291e+02, cameraSize.height*0.5f, 0., 0., 1.}; float distCoeff[5] = {1.61426172e-01, -5.95113218e-01, 7.10574386e-04, -1.91498715e-02, 1.66041708e+00}; - (void)buildModelViewMatrixUseOld:(BOOL)useOld { clock_t timer; startTimer(&timer); CvMat cvCameraMatrix = cvMat( 3, 3, CV_32FC1, (void*)cameraMatrix ); CvMat cvDistortionMatrix = cvMat( 1, 5, CV_32FC1, (void*)distCoeff ); CvMat* objectPoints = cvCreateMat( 4, 3, CV_32FC1 ); CvMat* imagePoints = cvCreateMat( 4, 2, CV_32FC1 );
рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ 4 рдЬреЛрдбрд╝реЗ рдФрд░ рдлреНрд░реЗрдо рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдлреНрд░реЗрдо рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдмрд┐рдВрджреБ рдЪрддреБрд░реНрднреБрдЬ рдХреЗ рдХреЛрдиреЗ рд╣реИрдВ рдЬреЛ рдлреНрд░реЗрдо рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ (рдмрд╛рдЙрдВрдбрд┐рдВрдЧ) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдмрд┐рдВрджреБ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рд╡рд░реНрддрди H рдХреА рд╣реЛрдореЛрдЧреНрд░рд╛рдлрд╝реА рд╣реЛрдиреЗ рдкрд░, рдЖрдк рдЗрд╕ рд╣реЛрдореЛрдЧреНрд░рд╛рдлрд╝реА рдХреЗ рд╕рд╛рде рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЪрд░рдо рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

z = 1.0

z = 0.0
- рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрд╕ 3 рдбреА рд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореВрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╕рд╣реА рд╣реЛ, рдФрд░ рд▓рдВрдмрд╛рдИ рдХреА рдЗрдХрд╛рдИ рдЖрдзрд╛ рдЫреЛрдЯрд╛ рдкрдХреНрд╖ (рдорд┐рдиреАрдбрд┐рдореЗрд╢рди рдХреЛрдб рдореЗрдВ) рд╣реЛред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдФрд░ 3 рдбреА рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдЫреЛрдЯреЗ рддрд░рдл рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдирд┐рд░реНрдорд┐рдд рдореИрдЯреНрд░рд┐рд╕реЗрд╕
cvFindExtrinsicCameraParams2 рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдП
рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд╣ рд╣рдореЗрдВ рдПрдХ рд░реЛрдЯреЗрд╢рди рд╡реЗрдХреНрдЯрд░, рдФрд░ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╡реЗрдХреНрдЯрд░ рдмрдирд╛рдПрдЧреАред рд░реЛрдЯреЗрд╢рди рд╡реЗрдХреНрдЯрд░ рд╕реЗ рд╣рдореЗрдВ рд░реЛрдЯреЗрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣
cvRodrigues2 рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд░реЛрдЯреЗрд╢рди рд╡реЗрдХреНрдЯрд░ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓рдХрд░ рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рддрддреНрд╡реЛрдВ рдХреЛ
1 рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рд╡рд╣ OpenGL рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, OpenGL рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╕рдм рд╣реИ, рд╣рдо рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореЙрдбрд▓ рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
рджреЛ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдиреЗ рдкрд░, рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ GLView рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣рд╛рдВ рдореЙрдбрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореЙрдбрд▓ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп iPhone 4 рдкрд░ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреА рдорд╛рдиреНрдпрддрд╛ рдХреЗ FPS рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдФрд░ рдЬрд╛рдиреЗрдВ:
1.http :
//old.uvr.gist.ac.kr/wlee/web/techReports/ar/Camera%20Models.html2.
http://www.hitl.washington.edu/artoolkit/mail-archive/message-thread-00653-Re--Questions-concering-.html3.http:
//sightations.wordpress.com/2010/08/03/simulating-calibrated-cameras-in-engengl/4.http
: //www.songho.ca/opengl/gl_projectionmatrix.html