{"id":392650,"date":"2024-06-29T10:32:06","date_gmt":"2024-06-29T10:32:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=392650"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=392650","title":{"rendered":"<span>Delphi+OpenCV<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b\u0430 \u043c\u0435\u0447\u0442\u0430\u2026<\/p>\n<p>\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u0440\u043e\u0431\u043e\u0442\u043e\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u0434\u0432\u0438\u0436\u043d\u044b\u043c\u0438 \u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c (\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u00ab\u0432\u0437\u0433\u043b\u044f\u0434\u00bb \u043d\u0430) \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0418 \u044d\u0442\u043e \u0431\u044b\u043b 2012 \u0433\u043e\u0434. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043d\u0435\u0436\u0435\u043b\u0438 \u0436\u0435\u043b\u0435\u0437\u044f\u0447\u043d\u0438\u043a, \u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432. \u0421\u043a\u043e\u0440\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435 \u0435\u0441\u0442\u044c \u0446\u0435\u043b\u044c. \u0426\u0435\u043b\u044c \u2013 \u0440\u043e\u0431\u043e\u0442\u043e\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u041d\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430 Object Pascal \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0438 \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>\u041e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c OpenCV, \u0442\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u0432\u0435\u0440\u0441\u0438\u044f 2.4.2, \u043d\u043e \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Object Pascal. \u041f\u043e\u043f\u044b\u0442\u043a\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 OpenCV \u0431\u044b\u043b\u0438 \u0441\u043a\u0440\u043e\u043c\u043d\u044b\u043c\u0438, \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f. \u041f\u043e\u043c\u043d\u044e \u043e\u0447\u0435\u043d\u044c \u0442\u043e\u0433\u0434\u0430 \u0432\u0437\u0431\u0435\u0441\u0438\u043b\u043e, \u0445\u043e\u0442\u0438\u0442\u0435 Java \u2013 \u0432\u043e\u0442 \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0440\u0442, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u043f\u0440\u043e\u0431\u0440\u043e\u0441 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432 OpenCV \u0438, \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0434\u0438\u043d \u0432 \u043e\u0434\u0438\u043d \u0441 \u0421++ \u0432\u0438\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 Java. \u041f\u043e\u0447\u0442\u0438 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441 Python \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u043c\u0438. \u041a\u043e\u0440\u043e\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0414\u0435\u043b\u044c\u0444\u0438\u0437\u043c (\u0430\u043d\u0430\u043b\u043e\u0433 \u0444\u0435\u043c\u0438\u043d\u0438\u0437\u043c\u0430 \u0443 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u044e\u0434\u0435\u0439) \u0432\u0437\u044f\u043b \u0432\u0435\u0440\u0445.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u0435\u0449\u0435 \u0432\u0435\u0440\u0441\u0438\u044f OpenCV 2.4.2, \u0441 \u0421 (cdecl) x32 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439\u2026 \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043e\u0447\u0435\u043d\u044c \u043e\u0431\u044a\u0435\u043c\u043d\u043e\u0439, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439\u2026 \u0440\u0443\u0442\u0438\u043d\u043d\u043e\u0439, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439\u2026 \u041f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u044c \u00abcdecl; external core_lib;\u00bb \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u044c \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0438\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0438 \u0435\u0433\u043e \u0442\u0438\u043f. \u0414\u0430\u0436\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432\u044b\u0434\u0430\u0432\u0430\u043b\u0438 \u0434\u0438\u0447\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0431\u044b\u043b\u043e \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u041d\u0443 \u0438 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b OpenCV \u044d\u0442\u043e \u043d\u0435 &#171;Hello world&#187; \u2013 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0443\u043c\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0432 \u043a\u043e\u0434 \u043d\u0430 Object Pascal. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0441\u0438\u043b\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 Var \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e cvGetSize \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0439 \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0449\u0438 \u043d\u0435 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f cvImage \u0432 TBitmap (\u0444\u0443\u043d\u043a\u0446\u0438\u044f cvImage2Bitmap) \u2013 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0435 \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0441 \u0441\u0442\u0430\u043b\u043e \u0434\u0432\u043e\u0435. \u041f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/170909\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435<\/a> \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u041c\u0438\u0445\u0430\u0438\u043b \u0413\u0440\u0438\u0433\u043e\u0440\u044c\u0435\u0432 (@Sleuthhound). \u0412 \u0446\u0435\u043b\u043e\u043c, \u0432\u0435\u0441\u044c \u043e\u0431\u044a\u0435\u043c API OpenCV \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 2.4.13 \u0431\u044b\u043b <a href=\"https:\/\/github.com\/Laex\/Delphi-OpenCV\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d<\/a>. \u041f\u043e\u0442\u043e\u043c \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u00ab\u0424\u043e\u0440\u0435\u0441\u0442 \u0413\u0430\u043c\u043f\u00bb &#8212; \u0434\u043e\u0431\u0435\u0436\u0430\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430, \u0430 \u0441\u043c\u043e\u0436\u0435\u043c \u043b\u0438 \u043f\u043e\u0431\u0435\u0436\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435. \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441 OpenCV+OpenGL, OpenCV+SDL, OpenCV+FFMPEG. \u0414\u043b\u044f FFMPEG x32 \u0434\u0430\u0436\u0435 \u0431\u044b\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f <a href=\"https:\/\/github.com\/Laex\/Delphi-FFMPEG\" rel=\"noopener noreferrer nofollow\">\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/a>. \u0411\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u044b \u0432\u0441\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0430 \u0421, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 OpenCV. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 FPC. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0434\u043b\u044f Delphi, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u00ab\u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u044c \u043a\u0430\u0436\u0434\u044b\u0439\u00bb \u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043d\u0435 \u0434\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0434\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u2026 \u0410 \u0432\u0441\u0435 \u043f\u043e\u0447\u0435\u043c\u0443?<\/p>\n<p>\u0414\u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u044b\u0448\u0435\u043b OpenCV 3.0. \u041d\u0443 \u0437\u0430\u0447\u0435\u043c \u0432\u044b \u0442\u0430\u043a\u2026 \u041a\u043b\u0430\u0441\u0441\u044b, \u043d\u0435\u044f\u0432\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u2026 \u0414\u0430 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u2013 x64. Object Pascal \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0442\u0430\u043a \u043d\u0435 \u043c\u043e\u0433. \u0414\u0435\u043b\u044c\u0444\u0438\u0437\u043c \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 \u0441\u0442\u0430\u0434\u0438\u044e \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0414\u0435\u043b\u044c\u0444\u0438\u0437\u043c\u0430.<\/p>\n<p>\u0411\u044b\u043b\u043e \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0421++ \u043a\u043b\u0430\u0441\u0441\u044b \u043d\u0430 Object Pascal. \u041e\u0442\u043f\u0440\u0430\u0432\u043d\u044b\u043c \u043f\u0443\u043d\u043a\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u044f <a href=\"http:\/\/rvelthuis.de\/articles\/articles-cppobjs.html\" rel=\"noopener noreferrer nofollow\">Using C++ objects in Delphi<\/a>. \u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u0435\u0436\u0430\u0442 \u0434\u0432\u0435 \u0438\u0434\u0435\u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u043a\u0441\u0438 dll. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0437\u043e\u0432\u044b Object Pascal \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043b\u0430\u0441\u0441\u0430 OpenCV, \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u2013 \u0432 \u043f\u0440\u043e\u043a\u0441\u0438 dll \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c COM \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0430\u0441\u044c \u0432 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u041e\u0441\u0442\u0430\u0442\u043a\u0438 \u044d\u0442\u0438\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <a href=\"https:\/\/github.com\/Laex\/Delphi-OpenCV\/tree\/master\/source3\" rel=\"noopener noreferrer nofollow\">source3<\/a>. \u041e\u0431\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u044b \u043f\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u0432 \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445:<\/p>\n<ol>\n<li>\n<p>\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u00ab\u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c\u00bb \u0432\u0441\u0435 \u043a\u043b\u0430\u0441\u0441\u044b, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0438, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p> \u041d\u0430\u043f\u0440\u043e\u0447\u044c \u0442\u0435\u0440\u044f\u043b\u0430\u0441\u044c \u0432\u0441\u044f \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0441\u0430\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV \u043f\u043e \u043d\u0435\u044f\u0432\u043d\u043e\u043c\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0442\u0438\u043f\u043e\u0432 \u0438 \u0435\u0449\u0435 \u043f\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c.<\/p>\n<\/li>\n<\/ol>\n<p>\u0411\u044b\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 OpenCV \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043a\u0430\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430. \u0412 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f llvm \u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 llvm \u043d\u0430 Object Pascal. \u0411\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432 Object Pascal \u0430\u043d\u0430\u043b\u043e\u0433\u0430 JNI \u0438\u0437 Java. \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435, \u0438\u0437-\u0437\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0443\u0448\u0430\u0442\u044c \u0438 \u0441\u043f\u0430\u0442\u044c, \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0435\u0441\u0442\u0438 \u0421++ \u0432 Object Pascal \u0442\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0434\u0430\u043b\u0430\u0441\u044c\u2026<\/p>\n<p>\u041d\u0443 \u0434\u0430 \u043b\u0430\u0434\u043d\u043e, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0430\u043d\u0434\u0440\u043e\u0438\u0434\u044b (\u043d\u0435 \u041e\u0421) \u00ab\u041a\u0442\u043e \u0441\u0442\u0430\u0440\u043e\u0435 \u043f\u043e\u043c\u044f\u043d\u0435\u0442, \u0443 \u0442\u043e\u0433\u043e \u043a\u0430\u043c\u0435\u0440\u0430 \u0441\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f\u2026\u00bb.<\/p>\n<p>\u0427\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043e\u0442 OpenCV \u043d\u0430 Object Pascal \u2013 \u044d\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0433\u0438\u0431\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV, \u0441 \u044f\u0432\u043d\u044b\u043c \u0438 \u043d\u0435\u044f\u0432\u043d\u044b\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u043e\u0432, \u0441\u043a\u0440\u044b\u0442\u043e\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u0430\u043c\u043e\u0439 OpenCV, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 Object Pascal \u0438 \u0438\u0445 \u0441\u043a\u0440\u044b\u0442\u043e\u0435 \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 C++. \u0427\u0430\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 Object Pascal \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u0438\u0434\u0435\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e \u0435\u0449\u0435 \u0432 Delphi 2005 (\u0435\u0441\u043b\u0438 \u043d\u0435 \u043e\u0448\u0438\u0431\u0430\u044e\u0441\u044c): class operator, Implicit, Explicit. \u041d\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u043c\u0430\u043b\u043e. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0432 Object Pascal \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 (record), \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Init \u0438 Done. \u0414\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u2013 \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0438\u0445 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u043a\u0430\u043a-\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c. \u0422.\u0435. \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u0430\u043a \u0432 C++, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e.<\/p>\n<p>\u0418 \u0432\u043e\u0442 \u0441\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c &#8212; Custom Managed Records! \u0414\u0430 \u0435\u0449\u0435 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f &#8212; class operator Assign. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u00ab\u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0442\u043e\u0440\u0430\u00bb.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0435, \u0447\u0442\u043e \u0441\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u2013 \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 x32 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f Object Pascal \u0438 \u0432 \u043a\u043b\u0430\u0441\u0441\u0430\u0445 \u0421++. \u041f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e (\u0440\u0435\u0447\u044c \u043e \u043a\u043b\u0430\u0441\u0441\u0430\u0445 \u0435\u0449\u0435 \u0432 OpenCV 2.4.\u0445). \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0448\u0438\u043b\u0430\u0441\u044c \u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c OpenCV 3.0 \u043d\u0430 x64, \u0441 \u0435\u0434\u0438\u043d\u044b\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435\u043c \u043e \u0432\u044b\u0437\u043e\u0432\u0430\u0445 \u0432 Object Pascal \u0438 \u0421++ (\u043d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441).<\/p>\n<p>\u0422\u0440\u0435\u0442\u044c\u0435 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c\u043e\u0435 \u0431\u044b\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2013 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0438\u0437 Object Pascal \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u043a\u043b\u0430\u0441\u0441\u0430 \u0438\u0437 OpenCV. \u041a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c (\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u0432\u043d\u043e) \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u0421++ \u043c\u043e\u0436\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u00ab\u0434\u0435\u043a\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443\u00bb \u0438\u043c\u0435\u043d\u0438, \u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0445 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0443\u0436\u0435 \u0434\u0435\u043b\u043e \u0442\u0435\u0445\u043d\u0438\u043a\u0438. \u041a\u0441\u0442\u0430\u0442\u0438, \u0434\u0435\u043b\u044c\u0444\u0438\u0441\u0442\u044b-\u043a\u0438\u0442\u0430\u0439\u0446\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442.<\/p>\n<p>\u0412 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438, \u044d\u0442\u0438 \u0442\u0440\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u0430 \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u043a \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f OpenCV 4.5.2 \u0432 Delphi (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/github.com\/dbyoung720\/DOpenCV\" rel=\"noopener noreferrer nofollow\">DOpenCV<\/a>), \u043f\u0440\u0430\u0432\u0434\u0430 \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u043a\u0430\u043a \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f, \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440.<\/p>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e, \u043f\u0440\u043e\u0441\u043d\u0443\u0432\u0448\u0438\u0441\u044c \u043e\u0434\u043d\u0438\u043c \u0443\u0442\u0440\u043e\u043c, \u044f \u044f\u0432\u043d\u043e \u0443\u0441\u043b\u044b\u0448\u0430\u043b \u0432 \u0449\u0435\u0431\u0435\u0442\u0435 \u043f\u0442\u0438\u0446, \u0437\u0432\u0443\u043a\u0435 \u0437\u0430\u043a\u0438\u043f\u0430\u044e\u0449\u0435\u0433\u043e \u0447\u0430\u0439\u043d\u0438\u043a\u0430 \u2013 \u00ab<a href=\"https:\/\/github.com\/Laex\/Delphi-OpenCV-Class\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0440\u0430!<\/a>\u00bb. \u0414\u0430 \u0438 \u0442\u0443\u0442 \u0435\u0449\u0435 \u044d\u0442\u0438 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u0441\u0443\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430.<\/p>\n<p>1.\u00a0\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 DLL \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 opencv_world454.dll \u0438\u0445 7320 \u0448\u0442\u0443\u043a (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 6930 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 390 \u0444\u0443\u043d\u043a\u0446\u0438\u0439). \u0420\u0430\u0437\u0434\u0435\u043a\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u2013 \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430: \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u2013 \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0441\u043c\u043e\u0442\u0440\u0438\u043c <a href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/build\/x64-calling-convention?view=msvc-170&amp;viewFallbackFrom=vs-2017\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>, \u043d\u0443 \u0438\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441\u0430\u043c\u0438 \u043f\u043e \u0440\u0430\u0437\u0434\u0435\u043a\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u0438 (\u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435).<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>cv::Mat(int rows, int cols, int type);<\/code> \u0438\u043c\u0435\u0435\u0442 \u0432\u0438\u0434<\/p>\n<pre><code class=\"cpp\">??0Mat@cv@@QEAA@HHH@Z public: __cdecl cv::Mat::Mat(int,int,int) __ptr64<\/code><\/pre>\n<p>2.\u00a0\u0414\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0438\u0448\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433 \u043d\u0430 Object Pascal<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0436\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430<\/p>\n<pre><code class=\"delphi\">procedure Constructor_Mat(Obj: pMat; a: int; b: int; c: int); external opencv_world_dll name '??0Mat@cv@@QEAA@HHH@Z';<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0430\u043c \u043a\u043b\u0430\u0441\u0441 (\u0440\u0435\u0433\u0438\u0441\u0442\u0440 RAX), \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0443 \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0442\u043e \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"https:\/\/docs.microsoft.com\/ru-ru\/cpp\/build\/x64-software-conventions?view=msvc-170\" rel=\"noopener noreferrer nofollow\">Microsoft x64 calling convention<\/a>, \u043d\u0443 \u043f\u043e\u0447\u0442\u0438. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043d\u0435 <a href=\"https:\/\/docwiki.embarcadero.com\/RADStudio\/Sydney\/en\/Simple_Types_(Delphi)\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0442\u0438\u043f\u043e\u0432<\/a>. Delphi, \u0432\u0441\u0435 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0442\u0438\u043f\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043f\u0438\u0441\u0438) \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1 \u0431\u0430\u0439\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043a\u0430\u043a \u0430\u0434\u0440\u0435\u0441, \u0432 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432 \u043a\u043b\u0430\u0441\u0441\u0430\u0445 \u0421++ \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 8 \u0431\u0430\u0439\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 64-\u0431\u0438\u0442\u043d\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0441\u0432\u043e\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f TRect&lt;Int> (Object Pascal) \u0438 Rect=Rect2i=Rect_&lt;int>(C++). \u0412\u043e\u043e\u0431\u0449\u0435, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u043e \u0432\u044b\u0437\u043e\u0432\u0430\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0445 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u0432 \u0441\u043f\u043e\u0441\u043e\u0431\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 Object Pascal \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043a\u043b\u0430\u0441\u0441\u0430 \u0421++ \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0439, \u043d\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u044d\u0442\u043e \u0442\u0435\u043c\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f (\u043d\u0430\u0434\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u0442\u043e \u0432 TODO) \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443, \u0447\u0442\u043e \u043f\u043b\u043e\u0445\u043e. \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<p>3.\u041a\u043e\u0433\u0434\u0430-\u0442\u043e, \u0432 \u0443\u043c\u043d\u043e\u0439 \u043a\u043d\u0438\u0436\u043a\u0435 \u043f\u043e C++, \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u0432 C++ \u043a\u043b\u0430\u0441\u0441\u044b \u2013 \u044d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b (struct), \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0448\u0438\u0435\u0441\u044f \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0434\u0438\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438 \u0445\u0438\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0443\u0442\u0430\u0446\u0438\u0438. \u0410 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e \u0432\u044b\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435? \u041f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0421++ \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0432 \u043c\u0435\u0441\u0442\u0435 \u0435\u0433\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u044d\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u043b\u0430\u0441\u0441 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0431\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432), \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u2013 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440. \u041a\u0440\u0430\u0441\u043e\u0442\u0430!<\/p>\n<p>\u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0438\u0441\u044c Custom Managed Records. \u0418\u0445 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0443 \u043e\u0447\u0435\u043d\u044c \u0443\u0436 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u044b \u0432 C++.<\/p>\n<pre><code class=\"delphi\">TMat = record \/\/ 96 bytes, v4.5.4   public     \/\/ default constructor \/\/ Mat();     class operator Initialize(out Dest: TMat);      class function Mat(): TMat; overload; static;     class function Mat(rows, cols, &amp;type: Int):TMat; overload; static; \/\/ Mat(Size size, int type);     class function Mat(const size: TSize; &amp;type: Int): TMat; overload; static;  \/\/ Mat(const Mat&amp; m, const Rect&amp; roi);     class function Mat(const m: TMat; const roi: TRect): TMat; overload; static;       function Mat(const roi: TRect): TMat; overload;  \/\/ ~Mat();     class operator Finalize(var Dest: TMat);     class operator assign(var Dest: TMat; const [ref] Src: TMat);  \/\/ Mat&amp; operator = (const MatExpr&amp; expr);     class operator Implicit(const m: TMatExpr): TMat; \/\/ CV_NODISCARD_STD static Mat diag(const Mat&amp; d); \/\/ Mat diag(int d=0) const;      function diag(d: Int = 0): TMat;   \/\/ CV_NODISCARD_STD Mat clone() const;     function clone: TMat;   \/\/ CV_NODISCARD_STD static MatExpr zeros(int rows, int cols, int type);     class function zeros(const rows, cols: Int; &amp;type: Int): TMatExpr; overload; static;  \/\/ CV_NODISCARD_STD static MatExpr zeros(Size size, int type);     class function zeros(const size: TSize; &amp;type: Int): TMatExpr; overload; static;  \/\/ CV_NODISCARD_STD static MatExpr ones(int rows, int cols, int type);     class function ones(rows: Int; cols: Int; &amp;type: Int): TMatExpr; overload; static;  \/\/ CV_NODISCARD_STD static MatExpr ones(int ndims, const int* sz, int type);    class function ones(ndims: Int; const sz: pInt; &amp;type: Int): TMat; overload; static;  \/\/ void create(int rows, int cols, int type);     procedure Create(rows, cols, &amp;type: Int); overload;   \/\/ void create(Size size, int type);     procedure Create(size: TSize; &amp;type: Int); overload;  \/\/ void addref();     procedure addref;   \/\/ void release();     procedure release;  \/\/ bool isContinuous() const;     function isContinuous: BOOL;       \/\/ \/\/! returns true if the matrix is a submatrix of another matrix \/\/ bool isSubmatrix() const;     function isSubmatrix: BOOL;           \/\/ size_t elemSize() const;     function elemSize: size_t;            \/\/ size_t elemSize1() const;     function elemSize1: size_t;           \/\/ int type() const;     function &amp;type: Int;                  \/\/ int depth() const;     function depth: Int;                  \/\/ int channels() const;     function channels: Int;               \/\/ size_t step1(int i=0) const;     function step1(i: Int = 0): size_t;   \/\/ bool empty() const;     function empty: BOOL;                 \/\/ size_t total() const;     function total: size_t; overload;     \/\/ size_t total(int startDim, int endDim=INT_MAX) const;     function total(startDim: Int; endDim: Int = INT_MAX): size_t; overload;   \/\/ int checkVector(int elemChannels, int depth=-1, bool requireContinuous=true) const;     function checkVector(elemChannels: Int; depth: Int = -1; requireContinuous: BOOL = true): Int;        class operator LogicalNot(const m: TMat): TMatExpr;      function at&lt;T>(i0: Int): T;    public const     MAGIC_VAL       = $42FF0000;     AUTO_STEP       = 0;     CONTINUOUS_FLAG = CV_MAT_CONT_FLAG;     SUBMATRIX_FLAG  = CV_SUBMAT_FLAG;      MAGIC_MASK = $FFFF0000;     TYPE_MASK  = $00000FFF;     DEPTH_MASK = 7;   public \/\/ int flags;     flags: Int;      \/\/ ! the matrix dimensionality, >= 2 \/\/ int dims;     dims: Int;      \/\/ ! the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions \/\/ int rows, cols;     rows, cols: Int;      \/\/ ! pointer to the data \/\/ uchar* data;     Data: pUChar;      \/\/     \/\/ ! helper fields used in locateROI and adjustROI \/\/ const uchar* datastart;     datastart: pUChar;  \/\/ const uchar* dataend;     dataend: pUChar;    \/\/ const uchar* datalimit;     datalimit: pUChar;      \/\/     \/\/ ! custom allocator \/\/ MatAllocator* allocator;     allocator: pMatAllocator;      \/\/ ! and the standard allocator     \/\/     \/\/ ! interaction with UMat \/\/ UMatData* u;     u: pUMatData;      \/\/ \/\/ MatSize size;     size: TMatSize;  \/\/ MatStep step;     step: TMatStep;    end; <\/code><\/pre>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u043f\u0438\u0441\u0438 TMat \u0432 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0432\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u0430 Mat, \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u043a\u043b\u0430\u0441\u0441 \u0432 OpenCV \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u043f\u043e\u043b\u0435\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 protected, \u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u0443\u044e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u044e \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u044f\u043c \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0421++ \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u0441 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0438\u0445 \u0432\u044b\u0437\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043d\u043e \u044d\u0442\u043e \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0442\u0435\u043c\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430.<\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043b\u0435\u043d\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u0442\u0435\u043b\u0435 record \u0441\u043e\u0437\u0434\u0430\u0442\u044c<\/p>\n<pre><code class=\"delphi\">Data: array [0 .. 31] of Byte;<\/code><\/pre>\n<p>\u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f <code>std::vector&lt;T><\/code> \u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u00abTODO\u00bb. \u041b\u044e\u0431\u043e\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 C++ \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 32 \u0431\u0430\u0439\u0442\u0430 (\u0445\u043e\u0442\u044f \u043c\u043e\u0436\u0435\u0442 \u0438 \u043e\u0448\u0438\u0431\u0430\u044e\u0441\u044c).<\/p>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 (\u0432 \u043c\u0435\u0441\u0442\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f) \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/p>\n<pre><code class=\"delphi\">class operator TMat.Initialize(out Dest: TMat); begin \u00a0 Constructor_Mat(@Dest); end;<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0438<\/p>\n<pre><code class=\"delphi\">class operator TMat.Finalize(var Dest: TMat); begin \u00a0 Destructor_Mat(@Dest); end;<\/code><\/pre>\n<p>\u041a\u0440\u0430\u0441\u043e\u0442\u0430! \u041d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441.<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0432 \u0421++ \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0448\u0442\u0443\u043a\u0430<\/p>\n<p><code>Mat r = Mat(10, 3, CV_8UC3);<\/code><\/p>\n<p>\u0442.\u0435. \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440.<\/p>\n<p>\u0412 Object Pascal \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0432\u0430 \u0440\u0430\u0437\u0430<\/p>\n<p><code>Var r:TMat := TMat.Mat(10, 3, CV_8UC3);<\/code><\/p>\n<p>\u043f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0438 \u043f\u0440\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0438 (\u0435\u0449\u0435 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Mat \u0432 class operator Assign), \u0447\u0442\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443.<\/p>\n<p>\u041c\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0442\u043e\u0440\u0433\u0430 \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u0432 Object Pascal \u043d\u0435\u044f\u0432\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 TMat \u0432 TInputArray \u0438\u043b\u0438 \u0446\u0435\u043f\u043e\u0447\u043a\u0430 TMat->TMatExpr->TMat->TInputArray. \u0414\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 Object Pascal \u0441\u0442\u0430\u043b \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 C++.<\/p>\n<p>Ta\u043a \u0436\u0435 \u0441\u043f\u0430\u0441\u0430\u044e\u0442 record helper. \u0415\u0441\u043b\u0438 \u0432 \u0421++ \u043c\u043e\u0436\u043d\u043e \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u043d\u0430\u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438 \u0442\u0438\u043f\u043e\u0432, \u0430 \u043f\u043e\u0442\u043e\u043c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0438 \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0442\u043e \u0432 Object Pascal \u0442\u0430\u043a \u043d\u0435\u043b\u044c\u0437\u044f. \u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f &#8212; \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432 record helper \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u043a\u043e\u043d\u0446\u0435, \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439.<\/p>\n<pre><code class=\"delphi\">TMatHelper = record helper for TMat \u00a0 Public \/\/ Mat(int rows, int cols, int type, const Scalar&amp; s); \u00a0\u00a0\u00a0 class function Mat(rows, cols, &amp;type: Int; const s: TScalar): TMat; overload; static; \u00a0 \/\/ void copyTo( OutputArray m ) const; \u00a0\u00a0\u00a0 procedure copyTo(m: TOutputArray); overload; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ void copyTo( OutputArray m, InputArray mask ) const; \u00a0\u00a0\u00a0 procedure copyTo(m: TOutputArray; mask: TInputArray); overload;  \u00a0\u00a0\u00a0 class operator Subtract(const m: TMat; const s: TScalar): TMatExpr;  \/\/ Mat&amp; operator = (const Scalar&amp; s); \u00a0\u00a0\u00a0 class operator Implicit(const s: TScalar): TMat;  \u00a0 end;<\/code><\/pre>\n<p>4.\u00a0\u041d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 OpenCV \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 std:: \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u0415\u0441\u043b\u0438 \u0441 <code>std::string<\/code> \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u2013 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 opencv_delphi454.dll, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442<\/p>\n<pre><code class=\"cpp\">class BODY_API ExportString : public cv::String {};<\/code><\/pre>\n<p>\u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c OpenCV, \u0442\u043e \u0432\u043e\u0442 \u0441 <code>std::vector&lt;T><\/code> \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439, \u043a\u043e\u0440\u044f\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. <\/p>\n<pre><code class=\"cpp\">enum VectorType { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vtMat = 1,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ vector&lt;Mat> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vtRect = 2,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ vector&lt;Rect> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vtPoint = 3,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ vector&lt;Point> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vtVectorMat = 4,\u00a0 \/\/ vector&lt;vector&lt;Mat>> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vtVectorRect = 5,\u00a0 \/\/ vector&lt;vector&lt;Rect>> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 vtVectorPoint = 6 \/\/ vector&lt;vector&lt;Point>> };<\/code><\/pre>\n<p>\u041d\u0443 \u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f<\/p>\n<pre><code class=\"cpp\">BODY_API void CreateStdVector(void* obj, int vt) {   if (vt) {     switch (vt) { \u00a0\u00a0\u00a0\u00a0\u00a0case vtMat: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*(static_cast&lt;vector&lt;Mat>*>(obj)) = vector&lt;Mat>(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break; \u00a0\u00a0\u00a0\u00a0\u00a0case vtRect: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*(static_cast&lt;vector&lt;Rect>*>(obj)) = vector&lt;Rect>(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0case vtPoint: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*(static_cast&lt;vector&lt;Point>*>(obj)) = vector&lt;Point>(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0case vtVectorMat: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*(static_cast&lt;vector&lt;vector&lt;Mat>>*>(obj)) = vector&lt;vector&lt;Mat>>(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0case vtVectorRect: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*(static_cast&lt;vector&lt;vector&lt;Rect>>*>(obj)) = vector&lt;vector&lt;Rect>>(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0case vtVectorPoint: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*(static_cast&lt;vector&lt;vector&lt;Point>>*>(obj)) = vector&lt;vector&lt;Point>>(); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0 } }<\/code><\/pre>\n<p>\u0411\u043e\u043b\u0435\u0435 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 TODO. \u0415\u0441\u043b\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2013 \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0438\u0442\u0435.<\/p>\n<p>\u0425\u043e\u0442\u044f \u0432 Object Pascal \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0438 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<pre><code class=\"delphi\">TStdVector&lt;T> = record \u00a0 private {$HINTS OFF} \u00a0\u00a0\u00a0 Data: array [0 .. 31] of Byte; {$HINTS ON} \u00a0\u00a0\u00a0 class function vt: TVectorType; static; \u00a0\u00a0\u00a0 function GetItems(const index: UInt64): T;\u00a0 public \u00a0\u00a0\u00a0 class operator Initialize(out Dest: TStdVector&lt;T>); \u00a0\u00a0\u00a0 class operator Finalize(var Dest: TStdVector&lt;T>); \u00a0\u00a0\u00a0 function size: Int64;  \u00a0\u00a0\u00a0 function empty: BOOL;  \u00a0\u00a0\u00a0 procedure push_back(const Value: T);  \u00a0\u00a0\u00a0 property Items[const index: UInt64]: T read GetItems; default; \u00a0 end;<\/code><\/pre>\n<p>\u041f\u043b\u043e\u0445\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 <\/p>\n<pre><code class=\"delphi\">class function TStdVector&lt;T>.vt: TVectorType; Var \u00a0 TypeName: String; begin \u00a0 TypeName := GetTypeName(TypeInfo(T)); \u00a0 if SameText('TMat', TypeName) then \u00a0\u00a0\u00a0 vt := vtMat \u00a0 else if SameText('TRect_&lt;System.Integer>', TypeName) then \u00a0\u00a0\u00a0 vt := vtRect \u00a0 else if SameText('TPoint_&lt;System.Integer>', TypeName) then \u00a0\u00a0\u00a0 vt := vtPoint \u00a0 else if SameText('TStdVector&lt;opencv_world.TPoint_&lt;System.Integer>>', TypeName) then \u00a0\u00a0\u00a0 vt := vtVectorPoint \u00a0 else \u00a0\u00a0\u00a0 Assert(false); end;<\/code><\/pre>\n<p>\u041f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0432 TODO.<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<ol>\n<li>\n<p>\u0421\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435, \u0447\u0442\u043e OpenCV \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0441\u0443\u043c\u0430\u0441\u0448\u0435\u0434\u0448\u0438\u043c\u0438 \u043b\u044e\u0434\u044c\u043c\u0438 \u0432 \u0447\u0430\u0441\u0442\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430. \u0418\u043d\u043e\u0433\u0434\u0430 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0448\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u0430\u043c \u0432\u0441\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0438 \u0434\u0443\u043c\u0430\u0435\u0448\u044c: \u00ab\u041d\u0443 \u0437\u0430\u0447\u0435\u043c \u0442\u0430\u043a \u0441\u043b\u043e\u0436\u043d\u043e-\u0442\u043e?\u00bb. \u0412 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041f\u043e\u0434\u0430\u0435\u0448\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e, \u0430 \u043e\u043d\u0430 \u044d\u0442\u043e \u043a\u0443\u0448\u0430\u0435\u0442 \u0438 \u0441\u043a\u0440\u044b\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0432\u0438\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0447\u0430\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f Object Pascal, \u0432 \u0446\u0435\u043b\u043e\u043c, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f. \u041d\u0435 \u0432\u0441\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0432 \u043e\u0434\u0438\u043d. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0432 std::vector \u2013 \u044d\u0442\u043e \u0435\u0449\u0435 \u0442\u0430 \u0448\u0442\u0443\u0447\u043a\u0430, \u0434\u0430 \u0438 \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0438\u0445 \u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 std::vector. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 C++ \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 Object Pascal \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0435\u0449\u0435 \u043d\u0435\u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u0442\u044c\u0441\u044f \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0443 \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043f\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 OpenCV. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u044b \u0434\u043e\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u043e\u0431\u044a\u0435\u043c\u0430 OpenCV, \u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a opencv_world.pas \u0431\u0435\u0437 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0432\u0430\u043b\u0438\u043b\u043e \u0437\u0430 4700. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432, \u043d\u043e \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u0441\u0442\u0430\u043d\u0435\u0442 \u043a\u043e\u0434\u043e\u043c. \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0434\u0435\u043b\u0435\u043d\u0438\u044f modules \u0432 OpenCV.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u043e\u0434\u043d\u044b\u0435 \u0434\u043b\u044f Object Pascal \u0442\u0438\u043f\u044b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, TArray&lt;T>, TList&lt;T>. \u0425\u043e\u0442\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u044f \u0441\u043e\u043c\u043d\u0435\u0432\u0430\u044e\u0441\u044c \u2013 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0443\u0436 \u043e\u043d \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0439. \u041d\u0443 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u2013 \u043d\u0430\u043c \u0442\u043e\u0436\u0435 \u043d\u0443\u0436\u0435\u043d \u043d\u0438\u0437\u043a\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u044b \u0441\u043e\u0432\u0435\u0442\u044b \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 opencv_delphi454.dll, \u0442\u0430\u043a \u043a\u0430\u043a \u044f \u0432 \u0421++ \u043d\u0435 Proficiency. \u0414\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0437\u043d\u0430\u044e\u0449\u0438\u043c \u043b\u044e\u0434\u044f\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043b\u043e\u0445\u043e, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043a\u043e\u0434 delphi_export.h.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443 \u0438 \u044f \u043d\u0435 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0441\u044c \u043e\u0442 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438 \u0441\u043e\u0432\u0435\u0442\u043e\u0432 \u043f\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u0420\u0430\u0431\u043e\u0442\u0430 \u0431\u043e\u043b\u044c\u0448\u0430\u044f, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0438 \u0447\u0435\u043c-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u043e\u0445\u043e\u0442\u0443 \u0438\u043b\u0438 \u0440\u044b\u0431\u0430\u043b\u043a\u0443 \u2013 \u0430\u0437\u0430\u0440\u0442.<\/p>\n<\/li>\n<li>\n<p>\u0418 \u0447\u0442\u043e \u0436\u0435 \u0441 \u043c\u0435\u0447\u0442\u043e\u0439? \u0421\u043a\u0430\u0436\u0443 \u0442\u0430\u043a &#8212; \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0443\u0442\u044c \u043a \u043c\u0435\u0447\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439 \u0435\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/589039\/\"> https:\/\/habr.com\/ru\/articles\/589039\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b\u0430 \u043c\u0435\u0447\u0442\u0430\u2026<\/p>\n<p>\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u0440\u043e\u0431\u043e\u0442\u043e\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u0434\u0432\u0438\u0436\u043d\u044b\u043c\u0438 \u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c (\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u00ab\u0432\u0437\u0433\u043b\u044f\u0434\u00bb \u043d\u0430) \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0418 \u044d\u0442\u043e \u0431\u044b\u043b 2012 \u0433\u043e\u0434. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043d\u0435\u0436\u0435\u043b\u0438 \u0436\u0435\u043b\u0435\u0437\u044f\u0447\u043d\u0438\u043a, \u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432. \u0421\u043a\u043e\u0440\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435 \u0435\u0441\u0442\u044c \u0446\u0435\u043b\u044c. \u0426\u0435\u043b\u044c \u2013 \u0440\u043e\u0431\u043e\u0442\u043e\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u041d\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430 Object Pascal \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0438 \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>\u041e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c OpenCV, \u0442\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u0432\u0435\u0440\u0441\u0438\u044f 2.4.2, \u043d\u043e \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Object Pascal. \u041f\u043e\u043f\u044b\u0442\u043a\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 OpenCV \u0431\u044b\u043b\u0438 \u0441\u043a\u0440\u043e\u043c\u043d\u044b\u043c\u0438, \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f. \u041f\u043e\u043c\u043d\u044e \u043e\u0447\u0435\u043d\u044c \u0442\u043e\u0433\u0434\u0430 \u0432\u0437\u0431\u0435\u0441\u0438\u043b\u043e, \u0445\u043e\u0442\u0438\u0442\u0435 Java \u2013 \u0432\u043e\u0442 \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0440\u0442, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u043f\u0440\u043e\u0431\u0440\u043e\u0441 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432 OpenCV \u0438, \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0434\u0438\u043d \u0432 \u043e\u0434\u0438\u043d \u0441 \u0421++ \u0432\u0438\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 Java. \u041f\u043e\u0447\u0442\u0438 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441 Python \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u043c\u0438. \u041a\u043e\u0440\u043e\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0414\u0435\u043b\u044c\u0444\u0438\u0437\u043c (\u0430\u043d\u0430\u043b\u043e\u0433 \u0444\u0435\u043c\u0438\u043d\u0438\u0437\u043c\u0430 \u0443 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u044e\u0434\u0435\u0439) \u0432\u0437\u044f\u043b \u0432\u0435\u0440\u0445.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u0435\u0449\u0435 \u0432\u0435\u0440\u0441\u0438\u044f OpenCV 2.4.2, \u0441 \u0421 (cdecl) x32 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439\u2026 \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043e\u0447\u0435\u043d\u044c \u043e\u0431\u044a\u0435\u043c\u043d\u043e\u0439, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439\u2026 \u0440\u0443\u0442\u0438\u043d\u043d\u043e\u0439, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439\u2026 \u041f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u044c \u00abcdecl; external core_lib;\u00bb \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u044c \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0438\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0438 \u0435\u0433\u043e \u0442\u0438\u043f. \u0414\u0430\u0436\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432\u044b\u0434\u0430\u0432\u0430\u043b\u0438 \u0434\u0438\u0447\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0431\u044b\u043b\u043e \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u041d\u0443 \u0438 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b OpenCV \u044d\u0442\u043e \u043d\u0435 &#171;Hello world&#187; \u2013 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0443\u043c\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0432 \u043a\u043e\u0434 \u043d\u0430 Object Pascal. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0441\u0438\u043b\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 Var \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e cvGetSize \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0439 \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0449\u0438 \u043d\u0435 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f cvImage \u0432 TBitmap (\u0444\u0443\u043d\u043a\u0446\u0438\u044f cvImage2Bitmap) \u2013 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0435 \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0441 \u0441\u0442\u0430\u043b\u043e \u0434\u0432\u043e\u0435. \u041f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/170909\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435<\/a> \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u041c\u0438\u0445\u0430\u0438\u043b \u0413\u0440\u0438\u0433\u043e\u0440\u044c\u0435\u0432 (@Sleuthhound). \u0412 \u0446\u0435\u043b\u043e\u043c, \u0432\u0435\u0441\u044c \u043e\u0431\u044a\u0435\u043c API OpenCV \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 2.4.13 \u0431\u044b\u043b <a href=\"https:\/\/github.com\/Laex\/Delphi-OpenCV\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d<\/a>. \u041f\u043e\u0442\u043e\u043c \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u00ab\u0424\u043e\u0440\u0435\u0441\u0442 \u0413\u0430\u043c\u043f\u00bb &#8212; \u0434\u043e\u0431\u0435\u0436\u0430\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430, \u0430 \u0441\u043c\u043e\u0436\u0435\u043c \u043b\u0438 \u043f\u043e\u0431\u0435\u0436\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435. \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441 OpenCV+OpenGL, OpenCV+SDL, OpenCV+FFMPEG. \u0414\u043b\u044f FFMPEG x32 \u0434\u0430\u0436\u0435 \u0431\u044b\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f <a href=\"https:\/\/github.com\/Laex\/Delphi-FFMPEG\" rel=\"noopener noreferrer nofollow\">\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/a>. \u0411\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u044b \u0432\u0441\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0430 \u0421, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 OpenCV. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 FPC. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0434\u043b\u044f Delphi, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u00ab\u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u044c \u043a\u0430\u0436\u0434\u044b\u0439\u00bb \u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043d\u0435 \u0434\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0434\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u2026 \u0410 \u0432\u0441\u0435 \u043f\u043e\u0447\u0435\u043c\u0443?<\/p>\n<p>\u0414\u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u044b\u0448\u0435\u043b OpenCV 3.0. \u041d\u0443 \u0437\u0430\u0447\u0435\u043c \u0432\u044b \u0442\u0430\u043a\u2026 \u041a\u043b\u0430\u0441\u0441\u044b, \u043d\u0435\u044f\u0432\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u2026 \u0414\u0430 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u2013 x64. Object Pascal \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0442\u0430\u043a \u043d\u0435 \u043c\u043e\u0433. \u0414\u0435\u043b\u044c\u0444\u0438\u0437\u043c \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 \u0441\u0442\u0430\u0434\u0438\u044e \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0414\u0435\u043b\u044c\u0444\u0438\u0437\u043c\u0430.<\/p>\n<p>\u0411\u044b\u043b\u043e \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0421++ \u043a\u043b\u0430\u0441\u0441\u044b \u043d\u0430 Object Pascal. \u041e\u0442\u043f\u0440\u0430\u0432\u043d\u044b\u043c \u043f\u0443\u043d\u043a\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u044f <a href=\"http:\/\/rvelthuis.de\/articles\/articles-cppobjs.html\" rel=\"noopener noreferrer nofollow\">Using C++ objects in Delphi<\/a>. \u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u0435\u0436\u0430\u0442 \u0434\u0432\u0435 \u0438\u0434\u0435\u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u043a\u0441\u0438 dll. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0437\u043e\u0432\u044b Object Pascal \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043b\u0430\u0441\u0441\u0430 OpenCV, \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u2013 \u0432 \u043f\u0440\u043e\u043a\u0441\u0438 dll \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c COM \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0430\u0441\u044c \u0432 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u041e\u0441\u0442\u0430\u0442\u043a\u0438 \u044d\u0442\u0438\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <a href=\"https:\/\/github.com\/Laex\/Delphi-OpenCV\/tree\/master\/source3\" rel=\"noopener noreferrer nofollow\">source3<\/a>. \u041e\u0431\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u044b \u043f\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u0432 \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445:<\/p>\n<ol>\n<li>\n<p>\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u00ab\u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c\u00bb \u0432\u0441\u0435 \u043a\u043b\u0430\u0441\u0441\u044b, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0438, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p> \u041d\u0430\u043f\u0440\u043e\u0447\u044c \u0442\u0435\u0440\u044f\u043b\u0430\u0441\u044c \u0432\u0441\u044f \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0441\u0430\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV \u043f\u043e \u043d\u0435\u044f\u0432\u043d\u043e\u043c\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0442\u0438\u043f\u043e\u0432 \u0438 \u0435\u0449\u0435 \u043f\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c.<\/p>\n<\/li>\n<\/ol>\n<p>\u0411\u044b\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 OpenCV \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043a\u0430\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430. \u0412 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f llvm \u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 llvm \u043d\u0430 Object Pascal. \u0411\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432 Object Pascal \u0430\u043d\u0430\u043b\u043e\u0433\u0430 JNI \u0438\u0437 Java. \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435, \u0438\u0437-\u0437\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0443\u0448\u0430\u0442\u044c \u0438 \u0441\u043f\u0430\u0442\u044c, \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0435\u0441\u0442\u0438 \u0421++ \u0432 Object Pascal \u0442\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0434\u0430\u043b\u0430\u0441\u044c\u2026<\/p>\n<p>\u041d\u0443 \u0434\u0430 \u043b\u0430\u0434\u043d\u043e, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0430\u043d\u0434\u0440\u043e\u0438\u0434\u044b (\u043d\u0435 \u041e\u0421) \u00ab\u041a\u0442\u043e \u0441\u0442\u0430\u0440\u043e\u0435 \u043f\u043e\u043c\u044f\u043d\u0435\u0442, \u0443 \u0442\u043e\u0433\u043e \u043a\u0430\u043c\u0435\u0440\u0430 \u0441\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f\u2026\u00bb.<\/p>\n<p>\u0427\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043e\u0442 OpenCV \u043d\u0430 Object Pascal \u2013 \u044d\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0433\u0438\u0431\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV, \u0441 \u044f\u0432\u043d\u044b\u043c \u0438 \u043d\u0435\u044f\u0432\u043d\u044b\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u043e\u0432, \u0441\u043a\u0440\u044b\u0442\u043e\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u0430\u043c\u043e\u0439 OpenCV, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 Object Pascal \u0438 \u0438\u0445 \u0441\u043a\u0440\u044b\u0442\u043e\u0435 \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 C++. \u0427\u0430\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 Object Pascal \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u0438\u0434\u0435\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e \u0435\u0449\u0435 \u0432 Delphi 2005 (\u0435\u0441\u043b\u0438 \u043d\u0435 \u043e\u0448\u0438\u0431\u0430\u044e\u0441\u044c): class operator, Implicit, Explicit. \u041d\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u043c\u0430\u043b\u043e. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0432 Object Pascal \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 (record), \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Init \u0438 Done. \u0414\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u2013 \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0438\u0445 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u043a\u0430\u043a-\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c. \u0422.\u0435. \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u0430\u043a \u0432 C++, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e.<\/p>\n<p>\u0418 \u0432\u043e\u0442 \u0441\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c &#8212; Custom Managed Records! \u0414\u0430 \u0435\u0449\u0435 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f &#8212; class operator Assign. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u00ab\u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0442\u043e\u0440\u0430\u00bb.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0435, \u0447\u0442\u043e \u0441\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u2013 \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 x32 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f Object Pascal \u0438 \u0432 \u043a\u043b\u0430\u0441\u0441\u0430\u0445 \u0421++. \u041f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e (\u0440\u0435\u0447\u044c \u043e \u043a\u043b\u0430\u0441\u0441\u0430\u0445 \u0435\u0449\u0435 \u0432 OpenCV 2.4.\u0445). \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0448\u0438\u043b\u0430\u0441\u044c \u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c OpenCV 3.0 \u043d\u0430 x64, \u0441 \u0435\u0434\u0438\u043d\u044b\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435\u043c \u043e \u0432\u044b\u0437\u043e\u0432\u0430\u0445 \u0432 Object Pascal \u0438 \u0421++ (\u043d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441).<\/p>\n<p>\u0422\u0440\u0435\u0442\u044c\u0435 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c\u043e\u0435 \u0431\u044b\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2013 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0438\u0437 Object Pascal \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u043a\u043b\u0430\u0441\u0441\u0430 \u0438\u0437 OpenCV. \u041a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c (\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u0432\u043d\u043e) \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u0421++ \u043c\u043e\u0436\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u00ab\u0434\u0435\u043a\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443\u00bb \u0438\u043c\u0435\u043d\u0438, \u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0445 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0443\u0436\u0435 \u0434\u0435\u043b\u043e \u0442\u0435\u0445\u043d\u0438\u043a\u0438. \u041a\u0441\u0442\u0430\u0442\u0438, \u0434\u0435\u043b\u044c\u0444\u0438\u0441\u0442\u044b-\u043a\u0438\u0442\u0430\u0439\u0446\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442.<\/p>\n<p>\u0412 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438, \u044d\u0442\u0438 \u0442\u0440\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u0430 \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u043a \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f OpenCV 4.5.2 \u0432 Delphi (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/github.com\/dbyoung720\/DOpenCV\" rel=\"noopener noreferrer nofollow\">DOpenCV<\/a>), \u043f\u0440\u0430\u0432\u0434\u0430 \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u043a\u0430\u043a \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f, \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440.<\/p>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e, \u043f\u0440\u043e\u0441\u043d\u0443\u0432\u0448\u0438\u0441\u044c \u043e\u0434\u043d\u0438\u043c \u0443\u0442\u0440\u043e\u043c, \u044f \u044f\u0432\u043d\u043e \u0443\u0441\u043b\u044b\u0448\u0430\u043b \u0432 \u0449\u0435\u0431\u0435\u0442\u0435 \u043f\u0442\u0438\u0446, \u0437\u0432\u0443\u043a\u0435 \u0437\u0430\u043a\u0438\u043f\u0430\u044e\u0449\u0435\u0433\u043e \u0447\u0430\u0439\u043d\u0438\u043a\u0430 \u2013 \u00ab<a href=\"https:\/\/github.com\/Laex\/Delphi-OpenCV-Class\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0440\u0430!<\/a>\u00bb. \u0414\u0430 \u0438 \u0442\u0443\u0442 \u0435\u0449\u0435 \u044d\u0442\u0438 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u0441\u0443\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430.<\/p>\n<p>1.\u00a0\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 DLL \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 opencv_world454.dll \u0438\u0445 7320 \u0448\u0442\u0443\u043a (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 6930 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 390 \u0444\u0443\u043d\u043a\u0446\u0438\u0439). \u0420\u0430\u0437\u0434\u0435\u043a\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u2013 \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430: \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u2013 \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0441\u043c\u043e\u0442\u0440\u0438\u043c <a href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/build\/x64-calling-convention?view=msvc-170&amp;viewFallbackFrom=vs-2017\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>, \u043d\u0443 \u0438\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441\u0430\u043c\u0438 \u043f\u043e \u0440\u0430\u0437\u0434\u0435\u043a\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u0438 (\u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435).<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>cv::Mat(int rows, int cols, int type);<\/code> \u0438\u043c\u0435\u0435\u0442 \u0432\u0438\u0434<\/p>\n<pre><code class=\"cpp\">??0Mat@cv@@QEAA@HHH@Z public: __cdecl cv::Mat::Mat(int,int,int) __ptr64<\/code><\/pre>\n<p>2.\u00a0\u0414\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0438\u0448\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433 \u043d\u0430 Object Pascal<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0436\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430<\/p>\n<pre><code class=\"delphi\">procedure Constructor_Mat(Obj: pMat; a: int; b: int; c: int); external opencv_world_dll name '??0Mat@cv@@QEAA@HHH@Z';<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0430\u043c \u043a\u043b\u0430\u0441\u0441 (\u0440\u0435\u0433\u0438\u0441\u0442\u0440 RAX), \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0443 \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0442\u043e \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"https:\/\/docs.microsoft.com\/ru-ru\/cpp\/build\/x64-software-conventions?view=msvc-170\" rel=\"noopener noreferrer nofollow\">Microsoft x64 calling convention<\/a>, \u043d\u0443 \u043f\u043e\u0447\u0442\u0438. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043d\u0435 <a href=\"https:\/\/docwiki.embarcadero.com\/RADStudio\/Sydney\/en\/Simple_Types_(Delphi)\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0442\u0438\u043f\u043e\u0432<\/a>. Delphi, \u0432\u0441\u0435 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0442\u0438\u043f\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043f\u0438\u0441\u0438) \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1 \u0431\u0430\u0439\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043a\u0430\u043a \u0430\u0434\u0440\u0435\u0441, \u0432 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432 \u043a\u043b\u0430\u0441\u0441\u0430\u0445 \u0421++ \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 8 \u0431\u0430\u0439\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 64-\u0431\u0438\u0442\u043d\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0441\u0432\u043e\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f TRect&lt;Int> (Object Pascal) \u0438 Rect=Rect2i=Rect_&lt;int>(C++). \u0412\u043e\u043e\u0431\u0449\u0435, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u043e \u0432\u044b\u0437\u043e\u0432\u0430\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0445 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u0432 \u0441\u043f\u043e\u0441\u043e\u0431\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 Object Pascal \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043a\u043b\u0430\u0441\u0441\u0430 \u0421++ \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0439, \u043d\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u044d\u0442\u043e \u0442\u0435\u043c\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f (\u043d\u0430\u0434\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u0442\u043e \u0432 TODO) \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443, \u0447\u0442\u043e \u043f\u043b\u043e\u0445\u043e. \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<p>3.\u041a\u043e\u0433\u0434\u0430-\u0442\u043e, \u0432 \u0443\u043c\u043d\u043e\u0439 \u043a\u043d\u0438\u0436\u043a\u0435 \u043f\u043e C++, \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u0432 C++ \u043a\u043b\u0430\u0441\u0441\u044b \u2013 \u044d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b (struct), \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0448\u0438\u0435\u0441\u044f \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0434\u0438\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438 \u0445\u0438\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0443\u0442\u0430\u0446\u0438\u0438. \u0410 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e \u0432\u044b\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435? \u041f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0421++ \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0432 \u043c\u0435\u0441\u0442\u0435 \u0435\u0433\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u044d\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u043b\u0430\u0441\u0441 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0431\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432), \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u2013 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440. \u041a\u0440\u0430\u0441\u043e\u0442\u0430!<\/p>\n<p>\u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0438\u0441\u044c Custom Managed Records. \u0418\u0445 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0443 \u043e\u0447\u0435\u043d\u044c \u0443\u0436 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u044b \u0432 C++.<\/p>\n<pre><code class=\"delphi\">TMat = record \/\/ 96 bytes, v4.5.4   public     \/\/ default constructor \/\/ Mat();     class operator Initialize(out Dest: TMat);      class function Mat(): TMat; overload; static;     class function Mat(rows, cols, &amp;type: Int):TMat; overload; static; \/\/ Mat(Size size, int type);     class function Mat(const size: TSize; &amp;type: Int): TMat; overload; static;  \/\/ Mat(const Mat&amp; m, const Rect&amp; roi);     class function Mat(const m: TMat; const roi: TRect): TMat; overload; static;       function Mat(const roi: TRect): TMat; overload;  \/\/ ~Mat();     class operator Finalize(var Dest: TMat);     class operator assign(var Dest: TMat; const [ref] Src: TMat);  \/\/ Mat&amp; operator = (const MatExpr&amp; expr);     class operator Implicit(const m: TMatExpr): TMat; \/\/ CV_NODISCARD_STD static Mat diag(const Mat&amp; d); \/\/ Mat diag(int d=0) const;      function diag(d: Int = 0): TMat;   \/\/ CV_NODISCARD_STD Mat clone() const;     function clone: TMat;   \/\/ CV_NODISCARD_STD static MatExpr zeros(int rows, int cols, int type);     class function zeros(const rows, cols: Int; &amp;type: Int): TMatExpr; overload; static;  \/\/ CV_NODISCARD_STD static MatExpr zeros(Size size, int type);     class function zeros(const size: TSize; &amp;typ<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-392650","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/392650","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=392650"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/392650\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=392650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=392650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=392650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}