
OpenCV рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рдФрд░ рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп C ++ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред C ++ рдХреЗ рдЕрд▓рд╛рд╡рд╛, Python, Java, Ruby, Matlab, Lua, рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИрдВред рдЪреВрдВрдХрд┐ C #, рдЬреЛ рдореИрдВ рдЬрд┐рд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реВрдВ, рд╡рд╣ рдЙрд╕ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ PVC-Studio рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП OpenCV рдХреЗ C # рд░реИрдкрд░, OpenCvSharp рдХреЛ рдЪреБрдирд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрд╕ рдЬрд╛рдБрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред
рдкрд░рд┐рдЪрдп
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдкреНрд░рджрд░реНрд╢рдирд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдерд╛ред рдореЗрд░реЗ рдХрд░реНрддрд╡реНрдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдорд░рдореНрдордд рдХрд╛рд░реНрдп (рдкреНрд░рдореБрдЦ рд╡рд┐рдлрд▓рддрд╛рдПрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреА рдЧрдИрдВ) рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╣рд░ рддрд░рд╣ рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдорд┐рд▓ рдерд╛ред
рдореЗрд░реЗ, рдердХреЗ рд╣реБрдП рдФрд░ рдирдП рд╢рд╣рд░ рдореЗрдВ, рдПрдХ рддрд╛рдЬрд╝рд╛ рдЕрдирдкреИрдХ рдХрд┐рдП рдЧрдП KIKI рд░реЛрдмреЛрдЯ рдХреЗ рд╕рд╛рдередрд╡реИрд╕реЗ, рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрд╣реБрдд рдордЬрд╝реЗрджрд╛рд░ рдерд╛ред рдЬрдм рднреА рд╣рдо рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдкреНрд░рджрд░реНрд╢рдиреА рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирдП рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рддреЛ рд╣рдо рдЗрд╕реЗ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рд▓рд╛рдП рдФрд░ рдЕрдЧрд░ рд╕рднреА рдХреЛ рдкрд╕рдВрдж рдЖрдпрд╛, рддреЛ рд╣рдо рдХрд╛рдо рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред рдПрдХ рдмрд╛рд░ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рд░реЛрдмреЛрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ рдЬреЛ рдПрдХ рдорд╛рдирд╡реАрдп рдЪреЗрд╣рд░реЗ рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реНрд╡рд╛рдЧрдд рднрд╛рд╖рдг рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ OpenCV, рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░-рджреГрд╖реНрдЯрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИред рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реА рдирд┐рд░рд╛рд╢ рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ OpenCV рдХреЛ C ++ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред C ++ рдХрд╛ рдореЗрд░рд╛ рдЬреНрдЮрд╛рди, рдЬреЛ рдореИрдВрдиреЗ рдХреЙрд▓реЗрдЬ рдореЗрдВ рдкрдврд╝рд╛ рдерд╛, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдФрд░ рдЧреБрдЧрд▓реА рдХреА рдФрд░ OpenCvSharp рдкрд╛рдпрд╛, C # рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рд░реИрдкрд░, рдЬреЛ рдХрд┐ рдореИрдВ рдЬрд┐рд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реВрдВ, рд╡рд╣ рд╣реИред рддрдм рд╕реЗ рд▓рдЧрднрдЧ рдЖрдзрд╛ рд╕рд╛рд▓ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рдВрдмрд╛ рд▓рд┐рдЦрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ, рдФрд░ рдЕрдм рдореИрдВрдиреЗ рдЕрдВрддрддрдГ OpenCvSharp рдХреЗ "рд╣реБрдб рдХреЗ рдиреАрдЪреЗ" рдФрд░ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рддрд╣рдд рдкрд░рд┐рдпреЛрдЬрдирд╛
OpenCvSharp C # рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП OpenCV рдХрд╛ рдПрдХ рдЖрд╡рд░рдг рд╣реИред рд╡реИрд╕реЗ,
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдУрдкрдирд╕реАрд╡реА рдХреА
рдЬрд╛рдБрдЪ рдХреА рд╣реИред OpenCvSharp рдХреЗ рдордЬрдмреВрдд рдмрд┐рдВрджреБ рдХреЛрдб рдирдореВрдиреЛрдВ рдХрд╛ рдмрдбрд╝рд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдорд░реНрдерди (рдпрд╣ рдореЛрдиреЛ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдЪрд▓рддрд╛ рд╣реИ), рдФрд░ рдЖрд╕рд╛рди рд╕реНрдерд╛рдкрдирд╛ред
рд░реИрдкрд░ C # рдХреЛрдб рдХреА 112,200 рд▓рд╛рдЗрдиреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ 1.2% рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдВрджреЗрд╣ рд╕реЗ рдХрдо рд╣реИред рджреВрд╕рд░реА рдУрд░, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдХрдо рдХреАрдбрд╝реЗ рд╣реИрдВ рдЬреЛ рдЫреЛрдЯреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП 20 рд╕реЗ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪреБрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд╛рдП рдЧрдП, рдЬреЛ рдХрд┐ рджрд┐рд▓рдЪрд╕реНрдк рдпрд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред
рдкреА рд╡реА рдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реА, рд╕реА ++, рд╕реА #, рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдмрдЧ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЧрд▓рддрд┐рдпрд╛рдБ, рдФрд░ рдЯрд╛рдЗрдкреЛрд╕, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рдВрднрд╛рд╡рд┐рдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореБрджреНрджреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рд╕реНрдереИрддрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг (SAST) рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ
рдХреНрдпрд╛ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп
BitmapConverter рд╡рд┐рдзрд┐ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдмрдирд╛рддрд╛ рд╣реИ рдпрд╣ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдЪрд╛рд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИ:
- V3005 'рдЗрд╖реНрдЯрддрдо рдЪреИрдирд▓ [PixelFormats.Indexed1]' рдЪрд░ рдХреЛ рд╣реА рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдЦрдиреАрдп BitmapConverter.cs 22
- V3005 'рдЗрд╖реНрдЯрддрдордЪреИрдирд▓реНрд╕ [PixelFormats.Indexed8]' рдЪрд░ рдЦреБрдж рдХреЛ рд╕реМрдВрдкрд╛ рд╣реИред рд▓реЗрдЦрдиреАрдп BitmapConverter.cs 23
- V3005 'рдЗрд╖реНрдЯрддрдордЯреЗрдкреНрд╕ [PixelFormats.Indexed1]' рдЪрд░ рдХреЛ рдЦреБрдж рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдЦрдиреАрдп BitmapConverter.cs 50
- V3005 'рдЗрд╖реНрдЯрддрдо рдЯрд╛рдЗрдк [PixelFormats.Indexed8]' рдЪрд░ рдХреЛ рдЦреБрдж рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдЦрдиреАрдп BitmapConverter.cs 51
static WriteableBitmapConverter() { optimumChannels = new Dictionary <PixelFormat, int>(); optimumChannels[PixelFormats.Indexed1] =
PixelFormats рд╡рд░реНрдЧ
System.Windows.Media рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рддрддреНрд╡
рдЗрд╖реНрдЯрддрдо рдЪреИрдирд▓ [PixelFormats.Indexed1] рдФрд░
рдЗрд╖реНрдЯрддрдо рдЪреИрдирд▓ [PixelFormats.Indexed8] рд░рд╛рдЗрдЯ-рдмрд╛рдЗрдЯрдореИрдкрдСрдирдореАрдЯрд░ рдЗрдиреНрд╡рд░реНрдЯрд░ рдореЗрдВ рджреВрд╕рд░реА рдмрд╛рд░ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рдорддрд▓рдм рдХреБрдЫ рдФрд░ рд╣реИред рд╡реИрд╕реЗ, рдпрд╣ рд╕реНрдирд┐рдкреЗрдЯ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЬреНрд╡рд▓рдВрдд рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреИрд╕реЗ рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рджреЗрдЦрдирд╛ рдЖрдкрдХреЛ рдХрдо рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдЯрд╛рдЗрдкреЛ рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рд╣рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрд░рд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдмрдЧреИрд░ рдХрд┐рд╕реА рдкреНрд░рдпрд╛рд╕ рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреАрдбрд╝реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рддрд╛рдХрдд рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢ :
V3021 рд╕рдорд╛рди рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ 'рдпрджрд┐' рдХрдерди рд╣реИрдВред рдкрд╣рд▓реЗ 'if' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдореЗрдердб рд░рд┐рдЯрд░реНрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рджреВрд╕рд░рд╛ 'if' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдмреЗрд╣реВрджрд╛ InputArray.cs 394 рд╣реИ
private static MatType EstimateType(Type t) { .... if (t == typeof(Vec2b)) return MatType.CV_8UC2; if (t == typeof(Vec3b)) return MatType.CV_8UC3; if (t == typeof(Vec4b)) return MatType.CV_8UC4; if (t == typeof(Vec6b)) return MatType.CV_8UC(6); if (t == typeof(Vec2s))
рдпрд╣ рдмрдЧ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рдХреА рджреЛ рдмрд╛рд░ рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдбреБрдкреНрд▓рд┐рдХреЗрдЯ" рдХреА рддрддреНрдХрд╛рд▓реАрди рд╢рд╛рдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ
рдЕрдЧрд░ рдмрдпрд╛рди рдХрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐:
- рдпрджрд┐ рдкрд╣рд▓реА рд╢рд░реНрдд рд╕рддреНрдп рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА;
- рдпрджрд┐ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдЭреВрдареА рд╣реИ, рддреЛ рджреВрд╕рд░реА рднреА рдЭреВрдареА рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЪрд░ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдЯреА , рджреЛ рдЪреЗрдХреЛрдВ рдХреЗ рдмреАрдЪ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИред
рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐
Vec2s рдХреА рджреВрд╕рд░реА рдкреНрд░рддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдереАред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢ :
V3010 рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░рд┐рдЯрд░реНрди рдорд╛рди 'ToString' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред ImgProcTest.cs 80
public static RectanglesIntersectTypes RotatedRectangleIntersection(RotatedRect rect1, RotatedRect rect2, out Point2f[] intersectingRegion) { using (var intersectingRegionVec = new VectorOfPoint2f()) { int ret = NativeMethods .imgproc_rotatedRectangleIntersection_vector( rect1, rect2, intersectingRegionVec.CvPtr); intersectingRegion = intersectingRegionVec.ToArray(); return (RectanglesIntersectTypes) ret; } } public void RotatedRectangleIntersectionVector() { var rr1 = new RotatedRect(new Point2f(100, 100), new Size2f(100, 100), 45); var rr2 = new RotatedRect(new Point2f(130, 100), new Size2f(100, 100), 0); Cv2.RotatedRectangleIntersection(rr1, rr2, out var intersectingRegion); .... intersectingRegion.ToString(); }
RotatedRectangleIntersection рд╡рд┐рдзрд┐ рдХреЛ
intersectingRegion рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░
рдкреНрд╡рд╛рдЗрдВрдЯ 2f рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░
intersectingRegion рдорд╛рдиреЛрдВ рд╕реЗ рднрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж,
ToString () рд╡рд┐рдзрд┐ рдХреЛ рд╕рд░рдгреА рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХреЛрдИ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЗрд╡рд▓ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рднреВрд▓ рдЧрдпрд╛ред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢:- V3021 рд╕рдорд╛рди рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ 'рдпрджрд┐' рдХрдерди рд╣реИрдВред рдкрд╣рд▓реЗ 'if' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдореЗрдердб рд░рд┐рдЯрд░реНрди рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рджреВрд╕рд░рд╛ 'рдЕрдЧрд░' рдХрдерди рд╕рдВрд╡реЗрджрдирд╣реАрди рд╣реИ Cv2_calib3d.cs 1370
- V3022 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдСрдмреНрдЬреЗрдХреНрдЯрдкреЙрдЗрдВрдЯреНрд╕ == рдирд▓' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред Cv2_calib3d.cs 1372
public static double CalibrateCamera(....) { if (objectPoints == null) throw new ArgumentNullException(nameof(objectPoints)); if (objectPoints == null) throw new ArgumentNullException(nameof(objectPoints)); .... }
рд╣рдордиреЗ рдпрд╣рд╛рдВ рдХреЛрдб рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рджреЛ рдЪреЗрддрд╛рд╡рдиреАред рдкрд╣рд▓рд╛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐
рдпрджрд┐ рджреЛрдиреЛрдВ рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╡рд╣ рд╕реНрдерд┐рддрд┐ рд╕рддреНрдп рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рдХреЗ рдХрдерди рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред рдирддреАрдЬрддрди, рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рд╣рдореЗрд╢рд╛ рдЭреВрдареА рд╣реЛрдЧреА, рдЬреЛ рдХрд┐ рджреВрд╕рд░реА рдЪреЗрддрд╛рд╡рдиреА рд╣рдореЗрдВ рдмрддрд╛ рд░рд╣реА рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдмрджрд▓рдирд╛ рднреВрд▓ рдЧрдпрд╛ред
рдкреНрдпрд╛рд░рд╛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯредрдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдиреНрдп рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ:
- V3021 рд╕рдорд╛рди рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ 'рдпрджрд┐' рдХрдерди рд╣реИрдВред рдкрд╣рд▓реЗ 'if' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдореЗрдердб рд░рд┐рдЯрд░реНрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рджреВрд╕рд░рд╛ 'рдЕрдЧрд░' рдХрдерди рд╕рдВрд╡реЗрджрдирд╣реАрди рд╣реИ Cv2_calib3d.cs 1444
- V3022 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдСрдмреНрдЬреЗрдХреНрдЯрдкреЙрдЗрдВрдЯреНрд╕ == рдирд▓' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред Cv2_calib3d.cs 1446
PVS-Studio рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3022 рдПрдХреНрд╕рдкреНрд░реЗрд╢рди 'рд▓реЗрдмрд▓ == MarkerValue' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред Labeller.cs 135
internal static class Labeller { .... private const int MarkerValue = -1; public static int Perform(Mat img, CvBlobs blobs) { .... int label = 0; int lastLabel = 0; CvBlob lastBlob = null; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { if (imgIn[x + y * step] == 0) continue; bool labeled = labels[y, x] != 0; if (....) { labeled = true;
рд▓реЗрдмрд▓ рдирд╛рдо рдХрд╛ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ 0. рдХреЗ рд▓рд┐рдП рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рд╕рд╣реА рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдмрдврд╝реЗрдЧрд╛ред рдХреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реИ, рдпрд╣ рдЪрд░ рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ рдХрднреА рднреА рдХреНрд╖рдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдирд┐рд░рдВрддрд░ -1 рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдИ рдЧрдИ рд▓рд╛рдЗрди рдореЗрдВ рд╣реИ, рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3038 рддрд░реНрдХ рдХрдИ рдмрд╛рд░ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Cv2_photo.cs 124
public static void FastNlMeansDenoisingMulti(....) { .... NativeMethods.photo_fastNlMeansDenoisingMulti( srcImgPtrs, srcImgPtrs.Length, dst.CvPtr, imgToDenoiseIndex, templateWindowSize, h, templateWindowSize, searchWindowSize); .... }
рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣рдореЗрдВ рдХреНрдпрд╛ рдмрддрд╛ рд░рд╣рд╛ рд╣реИ, рдЖрдЗрдП
рдлрд╝реЛрдЯреЛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред
NlMeansDenoisingMulti рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░:
public static extern void photo_fastNlMeansDenoisingMulti( IntPtr[] srcImgs, int srcImgsLength, IntPtr dst, int imgToDenoiseIndex, int temporalWindowSize, float h, int templateWindowSize, int searchWindowSize)
рдЪрд▓реЛ рдЗрд╕реЗ рдФрд░ рднреА рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реАрдзрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
NativeMethods.photo_fastNlMeansDenoisingMulti( .... templateWindowSize, .... templateWindowSize, ....); public static extern void photo_fastNlMeansDenoisingMulti( .... int temporalWindowSize, .... int templateWindowSize, ....)
рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╡рд┐рдВрдбреЛрд╛рдЗрдЬрд╝ рдЪрд░ рдХреЛ рджреЛ рдмрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
рдЯреЗрдореНрдкреЛрд░рд▓рд╡рд┐рдВрдбреЛрд╕рд╛рдЗрдЬрд╝ рдХреА рдШреЛрд╖рдгрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдФрд░ рдмрд╛рдд рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐
TemalWindowSize рдХрд╛
рдорд╛рди photo_fastNlMeansDenoisingMulti рдкрджреНрдзрддрд┐ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рдЪреЗрдд рдирд┐рд░реНрдгрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рд▓реЗрдЦрдХ рд╣реЛрддрд╛ рддреЛ рдореИрдВ рдЗрд╕ рдХреЛрдб рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рд░рдЦрддрд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдиреНрдп рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ:
- V3038 рддрд░реНрдХ рдХрдИ рдмрд╛рд░ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Cv2_photo.cs 149
- V3038 рддрд░реНрдХ рдХрдИ рдмрд╛рд░ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Cv2_photo.cs 180
- V3038 рддрд░реНрдХ рдХрдИ рдмрд╛рд░ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Cv2_photo.cs 205
рдЕрдЧрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдХреБрдЫ рд╣рдж рддрдХ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред
PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3066 'рдХреИрд▓рд┐рдм 3 рдбреА_ рд░реЛрдбреНрд░рд┐рдЧреНрд╕_рдореИрдЯрд╡реЛрдХ' рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдЧрд▓рдд рдХреНрд░рдо: 'рдореИрдЯреНрд░рд┐рдХреНрд╕рдПрдо.рдХрд╡рд░рдкреЙрдЯ' рдФрд░ 'рд╡реЗрдХреНрдЯрд░рдПрдо.рдХрд╡рд░рдЯреНрд░реЙрдЯ'ред Cv2_calib3d.cs 86
public static void Rodrigues(double[,] matrix, out double[] vector, out double[,] jacobian) { .... using (var jacobianM = new Mat<double>()) { NativeMethods.calib3d_Rodrigues_MatToVec (matrixM.CvPtr, vectorM.CvPtr, jacobianM.CvPtr); .... } }
рдЖрдЗрдП рджреЗрдЦреЗрдВ
calib3d_Rodrigues_MatToVec рд╡рд┐рдзрд┐ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░:
public static extern void calib3d_Rodrigues_MatToVec( IntPtr vector, IntPtr matrix, IntPtr jacobian)
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
calib3d_Rodrigues_MatToVec рд╡рд┐рдзрд┐ рдХреЛ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдореИрдЯреНрд░рд┐рдХреНрд╕ ред
CvPtr рдФрд░
рд╡реЗрдХреНрдЯрд░рдПрдо ред
CvPtr рдЧрд▓рддреА рд╕реЗ рдмрджрд▓реА рдЧрдИред рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП: рдПрдХ рдЧрд▓рддреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рд╕рд╣реА рдЧрдгрдирд╛ рдореЗрдВ рдмрд╛рдзрд╛ рдбрд╛рд▓рддреА рд╣реИред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3063 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдбреЗрдЯрд╛ == рдЕрд╢рдХреНрддред Mat.cs 3539
private void CheckArgumentsForConvert(....) { .... if (data == null) throw new ArgumentNullException(nameof(data)); MatType t = Type(); if (data == null || (data.Length * dataDimension)
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░рд╛ рдЪреЗрдХ
рдбреЗрдЯрд╛ == рдЕрд╢рдХреНрдд рдХрднреА
рд╕рдЪ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐
рдбреЗрдЯрд╛ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ
рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рджреВрд╕рд░реЗ рдЪреЗрдХ рддрдХ рдХрднреА рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗрдЧрд╛ред
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдердХ рдЪреБрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд▓рдЧрднрдЧ рдкреВрд░реА рд╣реЛ рдЪреБрдХреА рд╣реИрдВредрдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3127 рджреЛ рд╕рдорд╛рди рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдкрд╛рдП рдЧрдПред рд╢рд╛рдпрдж, рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ рдФрд░ 'src2' Cv2_imgprocs 1547 рдХреЗ рдмрдЬрд╛рдп 'рд╡рд┐рдВрдбреЛ' рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
public static Point2d PhaseCorrelateRes(....) { if (src1 == null) throw new ArgumentNullException(nameof(src1)); if (src2 == null) throw new ArgumentNullException(nameof(src2)); if (window == null) throw new ArgumentNullException(nameof(src2));
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рджреЗрдЦрд╛ред рдЪрд░реЛрдВ рдХреЛ
рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╕рд╣реА рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рдБрдЪ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджреЗрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣
рд╡рд┐рдВрдбреЛ рдЪрд░ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕рдХрд╛ рдорд╛рди
рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рднреА рдЧрд▓рдд рдкрд╛рда рдХреЗ рд╕рд╛рде рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣
рдЦрд┐рдбрд╝рдХреА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдЗрд╕рдХреЗ рдмрдЬрд╛рдп
src2 рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рдд рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
if (window == null) throw new ArgumentNullException(nameof(window));
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3142 рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдореМрдЬреВрдж рд╣реЛред MatOfT.cs 873
рдЕрдм, рдХреЗрд╡рд▓ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдЙрд╕ рдорд╛рдорд▓реЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдЬрд╣рд╛рдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЕрдЧрдореНрдп рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИред рдпрд╣ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рд╣реА рдФрд░ рдЧрд▓рдд рджреЛрдиреЛрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
public new Mat<TElem> SubMat(params Range[] ranges) { Mat result = base.SubMat(ranges); return Wrap(result); }
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐
рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЕрдЧрдореНрдп рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐
рд╕рдмрдореИрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕рдЪ рдХрд╣ рд░рд╣рд╛ рд╣реИред
public Mat SubMat(params Range[] ranges) { throw new NotImplementedException(); }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкреВрд░реНрдг рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдЧрд╛ред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдиреБрдкрд▓рдмреНрдз рдХреЛрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрдЧ рдирд╣реАрдВ рд╣реИред
рдЕрдЧрд▓реЗ рддреАрди рджреЛрд╖ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╣реИрдВ рдореИрдВ рддреАрдиреЛрдВ рд╕рд╣рд┐рдд рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3022 рдПрдХреНрд╕рдкреНрд░реЗрд╢рди 'String.IsNullOrEmpty ("winName")' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред Cv2_highgui.cs 46
public static void DestroyWindow(string winName) { if (String.IsNullOrEmpty("winName")) .... }
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3022 рдПрдХреНрд╕рдкреНрд░реЗрд╢рди '
string.IsNullOrEmpty ("
рдлрд╝рд╛рдЗрд▓рдирд╛рдо ")' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред рдлреНрд░реЗрдорд╡рд░реНрдХ.рдПрд╕рд╕реА 37
public static FrameSource CreateFrameSource_Video(string fileName) { if (string.IsNullOrEmpty("fileName")) .... }
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V3022 рдПрдХреНрд╕рдкреНрд░реЗрд╢рди '
string.IsNullOrEmpty ("
рдлрд╝рд╛рдЗрд▓рдирд╛рдо ")' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред рдлреНрд░реЗрдорд╡рд░реНрдХ.рдХреЗред 53
public static FrameSource CreateFrameSource_Video_CUDA(string fileName) { if (string.IsNullOrEmpty("fileName")) .... }
рдХрднреА-рдХрднреА
V3022 рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ (рд╣рдореЗрд╢рд╛ рд╕рдЪ / рдЭреВрда рдХреЗ рднрд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рдпрд╛ рдЕрдЬреАрдм рдмрдЧ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИрдВред рдКрдкрд░ рдХреЗ рддреАрдиреЛрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЙрдирд╕реЗ рдПрдХ рд╣реА рдЧрд▓рддреА рд╣реИред рд╡рд┐рдзрд┐ рдореЗрдВ рдЯрд╛рдЗрдк
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдорд╛рди рдЬрд╛рдБрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкрд╛рда рдЪрд░ рдХрд╛ рдирд╛рдо рд╣реИ, рдпрд╛рдиреА рдЪрд░ рдХрд╛ рдирд╛рдо рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдПрдХ рдмрд╛рд░ рдХреЛрдб рдХрд╛ рджреЛрд╖рдкреВрд░реНрдг рдмреНрд▓реЙрдХ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдХреНрд▓реЛрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд┐рд╖реНрдХрд░реНрд╖
OpenCvSharp рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдПрдХ рдмрдбрд╝рд╛ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░, рдЙрдирдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрднрд╛рд░реА рд╣реВрдВред рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ!
рд▓реЗрдХрд┐рди рдЕрдм рдЬрдм рдореИрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрди рдЧрдпрд╛ рд╣реВрдВ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдХреЛрдб рджреЗрдЦрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдкрд╣рд▓реВ рдкрд░ рдЙрдЪрд┐рдд рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ, рдФрд░ рдХрдИ рдХреАрдбрд╝реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рдВрдЧреА рддрдХрдиреАрдХреЛрдВ (рдЬреИрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдХреАрдбрд╝реЗ рд╕рд┐рд░реНрдл рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝реЗрдВред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рджрд░реНрд╢рди рдкрд░
рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред
рдЪреВрдВрдХрд┐ OpenCvSharp рдУрдкрди-рд╕реЛрд░реНрд╕ рд╣реИ рдФрд░ GitHub рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓реЗрдЦрдХ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП
рдирд┐: рд╢реБрд▓реНрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреА рдЯреНрд░рд╛рдпрд▓ рдХреЙрдкреА
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред