DIY: рд╣реЛрдо рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдПрдмрд┐рд▓рд┐рдЯ - рдПрдЯрдореЛрд╕рд╡реЗрдЯ

рд╢реБрдн рджреЛрдкрд╣рд░



рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рдмрд╕реЗ рд╕рдлрд▓ рд╣рд╕реНрддрд╢рд┐рд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪреБрдирд╛: рдлрд┐рд▓рд┐рдкреНрд╕ рд╕реЗ рдПрдВрдмреАрд▓рд╛рдЗрдЯ рдХреЗ рдПрдЪрдбреАрдПрдордЖрдИ-рдкрд╛рд░реНрдерд╕реНрдЯреНрд░реЙрдЧ рдПрдирд╛рд▓реЙрдЧ, рдЕрдм рд╕реЗ рдореИрдВ рдЗрд╕ рд░рдЪрдирд╛ рдХреЛ "рдПрдЯрдореЛрд╕рд╡реЗрдЯ" рдХрд╣реВрдВрдЧрд╛ред



рдкрд░рд┐рдЪрдп


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





рд╕реНрд░реЛрдд рдбреЗрдЯрд╛:




рдЕрдзрд┐рдХрд╛рдВрд╢ рдбрд┐рд╡рд╛рдЗрд╕ рдПрдЪрдбреАрд╕реАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЦреЗрд▓рддреЗ рд╕рдордп рднреА рд╕рд╛рдордЧреНрд░реА рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред

рдЖрд╡рд╢реНрдпрдХрддрд╛:


рдЯреАрд╡реА рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдЯрдореЛрд╕рд╡рд┐рдЯ рдХреЗ рд▓рд┐рдП рдХреЗрдВрджреНрд░реАрдХреГрдд рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЯреАрд╡реА рдХреЗ рд▓рд┐рдП 4.5 рдореАрдЯрд░ рдХреА рдПрд▓рдИрдбреА рдкрдЯреНрдЯреА рдХреИрд╕реЗ рд╕рдВрд▓рдЧреНрди рдХреА рдФрд░ Arduino рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдХреЗрд╡рд▓ рдЪреЗрддрд╛рд╡рдиреА:

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╕реНрдХреНрд░реАрди рдХреЗ рдиреАрдЪреЗ рдЕрдЬреАрдм рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рд╣реИрдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдПрдХ рдЧрд▓рддреА рдХреА, рдбрд┐рдлреНрд▓реЗрдпрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪреБрдирд╛, рддрд╕реНрд╡реАрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЦреЛрджрд╛, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЯрд┐рдордЯрд┐рдорд╛рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реАред рдореИрдВ рдЕрд╡рд▓реЛрдХрди рдХрд░рдиреЗ рд▓рдЧрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рдЯреЗрдк рдХреЗ рдЕрдВрдд рдореЗрдВ рдФрд░ рдлрд┐рд░ рдЬреНрд╡рд▓рдВрдд рджреГрд╢реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдереАред рдорд▓реНрдЯреАрдореАрдЯрд░ рд▓реЗрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЯреЗрдк рдХреА рд╢реБрд░реБрдЖрдд, рдордзреНрдп рдФрд░ рдЕрдВрдд рдореЗрдВ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ рдорд╛рдкрд╛ рдФрд░ рдЯрд┐рдордЯрд┐рдорд╛ рдХреЗ рдХрд╛рд░рдг рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛: рдЯреЗрдк рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ 4.9V рдерд╛ (рд╣рд╛рдБ рдЪреАрдиреА PSU рдПрдХ рд╡рд┐рдЪрд▓рди рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЛрд▓реНрдЯреЗрдЬ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред 4.5 рдХреЗ рдордзреНрдп рдореЗрдВ рдЕрдВрдд 4.22 рдкрд░ - рд╡реЛрд▓реНрдЯреЗрдЬ рдбреНрд░реЙрдк рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ , рдореБрдЭреЗ рдмрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ рдерд╛ - рдЯреЗрдк рдХреЗ рдмреАрдЪ рдореЗрдВ рдореИрдВрдиреЗ рдкреАрдПрд╕рдпреВ рд╕реЗ рдмрд┐рдЬрд▓реА рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдпрд╛, рддрд╛рд░ рдХреЛ рдЯреАрд╡реА рдХреЗ рдкреАрдЫреЗ рдЬрд╛рдиреЗ рджрд┐рдпрд╛ред рдпрд╣ рддреБрд░рдВрдд рдорджрдж рдХреА, рдХрд┐рд╕реА рднреА рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред



рдПрдХ рд╡реЗрдм рдХреИрдорд░рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛


рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЗрд╕рдХреЗ рджреГрд╢реНрдп рдХреЛ рдПрдХ рд╡реЗрдм рдХреИрдорд░рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╡рд┐ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛) рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:

рдЫрд╡рд┐



рдХрдо рд░рдВрдЧ рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рдЙрдЪреНрдЪ рд╡рд┐рд▓рдВрдмрддрд╛ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдПрдЪрдбреАрдПрдордЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛




рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдмрдЬрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛:





рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдпрд╣ рдЬрдВрдЧрд▓реА рдФрд░ рдмреИрд╕рд╛рдЦреА рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди:





рдПрдЪрдбреАрдПрдордЖрдИ рдХреИрдкреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛? рдпрд╣ рд╕рд░рд▓ рд╣реИ: рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рд╡рд┐рдХрд▓реНрдк рдФрд░ рд╕рд╕реНрддреА рд╣реИ BlackmagicIntensity рд╢рдЯрд▓, рд▓реЗрдХрд┐рди рдпрд╣ 1080p / 60fps рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдХреЗрд╡рд▓ 1080p / 30fps рдХреЗ рд╕рд╛рде - рдЬреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдлреНрд░реЗрдо рджрд░ рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рддрд╛рдХрд┐ рдореИрдВ рддрд╕реНрд╡реАрд░ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд╕рдХреВрдВред + рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рдЧрднрдЧ 10 рд╣рдЬрд╛рд░ рдХрд╛ рдЦрд░реНрдЪ рдЖрдпрд╛ред рд░реВрдмрд▓ред - рдЬреЛ рдПрдХ рдЕрдЬреНрдЮрд╛рдд рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рд╕рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред



46x26 рдПрд▓рдИрдбреА рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЗ рд╕рдВрдХрд▓реНрдк рдореЗрдВ рд░рдВрдЧ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЪрдбреАрдПрдордЖрдИ рдХреЗ рдПрд╕-рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред



рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдПрд╕-рд╡реАрдбрд┐рдпреЛ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдИрдЬрд╝реАрдХреИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдЗрд╕рдореЗрдВ рдХрдИ рдЪреАрдиреА рд╡рд┐рд╡рд┐рдзрддрд╛рдПрдВ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдЪрд┐рдк рдмреЗрд╣рдж рджрдпрдиреАрдп рд╣реИ рдФрд░ рдЖрдк рдУрдкрдирд╕реАрд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред



рдПрдХрдорд╛рддреНрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕-рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдХрд╛рд▓реА рдкрдЯреНрдЯрд┐рдпрд╛рдВ рдереАрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрд╛рдЯрддреА рд╣реИрдВ (рд▓рдЧрднрдЧ 2-5%), рдореИрдВрдиреЗ рдЗрди рдмреИрдВрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрдкреНрдЪрд░ рдХрд╛рд░реНрдб рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдЫрд╡рд┐ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛, рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЫрд╡рд┐ рдХрд╛ рдиреБрдХрд╕рд╛рди рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред



рдореБрд▓рд╛рдпрдо


рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрд╣реЗ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдкреНрд░рд╣рд╛рд░ рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ред



рдЫрд╡рд┐ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдУрдкрдирд╕реАрд╡реА рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ .NET рд░реИрдкрд░ рдЗрдордЧреВ рд╕реАрд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ ред



рдореИрдВрдиреЗ рдЫрд╡рд┐ рдХреЛ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд░рдВрдЧреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрдХрдиреАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред



рдлреНрд░реЗрдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг


1. рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдлреНрд░реЗрдо


2. рдХрд╛рд▓реА рдкрдЯреНрдЯрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╕рд▓ рдлреНрд░реЗрдо


рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:

frame.ROI = new Rectangle(8, 8, frame.Width - 8, frame.Height - 18 - 8);
      
      





рдКрдкрд░ рд╕реЗ 8 рдкрд┐рдХреНрд╕реЗрд▓, рджрд╛рдИрдВ рдУрд░ 8 рдФрд░ рдиреАрдЪреЗ рд╕реЗ 18 рдкрд┐рдХреНрд╕реЗрд▓ред (рдмрд╛рдИрдВ рдУрд░ рдХреЛрдИ рдкрдЯреНрдЯреА рдирд╣реАрдВ рд╣реИ)



3. рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдореЗрдВ рдлреНрд░реЗрдо рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ, рд╣рдорд╛рд░реЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рд╕реНрде рддрд╕реНрд╡реАрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ


рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЗрд╕реЗ OpenCV рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ:

рдлреНрд░реЗрдоред рдЖрдХрд╛рд░ (рд▓реЗрдбреАрдбрде - 2 * рд▓реЗрдбрд╕рд╛рдЗрдбрдУрд╡рд░рдПрдб,

рд▓реЗрдбрд╣рд╛рдЗрдЯ - рд▓реЗрдбрдмреЙрдЯреЛрдордУрд╡рд░рдПрдб - рд▓реЗрдбреЛрдЯреЛрдкрд╛рд╡рд░рдПрдбрдЧреЗ,

INTER.CV_INTER_LINEAR);

рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдЪрд░ рдХреА рдмрд╣реБрддрд╛рдпрдд рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдЧрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЯреАрд╡реА рдлреНрд░реЗрдо рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ, рдкрдХреНрд╖реЛрдВ рдкрд░ 1 рдПрд▓рдИрдбреА, рд╢реАрд░реНрд╖ рдкрд░ 1 рдФрд░ рдиреАрдЪреЗ 3 рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдХрд╛рд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╕реАрдзреЗ рд╡рд┐рдкрд░реАрдд рдПрд▓рдИрдбреА рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдмрд╛рдж рдореЗрдВ рдХреЛрдиреЛрдВ рдХреЛ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВред рдЖрдХрд╛рд░ рджреЗрддреЗ рд╕рдордп, рд╣рдореЗрдВ рдмрд╕ рдФрд╕рдд рд░рдВрдЧ рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдПрд▓рдЗрдбреА рдХреЗ рдкрд┐рдХреНрд╕рд▓ рдореЗрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред



4. рд╣рдо рдХрдЯ рдлреНрд░реЗрдо рд╕реЗ рдПрд▓рдИрдбреА рдХреА рдореИрдкрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ


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



5. рд░рдВрдЧ рд╕реБрдзрд╛рд░ (рд╕рдлреЗрдж рд╕рдВрддреБрд▓рди / рд░рдВрдЧ рд╕рдВрддреБрд▓рди) рдХрд░реЗрдВ


рдЯреАрд╡реА рдХреЗ рдкреАрдЫреЗ рдХреА рджреАрд╡рд╛рд░реЗрдВ рдмреАрдо рд╕реЗ рд╣реИрдВ, рдмреАрдо рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкреАрд▓реЗрдкрди рдХреА рднрд░рдкрд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

var blue = 255.0f / (255.0f + blueLevelFloat) * pixelBuffer [k];

var рд╣рд░рд╛ = 255.0f / (255.0f + greenLevelFloat) * рдкрд┐рдХреНрд╕реЗрд▓рдмрдлрд╝рд░ [k + 1];

var рд▓рд╛рд▓ = 255.0f / (255.0f + redLevelFloat) * рдкрд┐рдХреНрд╕реЗрд▓рдмрдлрд╝рд░ [k + 2];

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рдХреБрдЫ рдУрдкрди рд╕реЛрд░реНрд╕ рдПрдбрд┐рдЯрд░ рдХреЗ рд╕реНрд░реЛрдд рд╕реЗ рд░рдВрдЧ рд╕рдВрддреБрд▓рди рд▓рд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдлреЗрдж рдирд╣реАрдВ рд╣реБрдЖ (рд╕рдлреЗрдж рдмрдиреЗ рд░рд╣реЗ), рдореИрдВрдиреЗ рд╕реВрддреНрд░реЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджрд┐рдпрд╛, рд╕реАрд▓ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рд╡рд╣ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рд╕реАрдзреЗ рдЬрд░реВрд░рдд рд╣реИ: рдпрджрд┐ рд░рдВрдЧ рдШрдЯрдХ рдХрд╛ рд╕реНрддрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ (рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛ рдХрд┐ - рдпрд╣ рд░рдВрдЧ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ), рдлрд┐рд░ рд╣рдо рдЗрд╕рдХреА рддреАрд╡реНрд░рддрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдореЗрд░реА рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛: RGB (-30.5.85)ред



