{"id":232873,"date":"2014-08-11T10:15:02","date_gmt":"2014-08-11T06:15:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=232873"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=232873","title":{"rendered":"<span class=\"post_title\">\u041c\u043e\u0436\u0435\u043c \u043b\u0438 \u043c\u044b \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c?<\/span>"},"content":{"rendered":"<div class=\"content html_format\">     \t<img decoding=\"async\" src=\"http:\/\/www.viva64.com\/media\/images\/content\/b\/0270_ITK_ru\/image1.png\" alt=\"Can We Trust the Libraries We Use?\" align=\"left\"\/><br \/>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043b\u044e\u0431\u043e\u0435 \u043a\u0440\u0443\u043f\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0442\u0435\u043c\u0443, \u043a\u0430\u043a \u0434\u043e\u0432\u0435\u0440\u0438\u0435 \u043a \u044d\u0442\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c. \u0412 \u043a\u043d\u0438\u0433\u0430\u0445 \u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439 \u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u0434\u0430, \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041d\u043e \u044f \u043d\u0435 \u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e\u0431\u044b \u043a\u0442\u043e-\u0442\u043e \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u043b \u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u0438\u0440\u043f\u0438\u0447\u0435\u0439, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u044d\u0442\u043e\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c Medicine Insight Segmentation and Registration Toolkit (ITK). \u041c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u044f \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u0432 \u043a\u043e\u0434\u0435 \u0432\u0435\u0441\u044c\u043c\u0430 \u043c\u0430\u043b\u043e \u0448\u0438\u0431\u043e\u043a. \u041d\u043e \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441\u0442\u043e\u043b\u044c \u0436\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u0435\u043d. \u0422\u043e\u0433\u0434\u0430 \u0432\u043e\u043f\u0440\u043e\u0441. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0442\u0430\u043a\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c? \u0415\u0441\u0442\u044c \u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432\u0441\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u0445 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432, \u043a\u0430\u043a <a href=\"http:\/\/www.viva64.com\/go.php?url=1421\">MISRA<\/a> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041f\u0440\u0438\u0437\u043d\u0430\u044e\u0441\u044c, \u044f \u043f\u043b\u043e\u0445\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041e\u0434\u043d\u0430\u043a\u043e, \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u043e\u043f\u0440\u043e\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439. \u041a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u0434 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0436\u0438\u0432\u0443\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0436\u0438\u0437\u043d\u044f\u043c\u0438.<\/p>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u0432\u044b\u0432\u043e\u0434 \u044f \u0434\u0435\u043b\u0430\u044e \u0438\u0437 \u0441\u0432\u043e\u0438\u0445 \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439. \u041d\u0435\u0440\u0435\u0434\u043a\u043e \u043c\u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0433\u0434\u0435 \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u043d\u0430\u0439\u0442\u0438 \u0438 \u043f\u044f\u0442\u043e\u043a \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0432\u0440\u0430\u0447 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0430\u0433\u043d\u043e\u0437 \u0438\u0437-\u0437\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0432\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0438. \u0412 \u0442\u0430\u043a\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0435, \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u0431\u044b\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0438\u043b\u0438 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438. \u042d\u0442\u043e \u043f\u043e\u0432\u043e\u0434 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c.<\/p>\n<p>  \u0412 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043d\u0430 \u0442\u0430\u043a\u0438\u0435 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u043d\u044f \u043d\u0430\u0432\u0435\u043b\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"http:\/\/www.itk.org\/\">ITK<\/a>:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/www.viva64.com\/media\/images\/content\/b\/0270_ITK_ru\/image2.png\" alt=\"ITK\"\/><\/p>\n<p>  <i>Insight Segmentation and Registration Toolkit (ITK). ITK is an open-source, cross-platform system that provides developers with an extensive suite of software tools for image analysis. Developed through extreme programming methodologies, ITK employs leading-edge algorithms for registering and segmenting multidimensional data. <\/i><\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u044f \u043f\u0440\u043e\u0435\u043a\u0442 ITK \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"http:\/\/www.viva64.com\/ru\/pvs-studio\/\">PVS-Studio<\/a> \u044f \u0432\u043d\u043e\u0432\u044c \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. \u042f \u0432\u0438\u0436\u0443 \u043c\u0430\u043b\u043e \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 \u0432 \u043a\u043e\u0434\u0435, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0445\u0441\u044f \u043a ITK. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u043d\u043e \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 \u0438 \u044f\u0432\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0444\u0430\u0439\u043b\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \u043f\u0430\u043f\u043a\u0435 \u00abThirdParty\u00bb.<\/p>\n<p>  \u0423\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432 \u044d\u0442\u043e\u043c \u043d\u0435\u0442. \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 ITK \u0432\u0445\u043e\u0434\u0438\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041d\u043e \u0432\u0435\u0434\u044c \u044d\u0442\u043e \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u043e. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u043c\u043e\u0433\u0443\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435 ITK.<\/p>\n<p>  \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u0442\u044c \u043a \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c \u0438\u043b\u0438 \u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438. \u041c\u043e\u044f \u0446\u0435\u043b\u044c, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0434\u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0438 \u043d\u0430 \u043c\u043e\u0451 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0438\u0441\u044c. \u0427\u0442\u043e\u0431\u044b \u043c\u043e\u0438 \u0441\u043b\u043e\u0432\u0430 \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u043b\u0438\u0441\u044c, \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0441\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<h2>\u041d\u0430\u0447\u043d\u0451\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenJPEG<\/h2>\n<p>  <\/p>\n<pre><code class=\"cpp\">&lt;b&gt;\u041d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0439 case&lt;\/b&gt;  typedef enum PROG_ORDER {   PROG_UNKNOWN = -1,   LRCP = 0,   RLCP = 1,   RPCL = 2,   PCRL = 3,   CPRL = 4 } OPJ_PROG_ORDER;  OPJ_INT32 pi_check_next_level(....) {   ....   case 'P':     switch(tcp-&gt;prg)     {       case LRCP||RLCP:         if(tcp-&gt;prc_t == tcp-&gt;prcE){           l=pi_check_next_level(i-1,cp,tileno,pino,prog);   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0153\/\">V560<\/a> A part of conditional expression is always true: RLCP. pi.c 1708<\/p>\n<p>  \u041a\u0442\u043e-\u0442\u043e \u0437\u0430\u0431\u044b\u043b, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;case&#8217;. \u0417\u0430\u043f\u0438\u0441\u044c \u00abcase LRCP||RLCP:\u00bb \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u00abcase 1:\u00bb. \u042d\u0442\u043e \u044f\u0432\u043d\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u0445\u043e\u0442\u0435\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442.<\/p>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442:  <\/p>\n<pre><code class=\"cpp\">case LRCP: case RLCP:<\/code><\/pre>\n<p>  \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u044f \u0431\u044b \u0435\u0449\u0451 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u043e\u0439:  <\/p>\n<pre><code class=\"cpp\">case LRCP: \/\/ fall through case RLCP:<\/code><\/pre>\n<p>  <b>\u0420\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f<\/b>  <\/p>\n<pre><code class=\"cpp\">bool j2k_write_rgn(....) {   OPJ_BYTE * l_current_data = 00;   OPJ_UINT32 l_nb_comp;   OPJ_UINT32 l_rgn_size;   opj_image_t *l_image = 00;   opj_cp_t *l_cp = 00;   opj_tcp_t *l_tcp = 00;   opj_tccp_t *l_tccp = 00;   OPJ_UINT32 l_comp_room;    \/\/ preconditions   assert(p_j2k != 00);   assert(p_manager != 00);   assert(p_stream != 00);    l_cp = &amp;(p_j2k-&gt;m_cp);   l_tcp = &amp;l_cp-&gt;tcps[p_tile_no];   l_tccp = &amp;l_tcp-&gt;tccps[p_comp_no];    l_nb_comp = l_image-&gt;numcomps;   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0111\/\">V522<\/a> Dereferencing of the null pointer &#8216;l_image&#8217; might take place. j2k.c 5205<\/p>\n<p>  \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c &#8216;l_image&#8217; \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0443\u043b\u0451\u043c, \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 j2k_write_rgn() \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>  <b>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430 \u0441\u0435\u0431\u0435<\/b>  <\/p>\n<pre><code class=\"cpp\">OPJ_SIZE_T opj_stream_write_skip (....) {   ....   if (!l_is_written)   {     p_stream-&gt;m_status |= opj_stream_e_error;     p_stream-&gt;m_bytes_in_buffer = 0;     p_stream-&gt;m_current_data = p_stream-&gt;m_current_data;     return (OPJ_SIZE_T) -1;   }   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0168\/\">V570<\/a> The &#8216;p_stream-&gt;m_current_data&#8217; variable is assigned to itself. cio.c 675<\/p>\n<p>  \u0412 \u043a\u043e\u0434\u0435 \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u043f\u0443\u0442\u0430\u043d\u043e. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0451 \u0436\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  <b>\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/b>  <\/p>\n<pre><code class=\"cpp\">typedef struct opj_stepsize {   OPJ_UINT32 expn;   OPJ_UINT32 mant; };  bool j2k_read_SQcd_SQcc(   opj_j2k_t *p_j2k,   OPJ_UINT32 p_comp_no,   OPJ_BYTE* p_header_data,   OPJ_UINT32 * p_header_size,   struct opj_event_mgr * p_manager   ) {     ....   OPJ_UINT32 l_band_no;   ....   l_tccp-&gt;stepsizes[l_band_no].expn =     ((l_tccp-&gt;stepsizes[0].expn) - ((l_band_no - 1) \/ 3) &gt; 0) ?       (l_tccp-&gt;stepsizes[0].expn) - ((l_band_no - 1) \/ 3) : 0;   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0146\/\">V555<\/a> The expression of the &#8216;A \u2014 B &gt; 0&#8217; kind will work as &#8216;A != B&#8217;. itkopenjpeg j2k.c 3421<\/p>\n<p>  \u0421\u043b\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u043a\u043e\u0434\u043e\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"cpp\">unsigned A, B; .... X = (A - B &gt; 0) ? (A - B) : 0;<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0445\u043e\u0442\u0435\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f A \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c B, \u0442\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e.<\/p>\n<p>  \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e. \u0422\u0430\u043a \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (A \u2014 B) \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f &#8216;unsigned&#8217;, \u043e\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e 0. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u00abA = 3, B = 5&#8242;, \u0442\u043e (A \u2014 B) \u0440\u0430\u0432\u043d\u043e 0xFFFFFFFE (4294967294).<\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c:  <\/p>\n<pre><code class=\"cpp\">X = (A != B) ? (A - B) : 0; \u0415\u0441\u043b\u0438 (A == B), \u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c 0. \u0417\u043d\u0430\u0447\u0438\u0442 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435: X = A - B;<\/code><\/pre>\n<p>  \u042f\u0432\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"cpp\">X = (A &gt; B) ? (A - B) : 0; <\/code><\/pre>\n<p>  <\/p>\n<h2>GDCM<\/h2>\n<p>  \u041d\u043e \u0445\u0432\u0430\u0442\u0438\u0442 \u043f\u0440\u043e Jpeg. \u041d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u0432 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a. \u0415\u0441\u0442\u044c \u0432\u0435\u0434\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Grassroots DICOM library (<a href=\"http:\/\/www.viva64.com\/go.php?url=1422\">GDCM<\/a>). <\/p>\n<p>  <b>\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0446\u0438\u043a\u043b\u0430<\/b>   <\/p>\n<pre><code class=\"cpp\">bool Sorter::StableSort(std::vector&lt;std::string&gt; const &amp; filenames) {   ....   std::vector&lt; SmartPointer&lt;FileWithName&gt; &gt;::iterator     it2 = filelist.begin();    for( Directory::FilenamesType::const_iterator it =          filenames.begin();        it != filenames.end(), it2 != filelist.end();        ++it, ++it2)   {   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0110\/\">V521<\/a> Such expressions using the &#8216;,&#8217; operator are dangerous. Make sure the expression is correct. gdcmsorter.cxx 82<\/p>\n<p>  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0437\u0430\u043f\u044f\u0442\u0430\u044f &#8216;,&#8217; \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0446\u0438\u043a\u043b\u0430 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0437\u0430\u043f\u044f\u0442\u0430\u044f &#8216;,&#8217; \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043f\u0440\u0430\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u201eit != filenames.end()\u201c \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0446\u0438\u043a\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0438\u043c:  <\/p>\n<pre><code class=\"cpp\">for(Directory::FilenamesType::const_iterator it = ....;     it != filenames.end() &amp;&amp; it2 != filelist.end();     ++it, ++it2)<\/code><\/pre>\n<p>  \u0427\u0443\u0442\u044c \u043d\u0438\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0446\u0438\u043a\u043b (gdcmsorter.cxx 123).<\/p>\n<p>  <b>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f<\/b>  <\/p>\n<pre><code class=\"cpp\">bool PrivateTag::ReadFromCommaSeparatedString(const char *str) {   unsigned int group = 0, element = 0;   std::string owner;   owner.resize( strlen(str) );   if( !str || sscanf(str, &quot;%04x,%04x,%s&quot;, &amp;group ,                      &amp;element, &amp;owner[0] ) != 3 )   {     gdcmDebugMacro( &quot;Problem reading Private Tag: &quot; &lt;&lt; str );     return false;   }   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio:<a href=\"http:\/\/www.viva64.com\/ru\/d\/0205\/\"> V595<\/a> The &#8216;str&#8217; pointer was utilized before it was verified against nullptr. Check lines: 26, 27. gdcmprivatetag.cxx 26<\/p>\n<p>  \u0418\u0437 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c &#8216;str&#8217; \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u0435\u043d nullptr. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0435:  <\/p>\n<pre><code class=\"cpp\">owner.resize( strlen(str) ); <\/code><\/pre>\n<p>  <b>Unspecified behavior<\/b>  <\/p>\n<pre><code class=\"cpp\">bool ImageCodec::DoOverlayCleanup(   std::istream &amp;is, std::ostream &amp;os) {   ....   \/\/ nmask : to propagate sign bit on negative values   int16_t nmask = (int16_t)0x8000;   nmask = nmask &gt;&gt;           ( PF.GetBitsAllocated() - PF.GetBitsStored() - 1 );   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0225\/\">V610<\/a> Unspecified behavior. Check the shift operator &#8216;&gt;&gt;. The left operand &#8216;nmask&#8217; is negative. gdcmimagecodec.cxx 397<\/p>\n<p>  \u0421\u0434\u0432\u0438\u0433 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u201e&gt;&gt;\u201c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a <a href=\"http:\/\/www.viva64.com\/go.php?url=747\">unspecified behavior<\/a>. \u0414\u043b\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0435\u0437\u0435\u043d\u0438\u0435 \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e.<\/p>\n<p>  <b>\u041e\u043f\u0430\u0441\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430<\/b>   <\/p>\n<pre><code class=\"cpp\">void LookupTable::Decode(....) const {   ....   while( !is.eof() )   {     unsigned short idx;     unsigned short rgb[3];     is.read( (char*)(&amp;idx), 2);     if( is.eof() ) break;     if( IncompleteLUT )     {       assert( idx &lt; Internal-&gt;Length[RED] );       assert( idx &lt; Internal-&gt;Length[GREEN] );       assert( idx &lt; Internal-&gt;Length[BLUE] );     }     rgb[RED]   = rgb16[3*idx+RED];     rgb[GREEN] = rgb16[3*idx+GREEN];     rgb[BLUE]  = rgb16[3*idx+BLUE];     os.write((char*)rgb, 3*2);   }   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0289\/\">V663<\/a> Infinite loop is possible. The &#8216;cin.eof()&#8217; condition is insufficient to break from the loop. Consider adding the &#8216;cin.fail()&#8217; function call to the conditional expression. gdcmMSFF gdcmlookuptable.cxx 280<\/p>\n<p>  \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u043d\u0443\u0442\u044c. \u0415\u0441\u043b\u0438 \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430, \u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u201eis.eof()\u201c \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0446\u0438\u043a\u043b. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0447\u0438\u0442\u0430\u0442\u044c. \u041d\u043e \u0444\u0430\u0439\u043b \u0435\u0449\u0451 \u043d\u0435 \u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f. \u042d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0435\u0449\u0438.<\/p>\n<p>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 is.fail().<\/p>\n<p>  \u0422\u0430\u043a\u0438\u0445 \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0447\u0442\u0435\u043d\u0438\u0439 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e. \u042f \u0431\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f eof(). \u042d\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0432 GDCM, \u0442\u0430\u043a \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445.<\/p>\n<h2>ITK<\/h2>\n<p>  \u041d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u044e\u0441\u044c. \u0414\u0443\u043c\u0430\u044e, \u044f \u0441\u043c\u043e\u0433 \u0434\u043e\u043d\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0438 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0430 \u043d\u0430\u0448\u043b\u043e\u0441\u044c \u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0432 \u0441\u0430\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 ITK. \u0414\u0430, \u043a\u043e\u0435 \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u044f \u043f\u0440\u0438\u043c\u0435\u0442\u0438\u043b.<\/p>\n<p>  <b>\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438<\/b><\/p>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0437\u0430\u0431\u0430\u0432\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u201e<a href=\"http:\/\/www.viva64.com\/ru\/b\/0260\/\">\u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/a>\u201c. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0447\u0438\u0442\u0430\u043b\u0438, \u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e.<\/p>\n<p>  \u0412\u043e\u0442 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0435 \u043f\u0440\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430. \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u0438\u043d\u0434\u0435\u043a\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c &#8216;2&#8217;, \u0430 \u043d\u0435 &#8216;1&#8217;.  <\/p>\n<pre><code class=\"cpp\">int itkPointSetToSpatialObjectDemonsRegistrationTest(....) {   ....   \/\/ Set its position   EllipseType::TransformType::OffsetType offset;   offset[0]=50;   offset[1]=50;   offset[1]=50;   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0108\/\">V519<\/a> The &#8216;offset[1]&#8217; variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 41, 42. itkpointsettospatialobjectdemonsregistrationtest.cxx 42<\/p>\n<p>  <b>\u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430<\/b><\/p>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430:  <\/p>\n<pre><code class=\"cpp\">template&lt; typename TCoordRepType &gt; void VoronoiDiagram2D&lt; TCoordRepType &gt;::SetOrigin(PointType vorsize) {   m_VoronoiBoundaryOrigin[0] = vorsize[0];   m_VoronoiBoundaryOrigin[0] = vorsize[1]; }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0108\/\">V519<\/a> The &#8216;m_VoronoiBoundaryOrigin[0]&#8217; variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 74, 75. itkvoronoidiagram2d.hxx 75<\/p>\n<p>  <b>\u0417\u0430\u0431\u044b\u043b\u0438 \u0438\u043d\u0434\u0435\u043a\u0441<\/b>   <\/p>\n<pre><code class=\"cpp\">void MultiThreader::MultipleMethodExecute() {   ....   HANDLE process_id[ITK_MAX_THREADS];   ....   process_id[thread_loop] = (void *) _beginthreadex(0, 0, ....);    if ( process_id == 0 )   {     itkExceptionMacro(&quot;Error in thread creation !!!&quot;);   }   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0211\/\">V600<\/a> Consider inspecting the condition. The &#8216;process_id&#8217; pointer is always not equal to NULL. itkmultithreaderwinthreads.cxx 90<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u201eif ( process_id == 0 )\u201c \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u0425\u043e\u0442\u0435\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u043a\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0438\u043c:  <\/p>\n<pre><code class=\"cpp\">if ( process_id[thread_loop] == 0 )<\/code><\/pre>\n<p>  <b>\u041e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438<\/b>   <\/p>\n<pre><code class=\"cpp\">template&lt; typename T &gt; void WriteCellDataBufferAsASCII(....) {   ....   if( this-&gt;m_NumberOfCellPixelComponents == 3 )   {     ....   }   else if( this-&gt;m_NumberOfCellPixelComponents == 3 )   {     ....   }   .... }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0106\/\">V517<\/a> The use of &#8216;if (A) {&#8230;} else if (A) {&#8230;}&#8217; pattern was detected. There is a probability of logical error presence. Check lines: 948, 968. itkvtkpolydatameshio.h 948<\/p>\n<p>  <b>\u041f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440<\/b>   <\/p>\n<pre><code class=\"cpp\">template&lt;typename LayerType, typename TTargetVector&gt; QuickPropLearningRule &lt;LayerType,TTargetVector&gt; ::QuickPropLearningRule() {   m_Momentum = 0.9; \/\/Default   m_Max_Growth_Factor = 1.75;   m_Decay = -0.0001;   m_SplitEpsilon = 1;   m_Epsilon = 0.55;   m_Threshold = 0.0;   m_SigmoidPrimeOffset = 0;   m_SplitEpsilon = 0; }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f PVS-Studio: <a href=\"http:\/\/www.viva64.com\/ru\/d\/0108\/\">V519<\/a> The &#8216;m_SplitEpsilon&#8217; variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 35, 39. itkquickproplearningrule.hxx 39<\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e &#8216;m_SplitEpsilon&#8217;. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u044d\u0442\u043e\u043c\u0443 \u0447\u043b\u0435\u043d\u0443 \u043a\u043b\u0430\u0441\u0441\u0430 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u0430 \u043f\u043e\u0442\u043e\u043c 0. \u041f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  <b>\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u043a\u044d\u0448\u0430<\/b>   <\/p>\n<pre><code class=\"cpp\">template &lt;typename TInputImage, typename TOutputImage&gt; void PatchBasedDenoisingImageFilter&lt;TInputImage, TOutputImage&gt; ::EmptyCaches() {   for (unsigned int threadId = 0;        threadId &lt; m_ThreadData.size(); ++threadId)   {     SizeValueType cacheSize =       m_ThreadData[threadId].eigenValsCache.size();     for (SizeValueType c = 0; c &lt; cacheSize; ++c)     {       delete m_ThreadData[threadId].eigenValsCache[c];       delete m_ThreadData[threadId].eigenVecsCache[c];     }     m_ThreadData[threadId].eigenValsCache.empty();     m_ThreadData[threadId].eigenVecsCache.empty();   } }<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f PVS-Studio: <\/p>\n<ul>\n<li><a href=\"http:\/\/www.viva64.com\/ru\/d\/0119\/\">V530<\/a> The return value of function &#8217;empty&#8217; is required to be utilized. itkpatchbaseddenoisingimagefilter.hxx 85<\/li>\n<li><a href=\"http:\/\/www.viva64.com\/ru\/d\/0119\/\">V530<\/a> The return value of function &#8217;empty&#8217; is required to be utilized. itkpatchbaseddenoisingimagefilter.hxx 86<\/li>\n<\/ul>\n<p>\u041f\u043e \u043d\u0435\u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#8216;clear()&#8217;, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#8217;empty()&#8217;. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u043a\u044d\u0448 \u043d\u0430\u0447\u043d\u0451\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u0443\u0441\u043e\u0440, \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0430\u0441\u043d\u043e. \u042d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043b\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b.<\/p>\n<h2>\u0414\u0440\u0443\u0433\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438<\/h2>\n<p>  \u0415\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u0430\u043a \u0432 ITK, \u0442\u0430\u043a \u0438 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445. \u041d\u043e \u044f \u043e\u0431\u0435\u0449\u0430\u043b \u0441\u0435\u0431\u0435 \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 12 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u043d\u0430\u0431\u0438\u0440\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044e \u0432 Microsoft Word. \u041c\u043d\u0435 \u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u043c\u043e\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0440\u0430\u0437\u043e\u043c \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435. \u041f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u044f. \u041f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0440\u043e\u0441\u0442\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio \u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  \u0422\u043e, \u0447\u0442\u043e \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u043d\u0435 \u0432\u0441\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u2014 \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043e\u0442\u0447\u0451\u0442 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u043e \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b. \u041d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u043a\u0430\u043a \u0441\u0431\u043e\u0440\u043d\u0438\u043a \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439. \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0442\u043e\u043b\u043a\u043d\u0451\u0442 \u043a\u043e\u0433\u043e-\u0442\u043e \u043a \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0432 \u0441\u043e\u0432\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435. \u041e\u0442 \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u044c\u0437\u044b. \u042f \u043d\u0435 \u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432 \u043c\u0438\u0440\u0435. <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0430\u0432\u0442\u043e\u0440\u044b ITK \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0447\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u043a\u0438, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, PVS-Studio \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 ITK \u0432\u044b\u0434\u0430\u0451\u0442 \u043c\u043d\u043e\u0433\u043e \u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439. \u041c\u043d\u043e\u0433\u043e \u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c, \u043f\u0440\u043e\u0432\u0435\u0434\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u044f \u0433\u043e\u0442\u043e\u0432 \u0434\u0430\u0442\u044c \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 <\/h2>\n<p>  \u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435, \u0447\u0442\u043e \u0440\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u043c\u0430\u043b\u043e, \u0447\u0442\u043e \u0434\u0430\u044e\u0442. \u042d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u044d\u0442\u0430 \u043c\u044b\u0441\u043b\u044c \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0430 \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u201e<a href=\"http:\/\/www.viva64.com\/ru\/b\/0105\/\">\u041b\u0435\u0432 \u0422\u043e\u043b\u0441\u0442\u043e\u0439 \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043a\u043e\u0434\u0430<\/a>\u201c.<\/p>\n<p>  \u0416\u0435\u043b\u0430\u044e \u0432\u0441\u0435\u043c \u0431\u0435\u0437\u0433\u043b\u044e\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0431\u0435\u0437\u0433\u043b\u044e\u0447\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a.<\/p>\n<h2>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c<\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u0441 \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0435\u0439, \u0442\u043e \u043f\u0440\u043e\u0448\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434: Andrey Karpov. <a href=\"http:\/\/www.viva64.com\/en\/b\/0271\/\">Can We Trust the Libraries We Use?<\/a>.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441?<\/b><\/p>\n<div class=\"spoiler_text\">\u0427\u0430\u0441\u0442\u043e \u043a \u043d\u0430\u0448\u0438\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u0437\u0430\u0434\u0430\u044e\u0442 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u043d\u0438\u0445 \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0437\u0434\u0435\u0441\u044c: <a href=\"http:\/\/www.viva64.com\/ru\/a\/0085\/\">\u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e PVS-Studio \u0438 CppCat, \u0432\u0435\u0440\u0441\u0438\u044f 2014<\/a>. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c.  <\/div>\n<\/div>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/company\/pvs-studio\/blog\/232873\/\"> http:\/\/habrahabr.ru\/company\/pvs-studio\/blog\/232873\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">     \t<img decoding=\"async\" src=\"http:\/\/www.viva64.com\/media\/images\/content\/b\/0270_ITK_ru\/image1.png\" alt=\"Can We Trust the Libraries We Use?\" align=\"left\"\/><br \/>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043b\u044e\u0431\u043e\u0435 \u043a\u0440\u0443\u043f\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0442\u0435\u043c\u0443, \u043a\u0430\u043a \u0434\u043e\u0432\u0435\u0440\u0438\u0435 \u043a \u044d\u0442\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c. \u0412 \u043a\u043d\u0438\u0433\u0430\u0445 \u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439 \u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u0434\u0430, \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041d\u043e \u044f \u043d\u0435 \u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e\u0431\u044b \u043a\u0442\u043e-\u0442\u043e \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u043b \u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u0438\u0440\u043f\u0438\u0447\u0435\u0439, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u044d\u0442\u043e\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c Medicine Insight Segmentation and Registration Toolkit (ITK). \u041c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u044f \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u0432 \u043a\u043e\u0434\u0435 \u0432\u0435\u0441\u044c\u043c\u0430 \u043c\u0430\u043b\u043e \u0448\u0438\u0431\u043e\u043a. \u041d\u043e \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441\u0442\u043e\u043b\u044c \u0436\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u0435\u043d. \u0422\u043e\u0433\u0434\u0430 \u0432\u043e\u043f\u0440\u043e\u0441. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0442\u0430\u043a\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c? \u0415\u0441\u0442\u044c \u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-232873","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/232873","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=232873"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/232873\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=232873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=232873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=232873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}