рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣рдо рд╕рдмрд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХреНрд░реЛрдордХреЗрд╕реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдкрд╛рд░ рдЖрддреЗ рд╣реИрдВред рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдЕрдкрдиреЗ рдХреБрдЫ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬреЛ рд▓реЛрдЧ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдореЗрдХреА рдХреНрдпрд╛ рд╣реИ? рдХреНрд░реЛрдордХреЗрдИ рдПрдХ рдЫрд╡рд┐-рд╕рдВрдпреЛрдЬрди рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдлрд┐рд▓реНрдо-рд╡реАрдбрд┐рдпреЛ-рдЯреЗрд▓реАрд╡рд┐рдЬрди рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╝рд╣рд░ рд╣рд░реЗ рдФрд░ рдЪрдордХреАрд▓реЗ рдиреАрд▓реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ "рдХреБрдВрдЬреА" рд░рдВрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдРрд╕реЗ рд░рдВрдЧреЛрдВ рдХреЛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЪреЗрд╣рд░реЗ рдФрд░ рдмрд╛рд▓реЛрдВ рдХреЗ рд░рдВрдЧ рдХреЗ рд╡рд░реНрдгрдХреНрд░рдо рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╣реБрдд рдЧрд╣рд░реЗ рд░рдВрдЧ рдХреЗ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рднреВрдорд┐рдЧрдд рдЧреБрдлрд╛рдПрдВ, рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЪрдордХреАрд▓реЗ рдирд╛рд░рдВрдЧреА рд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рдПрдЪрдПрд╕рдПрд▓ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ "рдХреБрдЫ" рд╕рдордп рдмрд╣реБрдд рд╢рд╛рд▓реАрдирддрд╛ рд╕реЗ рдШрд╕реАрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░, рдмрд╣реБрдд рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рдХрд┐ рдПрдХ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдмрд╕ рдПрдХ рдШрдЯрдХ рдХреЛ рддреНрдпрд╛рдЧрдХрд░ рдЙрд╕рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдПрдХ рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдмрдирд╛ред рдЧреНрд░реАрди рдЪреИрдирд▓ рдХреЛ рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд┐рдЪрд╛рд░ рдХреА рдЯреНрд░реЗрди рдпрд╣ рдереА:
- рдХреБрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдХреЗ 256 рдЧреНрд░реЗрдбреЗрд╢рди рд╣реИрдВ
- рд╕рдм рдХреБрдЫ рдЬреЛ 30 рд╡реЗрдВ рдореВрд▓реНрдп рд╕реЗ рд▓рдЧрднрдЧ рдХрдо рд╣реИ, рдХреЛ "рдХрд╛рд▓реЗ" рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рд╡рд┐рдХрд▓реНрдк рдЬрд╣рд╛рдВ рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдШрдЯрдХ рдкреНрд░рдореБрдЦ рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рд░рд╛ рд╣реЛрддрд╛ рд╣реИ (рдзреВрд╕рд░ рдХреЗ рдХрд░реАрдм рдЧреНрд░реЗ рд░рдВрдЧ, рдЖрджрд┐ред
рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд▓реА рдЧрдИ рдЫрд╡рд┐ рд╣реЛрдирд╛

(
vid8o.files.wordpress.com/2011/01/chromakey.jpg?w=620 рдкрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛)
рдФрд░ рдЗрд╕реА рддрд░рд╣ рд▓рд┐рдпрд╛ рдкреГрд╖реНрдарднреВрдорд┐

(рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕рдХрд╛ рд╣реИ)
рд╣рдо 24-рдмрд┐рдЯ рдЫрд╡рд┐ рдФрд░ 8-рдмрд┐рдЯ рдорд╛рд╕реНрдХ (рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓) рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ:
byte const black_threshold = 30; byte* chroma_p = chroma_data; byte* alpha_p = alpha_data; for (int counter = 0; counter < size; ++counter) { byte b = *chroma_p++; byte g = *chroma_p++; byte r = *chroma_p++;
рднрд╛рдЧреЛ, рдЬрд╛рдУ:
рдореБрдЦреМрдЯрд╛

рдФрд░ рд╣рдорд╛рд░реА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рдореБрдЦреМрдЯрд╛ рдУрд╡рд░рд▓реЗ рдЫрд╡рд┐

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

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдорд╛рд╕реНрдХ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ 17-100 рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдорд╛рдиреЛрдВ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ 100-255 рд╕реЗ рдЕрдВрддрд░рд╛рд▓ 0-255 рдХреЗ рдЕрдВрддрд░рд╛рд▓ рддрдХ рдлреИрд▓рд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдХрдлрди рдХреЛ "рдорд╛рд░рдирд╛" рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ

рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рдореБрдЦреМрдЯрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП

ред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдШреВрдВрдШрдЯ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рд╛

ред
рд▓реЗрдХрд┐рди рд╣рдо рдореБрдЦреМрдЯрд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╢реЗрд╖ рдкреНрд░рднрд╛рдордВрдбрд▓ рдФрд░ рдЯреЛрди рдХреЗ рд╣рд░реЗ "рднрдбрд╝рдХ" рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдо рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдореВрд▓ рд╣рд░реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рджреЗрдЦрддреЗ рдереЗ рдФрд░ рд╣рдорд╛рд░реА рдирдИ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд╛рдлреА рдЕрд▓рдЧ рджрд┐рдЦрддреЗ рдереЗред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░рд┐рдгрд╛рдо рд╕рд╕реНрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрдИ рд╕рд╡рд╛рд▓ рдмрдиреЗ рд╣реБрдП рд╣реИрдВред рдПрдХ рдкреНрд░рднрд╛рдордВрдбрд▓ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ? рдЖрдк рдПрдХ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдореБрдЦреМрдЯрд╛ рдХреЛ рд╕рдВрдХреАрд░реНрдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдХрд┐рд╕реА рддрд░рд╣ рдорд╛рд╕реНрдХ рдХреЗ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреИрд╕реЗ рднрдбрд╝рдХрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рднреЛрдЬрди рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЖрд▓реЛрдЪрдирд╛, рд╕рд▓рд╛рд╣ рдФрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реИрдВред
рдореИрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рднреА рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛, рдЬрд┐рдирдореЗрдВ GPU, OpenCV, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
UPD 1: рд╕рдВрд╕рд╛рдзрд┐рдд рдЫрд╡рд┐ рдФрд░ рдорд╛рд╕реНрдХ рдХрд╛ рдЖрдХрд╛рд░ рджреЛрдЧреБрдирд╛ рд╣реЛ рдЧрдпрд╛