рд░рдВрдЧ рд╕реБрдзрд╛рд░ рдореЗрдВ, рдореИрдВ рдмреНрд▓реИрдХ рд▓реЗрд╡рд▓рд┐рдВрдЧ рднреА рдХрд░рддрд╛ рд╣реВрдВ (рдЖрд░рдЬреАрдмреА рдореЗрдВ 13.13.13 рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╣реАрдВ рдХрд╛рд▓рд╛ рдЖрддрд╛ рд╣реИ) рдмрд╕ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд╕рд╛рде 13 рдШрдЯрд╛рдХрд░ред



6. рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореА (рдЫрд╡рд┐ рд╕рдВрддреГрдкреНрддрд┐ рдореЗрдВ рдХрдореА)


рдЕрдВрддрд┐рдо рд╕реЗрдЯрдЕрдк рдореЗрдВ, рдореИрдВ desaturation рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдлрд┐рд▓рд┐рдкреНрд╕ рдЕрдВрдмрд┐рд▓рд┐рдЯ рдХреА рддрд░рд╣ рд░рдВрдЧреЛрдВ рдХреЛ рдЕрдзрд┐рдХ "рдкреЗрд╕реНрдЯрд▓" рдмрдирд╛рддрд╛ рд╣реИред рдореИрдВ рдХреЛрдб рдирд╣реАрдВ рджреВрдВрдЧрд╛, рд╣рдо рдмрд╕ RGB -> HSL рд╕реЗ рдХрдиреНрд╡рд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрддреГрдкреНрддрд┐ рдШрдЯрдХ (рд╕рдВрддреГрдкреНрддрд┐) рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдкрд╕ RGB рдореЗрдВ рд▓реМрдЯрддреЗ рд╣реИрдВред



7. рдбрд┐рдлреНрд▓рд┐рдХрд░


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

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

