{"id":164979,"date":"2013-01-08T00:19:03","date_gmt":"2013-01-07T20:19:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=164979"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=164979","title":{"rendered":"<span class=\"post_title\">\u041f\u0440\u043e\u0435\u043a\u0442 \u00ab\u0440\u043e\u0431\u043e\u0442-\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u00bb: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u041c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434 <a href=\"http:\/\/habrahabr.ru\/post\/161803\/\">\u044f \u043f\u0438\u0441\u0430\u043b<\/a> \u043e\u0431 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043c\u043e\u0438\u043c \u0440\u043e\u0431\u043e\u0442\u043e\u043c-\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u043e\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f. (\u0416\u0430\u043b\u044c, \u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u044f \u0437\u0430\u043f\u043e\u0441\u0442\u0438\u043b \u0432 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u043d\u043e\u0447\u044c \u043d\u0430 \u0441\u0443\u0431\u0431\u043e\u0442\u0443, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0451 \u043c\u0430\u043b\u043e \u043a\u0442\u043e \u0443\u0432\u0438\u0434\u0435\u043b.) \u041a\u0430\u043a \u044f \u043e\u0442\u043c\u0435\u0442\u0438\u043b, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u0451\u0441\u043d\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0440\u043e\u0431\u043e\u0442\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0451 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u2014 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u043e\u0431\u043e\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0431\u0430\u0440\u043a\u043e\u0434 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043f\u043e\u043b\u043e\u043a \u0441\u043a\u043b\u0430\u0434\u0430. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0449\u0443\u044e\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0443 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u044b\u043b\u043e \u043d\u0435\u0447\u0435\u043c.<\/p>\n<p>  \u042f \u043e\u0431\u0441\u0443\u0434\u0438\u043b \u0441\u0432\u043e\u0438 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u044f \u0441 \u0434\u0435\u0432\u0443\u0448\u043a\u043e\u0439-\u0433\u0443\u043c\u0430\u043d\u0438\u0442\u0430\u0440\u0438\u0435\u043c, \u0438 \u0441\u043f\u0440\u043e\u0441\u0438\u043b, \u043a\u0430\u043a\u0438\u0435 \u0435\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u041f\u043e \u0435\u0451 \u0441\u043b\u043e\u0432\u0430\u043c, \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0441\u043a\u043e\u043c \u043c\u0443\u0437\u0435\u0435 \u043d\u0430\u0443\u043a\u0438 \u043e\u043d\u0430 \u0437\u0430\u0441\u0442\u0430\u043b\u0430 \u044d\u043a\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u0443\u044e \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043c\u0443\u0440\u0430\u0432\u044c\u0451\u0432 \u043f\u043e \u0432\u0438\u0434\u0443 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0432\u0432\u0435\u0440\u0445 \u043d\u0430\u0434 \u0433\u043e\u043b\u043e\u0432\u043e\u0439. \u041f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u044f\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u0432\u0437\u044f\u0442\u044c \u0437\u0435\u0440\u043a\u0430\u043b\u043e \u0438 \u0438\u0434\u0442\u0438 \u043f\u043e \u043a\u043e\u043c\u043d\u0430\u0442\u0435, \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u044f \u0432 \u044d\u0442\u043e \u0437\u0435\u0440\u043a\u0430\u043b\u043e \u0443\u0437\u043e\u0440\u044b \u043d\u0430 \u043f\u043e\u0442\u043e\u043b\u043a\u0435 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u044f\u0441\u044c \u043b\u0438\u0448\u044c \u043f\u043e \u043d\u0438\u043c. (\u041a\u0430\u0440\u0442\u0430 \u043f\u043e\u0442\u043e\u043b\u043a\u0430 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u043b\u0430\u0441\u044c.)<\/p>\n<p>  \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c: \u0447\u0442\u043e \u0432\u0438\u0434\u0438\u0442 \u043d\u0430 \u043f\u043e\u0442\u043e\u043b\u043a\u0435 \u0441\u043a\u043b\u0430\u0434\u0430 \u043c\u043e\u0439 \u0440\u043e\u0431\u043e\u0442?<br \/>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"http:\/\/www.youtube.com\/embed\/iM-WZb50Yr8\" frameborder=\"0\" allowfullscreen><\/iframe><br \/>  <a name=\"habracut\"><\/a><br \/>  \u0414\u0430\u0436\u0435 \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u043c\u044b \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u043e\u043a\u043d\u0430. \u0412\u0441\u0435 \u043e\u043d\u0438, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u0435\u0439 \u0441\u043a\u043b\u0430\u0434\u0430, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b \u0438 \u0440\u044f\u0434\u0430\u043c \u043f\u043e\u043b\u043e\u043a. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u00ab\u0432 \u043a\u0430\u0434\u0440\u00bb \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u043e\u043a\u043d\u043e \u0438 \u044f \u0441\u043c\u043e\u0433\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u2014 \u0442\u043e \u044f \u043f\u043e\u043b\u0443\u0447\u0430\u044e \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u043e\u0431\u043e\u0442\u0430, \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e 180\u00b0. \u041e\u043a\u043d\u0430 \u0432\u0438\u0434\u043d\u043e \u043d\u0435 \u0438\u0437 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0441\u043a\u043b\u0430\u0434\u0430, \u043d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438 \u043a\u0443\u0440\u0441\u0430 \u2014 \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043a\u0430\u0434\u0440 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0430\u0441\u0442\u043e.<\/p>\n<p>  \u0412 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u044f \u043d\u0435 \u043c\u0430\u0441\u0442\u0430\u043a, \u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u044f <a href=\"http:\/\/habrahabr.ru\/qa\/28989\/#reply\">\u0441\u043f\u0440\u043e\u0441\u0438\u043b \u043d\u0430 Q&#038;A<\/a> \u2014 \u043d\u0435\u0442 \u043b\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u043e\u043a\u043e\u043d \u0447\u0435\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043b\u0438 OpenCV? \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u043e\u043b\u043a\u043e\u0432\u043e\u0433\u043e \u043c\u043d\u0435 \u043d\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u2014 \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u00ab\u0432 \u0442\u0435\u043c\u0435\u00bb, \u0441\u043e\u0447\u043b\u0438 \u043d\u0438\u0436\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0436\u0451\u0432\u044b\u0432\u0430\u0442\u044c \u0447\u0430\u0439\u043d\u0438\u043a\u0443 \u0430\u0437\u044b.<\/p>\n<blockquote><p>\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0444\u043e\u0440\u0443\u043c: \u0437\u0430\u0434\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0448\u044c \u043e\u0442\u0432\u0435\u0442.<br \/>  \u0418\u0437\u0440\u0430\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0444\u043e\u0440\u0443\u043c: \u0437\u0430\u0434\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0448\u044c \u0432\u043e\u043f\u0440\u043e\u0441.<br \/>  \u0420\u0443\u0441\u0441\u043a\u0438\u0439 \u0444\u043e\u0440\u0443\u043c: \u0437\u0430\u0434\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u0442\u0435\u0431\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442, \u043a\u0430\u043a\u043e\u0439 \u0442\u044b \u043c\u0443\u0434\u0430\u043a.  <\/p><\/blockquote>\n<p>  \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435, \u0447\u0442\u043e \u0440\u043e\u0431\u043e\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u0438\u0437-\u043f\u043e\u0434 Microsoft Robotics Development Studio, \u0430 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 .NET-\u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 OpenCV \u044f \u043d\u0435 \u043d\u0430\u0448\u0451\u043b \u2014 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0441 \u043d\u0443\u043b\u044f. \u041d\u0435 \u0440\u0430\u043a\u0435\u0442\u043d\u0430\u044f \u043d\u0430\u0443\u043a\u0430, \u0447\u0430\u0439 \u2014 \u0432\u0441\u0435\u0433\u043e-\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u044f\u0440\u043a\u043e-\u0431\u0435\u043b\u044b\u0435 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438.<\/p>\n<p>  \u041f\u043e\u0442\u043e\u043b\u043e\u043a \u0441\u043a\u043b\u0430\u0434\u0430 \u0440\u043e\u0431\u043e\u0442\u043e\u043c \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/637\/de0\/312\/637de03126408f4135da3f357fd5a53a.jpg\"\/><\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u0434\u0435\u043b\u0438\u043c \u044f\u0440\u043a\u043e-\u0431\u0435\u043b\u043e\u0435 \u043e\u043a\u043d\u043e \u043e\u0442 \u0442\u0451\u043c\u043d\u043e\u0433\u043e \u0444\u043e\u043d\u0430. \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0438\u0437 RGB \u0432 YCbCr \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e Y=227 (\u043f\u043e\u0440\u043e\u0433 \u0432\u044b\u0431\u0440\u0430\u043d \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u0443\u0442\u0451\u043c, \u0438 \u0432 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u0440\u0435 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0431\u044b \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e \u043f\u043e \u044f\u0440\u043a\u043e\u0441\u0442\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0446\u0435\u043b\u043e\u043c). \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 640\u0445480 \u0434\u043e 320\u0445240 \u2014 \u043d\u0430\u043c \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0441\u044f \u0432\u0447\u0435\u0442\u0432\u0435\u0440\u043e.<\/p>\n<p>  \u041a\u043e\u0434:  <\/p>\n<pre><code>byte[] bytes = response.Frame; int stride = bytes.Length \/ height;  byte[,] belong = (byte[,])Array.CreateInstance(typeof(byte), new int[] { 326, 246 }, new int[] { -3, -3 });  int Ythreshold = settings.Ythreshold; for (int y = 0; y &lt; 240; y++) {     int offset = stride * y * 2;     for (int x = 0; x &lt; 320; x++)     {         int blu = bytes[offset] + bytes[offset + 3] + bytes[offset + stride] + bytes[offset + stride + 3]; offset++;         int grn = bytes[offset] + bytes[offset + 3] + bytes[offset + stride] + bytes[offset + stride + 3]; offset++;         int red = bytes[offset] + bytes[offset + 3] + bytes[offset + stride] + bytes[offset + stride + 3]; offset += 4;          belong[x, y] = (0.299 \/ 4 * red + 0.587 \/ 4 * grn + 0.114 \/ 4 * blu &gt; Ythreshold ? (byte)1 : (byte)0);     } } <\/code><\/pre>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/a45\/3e3\/6e5\/a453e36e5b105583b238bd0907567841.jpg\"\/><\/p>\n<p>  \u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445, \u0432\u043f\u0440\u0438\u0434\u0430\u0447\u0443 \u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u043e\u043a\u043d\u0443 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0448\u0443\u043c \u0438\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u043e\u0432 \u043d\u0430 \u0431\u043b\u0438\u043a\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044f\u0445, \u0434\u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u00ab\u0432\u044b\u0431\u0438\u0442\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438\u00bb, \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0432\u0435\u0442\u043b\u044b\u0435.<\/p>\n<p>  \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0448\u0443\u043c \u043c\u0435\u0434\u0438\u0430\u043d\u043d\u044b\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u043c (\u0445\u043e\u0442\u044f \u0432 QA \u043c\u043d\u0435 \u043e\u0442\u0447\u0435\u0433\u043e-\u0442\u043e \u0441\u043e\u0432\u0435\u0442\u043e\u0432\u0430\u043b\u0438 \u0433\u0430\u0443\u0441\u0441\u043e\u0432\u0441\u043a\u043e\u0435 \u0440\u0430\u0437\u043c\u044b\u0442\u0438\u0435. \u041d\u0443 \u0432\u043e\u0442 \u0437\u0430\u0447\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0437\u043c\u044b\u0442\u0438\u0435?) \u0441 \u0440\u0430\u0434\u0438\u0443\u0441\u043e\u043c 3 \u043f\u0438\u043a\u0441\u0435\u043b\u0430, \u0438 \u043f\u043e\u0440\u043e\u0433\u043e\u043c \u0432 5 \u0441\u0432\u0435\u0442\u043b\u044b\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0438\u0437 21 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0445. \u0422\u0430\u043a\u043e\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u00ab\u0441\u043a\u043b\u043e\u043d\u044f\u0435\u0442\u0441\u044f\u00bb \u043a \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e \u0441\u0432\u0435\u0442\u043b\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0435\u0441\u0442\u044c \u0442\u0451\u043c\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u2014 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0448\u0435 \u043e\u043a\u043d\u043e \u0438\u0437 \u0442\u0440\u0451\u0445 \u0441\u0442\u0451\u043a\u043e\u043b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043b\u043e\u0441\u044c \u0432 \u043e\u0434\u0438\u043d \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a.<\/p>\n<pre><code>private bool[,] filtered = (bool[,])Array.CreateInstance(typeof(bool), new int[] { 326, 246 }, new int[] { -3, -3 });  int medianThreshold = settings.MedianThreshold; for (int x = 0; x &lt; 320; x++)     for (int y = 0; y &lt; 240; y++)               filtered[x, y] = belong[x - 1, y - 2] + belong[x, y - 2] + belong[x + 1, y - 2] +         belong[x - 2, y - 1] + belong[x - 1, y - 1] + belong[x, y - 1] + belong[x + 1, y - 1] + belong[x + 2, y - 1] +         belong[x - 2, y * 1] + belong[x - 1, y * 1] + belong[x, y * 1] + belong[x + 1, y * 1] + belong[x + 2, y * 1] +         belong[x - 2, y + 1] + belong[x - 1, y + 1] + belong[x, y + 1] + belong[x + 1, y + 1] + belong[x + 2, y + 1] +                                belong[x - 1, y + 2] + belong[x, y + 2] + belong[x + 1, y + 2] &gt; medianThreshold; <\/code><\/pre>\n<p>  \u0420\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 <code>belong<\/code> \u0438 <code>filtered<\/code> \u2014 [-3..322, -3..242] \u2014 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u043d\u0430\u0440\u043e\u0447\u043d\u043e \u0441 \u00ab\u043f\u043e\u043b\u044f\u043c\u0438\u00bb \u043f\u043e \u0442\u0440\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u0430 \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u044d\u0442\u0438\u043c\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438, \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0431\u0435\u043b\u044b\u043c\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043a\u043d\u043e, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u043e\u0435 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0441\u0442\u0451\u043a\u043e\u043b, \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u0438\u043a\u043e\u0432 \u043d\u0430 \u043f\u043e\u043b\u043a\u0435:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/fe1\/256\/58d\/fe125658dc8ea7b5e2b743a2203ee517.jpg\"\/><\/p>\n<p>  \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c, \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0431\u0435\u043b\u043e\u0435 \u043f\u044f\u0442\u043d\u043e \u0432 \u043a\u0430\u0434\u0440\u0435 \u2014 \u044d\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u043a\u043d\u043e. \u0417\u0430\u043b\u044c\u0451\u043c (floodfill) \u043a\u0430\u0436\u0434\u043e\u0435 \u0431\u0435\u043b\u043e\u0435 \u043f\u044f\u0442\u043d\u043e, \u0438 \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438.<\/p>\n<pre><code>int biggest_area = 0; byte area_id = 1, biggest_id = 0; \/\/ areas start from 2 Rectangle bounds = new Rectangle(); PointF cg = new PointF(); \/\/ center Point[] stack = new Point[320*200];   for (int x = 0; x &lt; 320; x++)     for (int y = 0; y &lt; 240; y++)         if (filtered[x, y] && belong[x, y] &lt;= 1)         {             int area = 0, left = 320, top = 240, right = 0, bottom = 0;             int sx = 0, sy = 0;             ++area_id;             \/\/ FloodFill              int sp = 0;             stack[0] = new Point(x, y);             while (sp &gt;= 0)             {                 Point next = stack[sp--];                 area++;                 sx += next.X;                 sy += next.Y;                 belong[next.X, next.Y] = area_id;                  if (next.X &lt; left) left = next.X;                 if (next.X &gt; right) right = next.X;                 if (next.Y &lt; top) top = next.Y;                 if (next.Y &gt; bottom) bottom = next.Y;                  if (filtered[next.X - 1, next.Y] && belong[next.X - 1, next.Y] &lt;= 1) stack[++sp] = new Point(next.X - 1, next.Y);                 if (filtered[next.X, next.Y - 1] && belong[next.X, next.Y - 1] &lt;= 1) stack[++sp] = new Point(next.X, next.Y - 1);                 if (filtered[next.X, next.Y + 1] && belong[next.X, next.Y + 1] &lt;= 1) stack[++sp] = new Point(next.X, next.Y + 1);                 if (filtered[next.X + 1, next.Y] && belong[next.X + 1, next.Y] &lt;= 1) stack[++sp] = new Point(next.X + 1, next.Y);             }             if (area &gt; biggest_area)             {                 biggest_area = area;                 biggest_id = area_id;                 bounds = new Rectangle(left, top, right - left, bottom - top);                 cg = new PointF((float)sx \/ area, (float)sy \/ area);             }         } <\/code><\/pre>\n<p>  \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043e! \u0414\u0432\u0443\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u2014 \u0431\u0435\u043b\u044b\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0430 \u0447\u0451\u0440\u043d\u043e\u043c \u0444\u043e\u043d\u0435. \u041c\u044b \u0434\u0430\u0436\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0435\u0433\u043e \u00ab\u0446\u0435\u043d\u0442\u0440\u0430 \u043c\u0430\u0441\u0441\u00bb <code>cg<\/code> (\u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438\u0438 \u2014 \u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430) \u0438 \u0433\u0440\u0430\u043d\u0438\u0446 (\u0437\u0435\u043b\u0451\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u2014 \u0446\u0435\u043d\u0442\u0440 bounding box). \u041c\u043e\u0436\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0448\u0435 \u0431\u0435\u043b\u043e\u0435 \u043f\u044f\u0442\u043d\u043e \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043e\u043a\u043d\u043e: \u043f\u043b\u043e\u0449\u0430\u0434\u044c <code>biggest_area<\/code> \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 2000 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043c\u0438 \u2014 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 20 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u0438\u043d\u0430\u0447\u0435 \u0444\u0438\u0433\u0443\u0440\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043d\u0435\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u041d\u043e \u043a\u0430\u043a \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044e?<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/13e\/07b\/311\/13e07b3119dbd8f74f200eb6ee2b38c3.png\"\/><\/p>\n<p>  \u0420\u0430\u043a\u0435\u0442\u043d\u044b\u0435 \u0443\u0447\u0451\u043d\u044b\u0435, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438 \u0431\u044b <a href=\"http:\/\/ru.wikipedia.org\/wiki\/\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435_\u0425\u0430\u0444\u0430\">\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0425\u0430\u0444\u0430<\/a>, \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 4-\u043c\u0435\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (\u0448\u0438\u0440\u0438\u043d\u0430, \u0434\u043b\u0438\u043d\u0430, \u0443\u0433\u043e\u043b \u043d\u0430\u043a\u043b\u043e\u043d\u0430, \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442), \u0438 \u0438\u0441\u043a\u0430\u043b\u0438 \u0431\u044b \u0442\u0430\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c. \u041d\u043e \u044f \u043f\u043e\u0434\u043e\u0448\u0451\u043b \u043a \u0437\u0430\u0434\u0430\u0447\u0435 \u043f\u043e \u0440\u0430\u0431\u043e\u0447\u0435-\u043a\u0440\u0435\u0441\u0442\u044c\u044f\u043d\u0441\u043a\u0438, \u0438 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u00ab\u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443\u00bb \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u0435\u043a \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043e\u0442 \u0435\u0433\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430:<\/p>\n<pre><code>PointF c = new PointF(bounds.Left + (float)bounds.Width \/ 2, bounds.Top + (float)bounds.Height \/ 2);  int[] hist = new int[400];  for (int i = 0; i &lt; 400; i++) hist[i] = 0;  int maxdist = 0; for (int x = bounds.Left; x &lt;= bounds.Right; x++)     for (int y = bounds.Top; y &lt;= bounds.Bottom; y++)         if (belong[x, y] == biggest_id)         {             int dist = (int)Math.Sqrt(Sqr(x - c.X) + Sqr(y - c.Y));             hist[dist]++;             if (dist &gt; maxdist) maxdist = dist;         } <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/b86\/034\/e72\/b86034e7294c824cc756896e61149240.png\"\/><\/p>\n<p>  \u0421\u0435\u0440\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u2014 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u043d\u0430 \u043d\u0435\u0439 \u0442\u0451\u043c\u043d\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u0430 \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c, \u0442.\u0435. \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0442\u043e\u0447\u0435\u043a \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. (\u041d\u0430 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u0442\u0451\u043c\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044e.) \u041b\u0435\u0433\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0448\u0438\u0440\u0438\u043d\u0430 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430: \u0434\u043e \u043d\u0435\u0451 \u2014 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043b\u0438\u043d\u0435\u0439\u043d\u043e (\u0441 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c <i>\u03c0<\/i>) \u0440\u0430\u0441\u0442\u0451\u0442; \u043f\u043e\u0442\u043e\u043c \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0443\u0431\u044b\u0432\u0430\u0435\u0442, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u0439\u0434\u0451\u0442 \u0434\u043e \u043f\u043e\u043b\u0443\u0434\u043b\u0438\u043d\u044b \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430; \u0441 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u00ab\u0443\u0433\u043e\u043b\u043a\u0430\u00bb \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u0438 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0435\u0437\u043a\u043e \u0441\u043f\u0430\u0434\u0430\u0435\u0442. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430\u0439\u0442\u0438 \u0434\u043b\u0438\u043d\u0443 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 \u00ab\u043e\u0431\u0440\u044b\u0432\u00bb \u043d\u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u2014 \u043a\u0440\u0430\u044f \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0432\u0430\u043d\u044b\u043c\u0438, \u0438 \u0437\u0430\u0448\u0443\u043c\u043b\u044f\u044e\u0442 \u043a\u043e\u043d\u0435\u0446 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041c\u044b \u043f\u043e\u0439\u0434\u0451\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0451\u043c, \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0440\u0443\u0433 \u043d\u0430 5 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0448\u0438\u0440\u0435 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u0412 \u043d\u0451\u043c \u0431\u0443\u0434\u0443\u0442 \u0434\u0432\u0435 \u0447\u0451\u0440\u043d\u044b\u0435 \u00ab\u0431\u043e\u043a\u043e\u0432\u0443\u0448\u043a\u0438\u00bb \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430 \u043f\u043e\u043f\u0435\u0440\u0435\u0447\u043d\u043e\u0439 \u043e\u0441\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/9f6\/011\/95d\/9f601195dc3a5bc5633769d6817f5542.png\"\/><\/p>\n<p>  \u0410\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043d\u0430\u0439\u0434\u0451\u043c \u0446\u0435\u043d\u0442\u0440\u044b \u043c\u0430\u0441\u0441 \u044d\u0442\u0438\u0445 \u00ab\u0431\u043e\u043a\u043e\u0432\u0443\u0448\u0435\u043a\u00bb: \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c. \u0421\u0447\u0438\u0442\u0430\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0446\u0435\u043d\u0442\u0440 \u043c\u0430\u0441\u0441 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u00ab\u043a\u0432\u0430\u0434\u0440\u0430\u043d\u0442\u0435\u00bb, \u043f\u043e\u0442\u043e\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u00ab\u043a\u0432\u0430\u0434\u0440\u0430\u043d\u0442\u044b\u00bb \u0432 \u0434\u0432\u0435 \u043f\u0430\u0440\u044b \u043f\u043e \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u0438 \u0446\u0435\u043d\u0442\u0440\u043e\u0432.  <\/p>\n<pre><code>int r1 = 0; \/\/ incircle radius for (int x = maxdist; x &gt;= 3; x--) {     if (hist[x] &gt; hist[r1]) r1 = x; }  int rSample = r1 + 5; int[] voters = new int[4]; Point[] sums = new Point[4]; Point sampleOrg = new Point(Math.Max((int)(c.X - rSample), 0),                             Math.Max((int)(c.Y - rSample), 0)); Rectangle sample = new Rectangle(sampleOrg, new Size(                                  Math.Min((int)(c.X + rSample), 319) - sampleOrg.X,                                  Math.Min((int)(c.Y + rSample), 239) - sampleOrg.Y)); for (int x = sample.Left; x &lt;= sample.Right; x++)     for (int y = sample.Top; y &lt;= sample.Bottom; y++)         if (belong[x, y] != biggest_id)         {             int dist = (int)Math.Sqrt(Sqr(x - c.X) + Sqr(y - c.Y));             if (dist &gt; r1 && dist &lt;= rSample)             {                 int idx = y &lt; c.Y ? (x &lt; c.X ? 1 : 0)                                   : (x &lt; c.X ? 2 : 3);                 voters[idx]++;                 sums[idx].X += x;                 sums[idx].Y += y;             }         }  PointF adjusted = new PointF(); int vAbove = voters[0] + voters[1],     vBelow = voters[2] + voters[3],      vLeft = voters[2] + voters[1],     vRight = voters[0] + voters[3],     allVoters = vAbove + vBelow; if (allVoters == 0) {     \/\/ abort: no black pixels found } else {     if (vAbove &gt; 0 && vBelow &gt; 0)     {         \/\/ split vertically         PointF above = new PointF((float)(sums[0].X + sums[1].X) \/ vAbove - c.X, (float)(sums[0].Y + sums[1].Y) \/ vAbove - c.Y),                below = new PointF((float)(sums[2].X + sums[3].X) \/ vBelow - c.X, (float)(sums[2].Y + sums[3].Y) \/ vBelow - c.Y);         double dAbove = Math.Sqrt(above.X * above.X + above.Y * above.Y),                dBelow = Math.Sqrt(below.X * below.X + below.Y * below.Y);         if (dAbove &gt;= r1 && dAbove &lt;= rSample && dBelow &gt;= r1 && dBelow &lt;= rSample)             \/\/ the split is valid             adjusted = new PointF((above.X * vAbove - below.X * vBelow) \/ allVoters, (above.Y * vAbove - below.Y * vBelow) \/ allVoters);     }     if (adjusted.X == 0 && adjusted.Y == 0 &&         vLeft &gt; 0 && vRight &gt; 0)     {         \/\/ split horizontally         PointF toleft = new PointF((float)(sums[2].X + sums[1].X) \/ vLeft - c.X, (float)(sums[2].Y + sums[1].Y) \/ vLeft - c.Y),               toright = new PointF((float)(sums[0].X + sums[3].X) \/ vRight - c.X, (float)(sums[0].Y + sums[3].Y) \/ vRight - c.Y);         double dLeft = Math.Sqrt(toleft.X * toleft.X + toleft.Y * toleft.Y),               dRight = Math.Sqrt(toright.X * toright.X + toright.Y * toright.Y);         if (dLeft &gt;= r1 && dLeft &lt;= rSample && dRight &gt;= r1 && dRight &lt;= rSample)             \/\/ the split is valid             adjusted = new PointF((toleft.X * vLeft - toright.X * vRight) \/ allVoters, (toleft.Y * vLeft - toright.Y * vRight) \/ allVoters);     } } <\/code><\/pre>\n<p>  \u0422\u043e\u0447\u043a\u0430 <code>adjusted<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432\u0434\u043e\u043b\u044c \u0435\u0433\u043e \u043f\u043e\u043f\u0435\u0440\u0435\u0447\u043d\u043e\u0439 \u043e\u0441\u0438:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/c26\/46e\/1c8\/c2646e1c8653775b4965d4ab1556a256.png\"\/><\/p>\n<p>  \u041d\u0443 \u0432\u043e\u0442 \u0438 \u0432\u0441\u044f \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u0442\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043f\u043e\u0445\u043e\u0436\u0435 \u043b\u0438 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d\u044b \u043a \u0448\u0438\u0440\u0438\u043d\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u043e\u043a\u043d\u043e.<\/p>\n<p>  \u041f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430 \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u2014 \u043a\u043e\u0433\u0434\u0430 \u043e\u043a\u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043a\u0430\u0434\u0440 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u00ab\u043a\u043e\u043d\u0446\u043e\u043c\u00bb \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u2014 \u043d\u0430\u0441 \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u043a\u043d\u043e \u043d\u0438\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0441\u0431\u0438\u0432\u0430\u0435\u0442 \u0441 \u0442\u043e\u043b\u043a\u0443.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440<\/b><\/p>\n<div class=\"spoiler_text\">\u0418\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/dfe\/4a3\/2ee\/dfe4a32eef67ea5401f667561c3c250c.jpg\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/71e\/d1f\/f84\/71ed1ff8437df4c8d9f065ca0113846f.jpg\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/5f4\/0b8\/54c\/5f40b854ca12d7c34b0fc84cea14d866.jpg\"\/><\/p>\n<p>  \u0413\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/5d1\/bcd\/733\/5d1bcd73326b95fd93460f13b2dac563.png\"\/><\/p>\n<p>  \u041a\u0440\u0443\u0433 \u0441 \u0431\u043e\u043a\u043e\u0432\u0443\u0448\u043a\u0430\u043c\u0438:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/cfc\/e65\/bfb\/cfce65bfb863305c151e6d9d35852dd3.png\"\/><\/p>\n<p>  \u041f\u043e\u043f\u0435\u0440\u0435\u0447\u043d\u0430\u044f \u043e\u0441\u044c:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/18e\/8fd\/e76\/18e8fde76f53440131a414b788058190.png\"\/>  <\/div>\n<\/div>\n<p>  \u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043c\u043d\u043e\u0439 \u043a\u043e\u0434 \u0431\u044b\u043b \u043e\u0431\u043b\u0430\u0447\u0451\u043d \u0432 MRDS-\u0441\u0435\u0440\u0432\u0438\u0441 <code>WindowDetector<\/code> \u2014 \u043f\u043e \u043e\u0431\u0440\u0430\u0437\u0443 \u0438 \u043f\u043e\u0434\u043e\u0431\u0438\u044e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e <code>Technologies\\Vision\\ColorSegment<\/code>. \u041c\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u043c\u0435\u0440\u0435, \u0438 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u043a\u0430\u0434\u0440\u0430 \u0432\u044b\u0441\u044b\u043b\u0430\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c <code>UpdateFoundWindow<\/code> \u0441 \u0443\u0433\u043b\u043e\u043c \u043d\u0430\u043a\u043b\u043e\u043d\u0430 \u043e\u043a\u043d\u0430 \u0432 \u043a\u0430\u0434\u0440\u0435. MRDS-\u0441\u0435\u0440\u0432\u0438\u0441, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0440\u043e\u0431\u043e\u0442\u043e\u043c, \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a <code>WindowDetector<\/code> \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a \u0441\u043a\u0430\u043d\u0435\u0440\u0443 \u0431\u0430\u0440\u043a\u043e\u0434\u043e\u0432, \u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442 \u043e\u0431\u043e\u0438\u0445 \u2014 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0443\u0440\u0441, \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0421 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u043e\u043a\u043e\u043d \u043c\u043e\u0439 \u0440\u043e\u0431\u043e\u0442 \u0435\u0437\u0434\u0438\u043b \u043f\u043e \u0441\u043a\u043b\u0430\u0434\u0443 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0435\u0437\u0432\u043e:<br \/>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"http:\/\/www.youtube.com\/embed\/6QWEAwoBqUg\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>  \u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0430\u044f \u0441\u0443\u0434\u044c\u0431\u0430 \u0440\u043e\u0431\u043e\u0442\u0430 \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u0430. \u0412\u0441\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0447\u0430\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u044a\u0451\u043c\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e \u043a\u043e\u043b\u0451\u0441\u043d\u044b\u0439 \u0434\u0430\u0442\u0447\u0438\u043a \u0437\u0430\u0431\u0438\u043b\u0441\u044f \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u043e\u0439 \u043f\u044b\u043b\u044c\u044e, \u0438 \u0440\u043e\u0431\u043e\u0442 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0441\u0432\u043e\u0438\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041f\u0440\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0435 \u0440\u043e\u0431\u043e\u0442\u0430 \u044d\u0442\u043e\u0442 \u0434\u0430\u0442\u0447\u0438\u043a \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043f\u0435\u0440\u0432\u044b\u043c, \u0442.\u0435. \u0434\u043b\u044f \u0435\u0433\u043e \u0437\u0430\u043c\u0435\u043d\u044b \u043d\u0443\u0436\u043d\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u0432\u0441\u0451 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u043f\u043e\u0442\u043e\u043c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u043e-\u043d\u043e\u0432\u043e\u0439. \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u0442\u0447\u0438\u043a \u00ab\u043d\u0430 \u0436\u0438\u0432\u043e\u043c\u00bb \u0440\u043e\u0431\u043e\u0442\u0435, \u043d\u043e \u043f\u043e \u043d\u0435\u0443\u043a\u043b\u044e\u0436\u0435\u0441\u0442\u0438 \u0437\u0430\u043a\u043e\u0440\u043e\u0442\u0438\u043b \u0431\u0430\u0442\u0430\u0440\u0435\u044e \u043e\u0431\u043e \u0447\u0442\u043e-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u043e\u0431\u043e\u0442\u0430, \u0438 \u0435\u0437\u0434\u0438\u0442\u044c \u043e\u043d \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0441\u043e\u0432\u0441\u0435\u043c. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0435\u0433\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u043e\u0439 \u043f\u043e\u043b\u043a\u0435 \u0440\u044f\u0434\u043e\u043c \u0441 \u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e\u0434\u043d\u0438\u043c \u0440\u043e\u0431\u043e\u0442\u043e\u043c \u2014 \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Roomba. \u041f\u0440\u044f\u043c\u043e \u0440\u043e\u0431\u043e\u043a\u043b\u0430\u0434\u0431\u0438\u0449\u0435, \u0430 \u043d\u0435 \u043f\u043e\u043b\u043a\u0430.<\/p>\n<p>  \u0422\u0430\u043a \u044f \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u044a\u0435\u0437\u0434\u043e\u043c \u0438\u0437 \u0411\u0440\u0438\u0442\u0430\u043d\u0438\u0438 \u0438 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c Eddie \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0440\u043e\u0431\u043e\u0442\u043e\u043c-\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u043e\u043c. \u041d\u043e \u0443\u0436\u0435 \u044d\u0442\u043e\u0439 \u0432\u0435\u0441\u043d\u043e\u0439 \u044f, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0432\u0435\u0440\u043d\u0443\u0441\u044c \u0442\u0443\u0434\u0430 \u0441 \u0437\u0430\u043f\u0447\u0430\u0441\u0442\u044f\u043c\u0438, \u043e\u0436\u0438\u0432\u043b\u044e \u0435\u0433\u043e, \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0443 \u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u044f.    \t \t\t   \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/164979\/\"> http:\/\/habrahabr.ru\/post\/164979\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u041c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434 <a href=\"http:\/\/habrahabr.ru\/post\/161803\/\">\u044f \u043f\u0438\u0441\u0430\u043b<\/a> \u043e\u0431 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043c\u043e\u0438\u043c \u0440\u043e\u0431\u043e\u0442\u043e\u043c-\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u043e\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f. (\u0416\u0430\u043b\u044c, \u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u044f \u0437\u0430\u043f\u043e\u0441\u0442\u0438\u043b \u0432 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u043d\u043e\u0447\u044c \u043d\u0430 \u0441\u0443\u0431\u0431\u043e\u0442\u0443, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0451 \u043c\u0430\u043b\u043e \u043a\u0442\u043e \u0443\u0432\u0438\u0434\u0435\u043b.) \u041a\u0430\u043a \u044f \u043e\u0442\u043c\u0435\u0442\u0438\u043b, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u0451\u0441\u043d\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0440\u043e\u0431\u043e\u0442\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0451 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u2014 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u043e\u0431\u043e\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0431\u0430\u0440\u043a\u043e\u0434 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043f\u043e\u043b\u043e\u043a \u0441\u043a\u043b\u0430\u0434\u0430. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0449\u0443\u044e\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0443 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u044b\u043b\u043e \u043d\u0435\u0447\u0435\u043c.<\/p>\n<p>  \u042f \u043e\u0431\u0441\u0443\u0434\u0438\u043b \u0441\u0432\u043e\u0438 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u044f \u0441 \u0434\u0435\u0432\u0443\u0448\u043a\u043e\u0439-\u0433\u0443\u043c\u0430\u043d\u0438\u0442\u0430\u0440\u0438\u0435\u043c, \u0438 \u0441\u043f\u0440\u043e\u0441\u0438\u043b, \u043a\u0430\u043a\u0438\u0435 \u0435\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u041f\u043e \u0435\u0451 \u0441\u043b\u043e\u0432\u0430\u043c, \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0441\u043a\u043e\u043c \u043c\u0443\u0437\u0435\u0435 \u043d\u0430\u0443\u043a\u0438 \u043e\u043d\u0430 \u0437\u0430\u0441\u0442\u0430\u043b\u0430 \u044d\u043a\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u0443\u044e \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043c\u0443\u0440\u0430\u0432\u044c\u0451\u0432 \u043f\u043e \u0432\u0438\u0434\u0443 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0432\u0432\u0435\u0440\u0445 \u043d\u0430\u0434 \u0433\u043e\u043b\u043e\u0432\u043e\u0439. \u041f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u044f\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u0432\u0437\u044f\u0442\u044c \u0437\u0435\u0440\u043a\u0430\u043b\u043e \u0438 \u0438\u0434\u0442\u0438 \u043f\u043e \u043a\u043e\u043c\u043d\u0430\u0442\u0435, \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u044f \u0432 \u044d\u0442\u043e \u0437\u0435\u0440\u043a\u0430\u043b\u043e \u0443\u0437\u043e\u0440\u044b \u043d\u0430 \u043f\u043e\u0442\u043e\u043b\u043a\u0435 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u044f\u0441\u044c \u043b\u0438\u0448\u044c \u043f\u043e \u043d\u0438\u043c. (\u041a\u0430\u0440\u0442\u0430 \u043f\u043e\u0442\u043e\u043b\u043a\u0430 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u043b\u0430\u0441\u044c.)<\/p>\n<p>  \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c: \u0447\u0442\u043e \u0432\u0438\u0434\u0438\u0442 \u043d\u0430 \u043f\u043e\u0442\u043e\u043b\u043a\u0435 \u0441\u043a\u043b\u0430\u0434\u0430 \u043c\u043e\u0439 \u0440\u043e\u0431\u043e\u0442?<br \/>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"http:\/\/www.youtube.com\/embed\/iM-WZb50Yr8\" frameborder=\"0\" allowfullscreen><\/iframe>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-164979","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/164979","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=164979"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/164979\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=164979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=164979"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=164979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}