рдореЗрд░реЗ рд╡рд┐рдХреНрд╖реЗрдкрдХ рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд (рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП) рдХреЛрдб:

 Array.Copy(_leds, _ledsOld, _leds.Length); for (var i = 0; i < _leds.Length; i++) { double lumSum = 0; // Calculate the luminance of the current led. lumSum += _leds[i].R*_leds[i].R; lumSum += _leds[i].G*_leds[i].G; lumSum += _leds[i].B*_leds[i].B; lumSum = Math.Sqrt(lumSum); // Do led processing var avgLum = 0.0; for (var j = 0; j < LedLumWindow; j++) { avgLum += _lumData[j, i]; } var avg = avgLum/LedLumWindow; var ledChange = false; if (_strengthcutoff < 256 && _lumData[0, i] != 256 && Math.Abs((int) lumSum - avg) >= _strengthcutoff) { _lumData[0, i] = 256; ledChange = true; } // Calculate the adjustment factor for the current led. var scale = 1.0; int r, g, b; if (ledChange) { for (var j = 0; j < LedLumWindow; j++) { _lumData[j, i] = (int) lumSum; } } else { for (var j = 0; j < LedLumWindow - 1; j++) { _lumData[j, i] = _lumData[j + 1, i]; } _lumData[LedLumWindow - 1, i] = (int) lumSum; if (lumSum > 0) { scale = 1.0f/((avg+lumSum)/2); var filt = 0.0f; for (var j = 0; j < LedLumWindow; j++) { filt += (float) _lumData[j, i]/LedLumWindow; } scale *= filt; } // Adjust the current Led. r = _leds[i].R; g = _leds[i].G; b = _leds[i].B; // save source values var sr = r; var sg = g; var sb = b; var max = r; if (g > max) max = g; if (b > max) max = b; double s; if (scale*max > 255) s = 255.0/max; else s = scale; r = (int) (s*r); g = (int) (s*g); b = (int) (s*b); // keep highlight double k; if (sr > _lv) { k = (sr - _lv)/(double) (255 - _lv); r = (int) ((k*sr) + ((1.0 - k)*r)); } if (sg > _lv) { k = (sg - _lv)/(double) (255 - _lv); g = (int) ((k*sg) + ((1.0 - k)*g)); } if (sb > _lv) { k = (sb - _lv)/(double) (255 - _lv); b = (int) ((k*sb) + ((1.0 - k)*b)); } _leds[i] = Color.FromArgb(r, g, b); } /* Temporal softening phase. */ if (ledChange || _softening == 0) continue; var diffR = Math.Abs(_leds[i].R - _ledsOld[i].R); var diffG = Math.Abs(_leds[i].G - _ledsOld[i].G); var diffB = Math.Abs(_leds[i].B - _ledsOld[i].B); r = _leds[i].R; g = _leds[i].G; b = _leds[i].B; int sum; if (diffR < _softening) { if (diffR > (_softening >> 1)) { sum = _leds[i].R + _leds[i].R + _ledsOld[i].R; r = sum/3; } } if (diffG < _softening) { if (diffG > (_softening >> 1)) { sum = _leds[i].G + _leds[i].G + _ledsOld[i].G; g = sum/3; } } if (diffB < _softening) { if (diffB > (_softening >> 1)) { sum = _leds[i].B + _leds[i].B + _ledsOld[i].B; b = sum/3; } } _leds[i] = Color.FromArgb(r, g, b); }
      
      





рдЪрд▓реЛ _leds рд░рдВрдЧ рд╡рд░реНрдЧ рдХреЗ рдПрд▓ рдИ рдбреА рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛ, _ledsOld рд░реВрдкрд╛рдВрддрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдлреНрд░реЗрдо рдорд╛рди рд╣реЛ, LedLumWindow рдкрд┐рдЫрд▓реЗ рдлреНрд░реЗрдо рдХреА рдЦрд┐рдбрд╝рдХреА рдХреА рдЪреМрдбрд╝рд╛рдИ рд╣реЛ, рддреАрд╡реНрд░рддрд╛ рдореЗрдВ рдФрд╕рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд┐рдо рд╕реЗрдЯрдЕрдк рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ 100 рдХреА рд╡рд┐рдВрдбреЛ рдереА, рдЬреЛ рд▓рдЧрднрдЧ 30fps рдкрд░ 3 рд╕реЗрдХрдВрдб рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред _lumData - рдкрд┐рдЫрд▓реЗ рдлрд╝реНрд░реЗрдореЛрдВ рдХреА рддреАрд╡реНрд░рддрд╛ рдорд╛рди рдХреА рдПрдХ рд╕рд░рдгреАред



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



8. рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдореЗрдВ рдПрд▓рдИрдбреА рдХреЛ рдЪрд┐рдХрдирд╛ рдХрд░рдирд╛ред


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдВрддрд┐рдо рд╕реЗрдЯрдЕрдк рдореЗрдВ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪреМрд░рд╕рд╛рдИ рдкрд╕рдВрдж рдирд╣реАрдВ рдереА, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдХрд╛рдо рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╣рдо рдЕрдкрдиреЗ рдкрдбрд╝реЛрд╕реА рдХреЗ рдКрдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдПрд▓рдИрдбреА рдХреЗ рд░рдВрдЧ рдХреЛ рдФрд╕рдд рдХрд░рддреЗ рд╣реИрдВред

 var smothDiameter = 2*_smoothRadius + 1; Array.Copy(_leds, _ledsOld, _leds.Length); for (var i = 0; i < _ledsOld.Length; i++) { var r = 0; var g = 0; var b = 0; for (var rad = -_smoothRadius; rad <= _smoothRadius; rad++) { var pos = i + rad; if (pos < 0) { pos = _ledsOld.Length + pos; } else if (pos > _ledsOld.Length - 1) { pos = pos - _ledsOld.Length; } r += _ledsOld[pos].R; g += _ledsOld[pos].G; b += _ledsOld[pos].B; } _leds[i] = Color.FromArgb(r/smothDiameter, g/smothDiameter, b/smothDiameter); }
      
      







9. рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рдПрдВ рддрд╛рдХрд┐ рдкреИрдХреЗрдЯ рдереНрд░реЗрдб рдХрдмреНрд░реЛрдВ рдХреЛ рднреЗрдЬрдиреЗ рдФрд░ рдмреИрдХрд▓рд╛рдЗрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред


рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдлреНрд░реЗрдо рдФрд░ рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ: рдкреИрдХреЗрдЯ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ (рдПрдХ рдмрд╛рд░ 40 рдореА) рдореЗрдВ рдПрдХ рдмрд╛рд░ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ Arduino рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХреЗ, рдХреНрдпреЛрдВрдХрд┐ 30ms рд╕реЗ рдЕрдзрд┐рдХ рдпрд╣ рдЪреЛрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕реАрдзреЗ рдлреНрд░реЗрдо рд░реЗрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИрдВред рдХрдмреНрдЬрд╛ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗрдВ (рд▓реЗрдХрд┐рди рдПрдХ рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рдореЗрдВ рднреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ)ред



Arduino рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛


рдЖрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП Arduino рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ рдФрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ HardwareSerial рдмрдлрд░ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдк рдЗрд╕рдХрд╛ рдЕрдВрдд рдЦреЛ рджреЗрдВрдЧреЗред

рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╣рдордиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рд╕рд░реАрдпрд░ рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрд╛рдлреА рдмрдбрд╝рд╛ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд░рдВрдЧреЛрдВ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рднреЗрдЬреЗ рдЧрдП рдкреИрдХреЗрдЯ рдХреЛ рдлрд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ 410 рд╣реИред



рдпреВрдЖрдИ


рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдПрдХ рдЬреАрдд рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП + рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╡реЗрдм рдпреВрдЖрдИ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдиреЗ рд╕реЗрд╡рд╛ рдкрд░ рд╡реЗрдмрд╕рд░реНрд╡рд┐рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрд╡рд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ред рдореЛрдмрд╛рдЗрд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдВрддрд┐рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЫрд╡рд┐



рдЕрдм рдореИрдВ HTCP рд╕реЗ рдЬреБрдбрд╝реЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП Kinect рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡рд╛рдЬ рдирд┐рдпрдВрддреНрд░рдг рдкреЗрдВрдЪ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред



рдкрд░рд┐рдгрд╛рдо


рдирддреАрдЬрддрди, рдкрд░рд┐рдгрд╛рдо рд╕рднреА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рдерд╛, рдФрд░ рдЕрдм рдХрдВрд╕реЛрд▓ рдкрд░ рдЧреЗрдо рдЦреЗрд▓рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЦреЗрд▓ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╡рд┐рд╕рд░реНрдЬрди рдорд┐рд▓рддрд╛ рд╣реИред



рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреА рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛:



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







рдЯреЗрд╕реНрдЯ рд╕реИрдВрдкрд▓ 2: YouTube рд╕реЗ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП MLP рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡реАрдбрд┐рдпреЛ рдЪрдордХреАрд▓реЗ рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ (рдореБрдЭреЗ рдкрдЯреНрдЯрд┐рдпрд╛рдБ рдкрд╕рдВрдж рд╣реИрдВ), рд╕рд╛рде рд╣реА рд╕рд╛рде рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓рддреЗ рджреГрд╢реНрдп (рд╡реАрдбрд┐рдпреЛ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рд╡реАрдбрд┐рдпреЛ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рджреЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рд╡реАрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рджреЗрд░реА рдХреЛ рдорд╛рдкрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА - рдпрд╣ 10-20 рд╕реЗрдореА рдирд┐рдХрд▓рд╛):







рдФрд░ рдЕрдВрдд рдореЗрдВ, рдпрд╣ HTPC рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ:

HTPC I рдореЗрдВ 3 рдкрд░ ASRock Vision 3D рд╣реИ, рд╡рд╛рдпреБрдордВрдбрд▓ рд╕реЗрд╡рд╛ 5-10% CPU рдФрд░ 32MB RAM рдЦрд╛рддреА рд╣реИред



рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред



All Articles