рдЗрдорд╛рдЧреЛ рдУрд╕реАрдЖрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдкреНрдЯрд┐рдХрд▓ рдкрд╣рдЪрд╛рди рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рдЗрд╕ рдиреЛрдЯ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдУрдкрдирд╕реАрд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдкреНрдЯрд┐рдХрд▓ рдкрд╣рдЪрд╛рди рдкреНрд░рдгрд╛рд▓реА рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдкреАрдЫреЗ рдПрдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрдореИрдЧреЛ рдУрд╕реАрдЖрд░ рд╣реИ , рдЬреЛ рд░рд╛рд╕рд╛рдпрдирд┐рдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдорд╛рдиреНрдпрддрд╛ рдореЗрдВ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд░рд╕рд╛рдпрди рд╡рд┐рдЬреНрдЮрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдореБрджреНрджреЛрдВ рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд░рдЪрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛рдУрдВред рдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ред

рдорд╛рдиреНрдпрддрд╛ рдЗрдВрдЬрди рд╕рдВрд░рдЪрдирд╛


рдСрдкреНрдЯрд┐рдХрд▓ рдкрд╣рдЪрд╛рди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЗрдВрдЬрди рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдо рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рддреАрди рд╕реНрддрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
  • рд░реЗрдЦрд╛рдкреБрдВрдЬ рд╕реНрддрд░ (рд╣рдо рдЪрд┐рддреНрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ);
  • рдкреНрд░рд╛рдЗрдореЗрдЯреАрдЬрд╝ рдХрд╛ рд╕реНрддрд░ (рд╣рдо рдХреБрдЫ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рдЬрд╝ рдХреЗ рд╕рд╛рде рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ - рдкреНрд░рддреАрдХ, рд░реЗрдЦрд╛рдПрдВ, рдордВрдбрд▓рд┐рдпрд╛рдВ, рдЖрджрд┐);
  • рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕реНрддрд░ (рд╣рдо рдЖрджрд┐рдо рд╕рдореВрд╣реЛрдВ рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ - "рддрд╛рд▓рд┐рдХрд╛", "рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрд▓", "рд▓реЗрдмрд▓", рдЖрджрд┐)

рдХрд╛рд▓реЗ рддреАрд░ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреА рдореБрдЦреНрдп рджрд┐рд╢рд╛ рдХреЛ рджрд░реНрд╢рд╛рдпрд╛: рд╣рдо рдПрдХ рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ рдХреЛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВред

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

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

рд░реЗрдЦрд╛рдкреБрдВрдЬ рд╕реНрддрд░: рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб


рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдЕрджреНрднреБрдд OpenCV рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрджрдо рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд╣реИред OpenCV рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рд░реЗрдЦрд╛рдкреБрдВрдЬ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ: PNG, JPG, BMP, DIB, TIFF, PBM, RAS, EXR рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ:
cv::Mat mat = cv::imread(fname, CV_LOAD_IMAGE_GRAYSCALE); 

рдЪрдпрдирд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ CV_LOAD_IMAGE_GRAYSCALE рдЖрдкрдХреЛ рдкрд┐рдХреНрд╕реЗрд▓ рддреАрд╡реНрд░рддрд╛ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рддрд╕реНрд╡реАрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдЧрд╛)ред рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд░рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреИрдЪ рдореЗрдВ рд╕реЗ, "рдкрд╛рд░рджрд░реНрд╢реА" PNGs рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╛рд░рджрд░реНрд╢реА рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЛ рдХрд╛рд▓реЗ рд░рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ CV_LOAD_IMAGE_UNCHANGED рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ BGRA рд░рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рд╛рдБ, OpenCV рдЗрд╕ рдХреНрд░рдо рдореЗрдВ рд░рдВрдЧ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ)ред

рдЗрд╕ рд╕реНрддрд░ рдкрд░ рд╣рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓рддрд╛ рд╣реИ:
рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рддрд╕реНрд╡реАрд░ рдХреЛ "рдмрджрддрд░" рдЪреБрдирд╛, рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдСрдкреНрдЯрд┐рдХрд▓ рдорд╛рдиреНрдпрддрд╛ рдХрдИ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЖрдЧреЗ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди" рд╕реЗ рд╣реИ - рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдХреИрдорд░реЗ "рдФрд░ рдирд╣реАрдВ"ред

рд░реЗрдЦрд╛рдкреБрдВрдЬ рд╕реНрддрд░: рдкреВрд░реНрд╡ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ


рдкреНрд░реА-рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЫрд╡рд┐ рдХреА "рдЧреБрдгрд╡рддреНрддрд╛" рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╣реИ: рд╢реЛрд░ рдХреЛ рджреВрд░ рдХрд░рдирд╛, рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдирд╛ред

рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░, рдЖрдк рдЫрд╡рд┐ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдкреЗрдЪреАрджрд╛ рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рдирд╛ рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд╛рд▓реНрдкрдирд┐рдХ рдХреНрдпрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдЫрд╡рд┐ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ: рд╕реНрдкрд╛рд░реНрд╕ рдорд╛рд╕реНрдХ , рдорд╛рдзреНрдпрд┐рдпрди рдлрд┐рд▓реНрдЯрд░ , рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ Google рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ ред

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

рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рд░реЗрдЯрд┐рдиреЗрдХреНрд╕ рдкреЙрдЗрд╕рди рд╕рдореАрдХрд░рдг

рд╡рд┐рдзрд┐ рдХреЗ рд▓рд╛рднреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
  • рд╕реБрдВрджрд░ рдЙрдЪреНрдЪ рдЧрддрд┐;
  • рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЧреБрдгрд╡рддреНрддрд╛;
  • рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдХрдЯрд╛рд╡ рдХрд╛ рдЕрднрд╛рд╡, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП "рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛";
  • рдФрд░ рдореБрдЦреНрдп рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд░реЛрд╢рдиреА рдХреЗ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реИред

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


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╕рддрд╣ рдХрд╛ рд╡рд┐рд╡рд░рдг:
  • рдереНрд░реЗрд╢реЛрд▓реНрдб рдЯреА рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдереНрд░реЗрд╢реЛрд▓реНрдб рдЫрд╡рд┐ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ ( рд▓реИрдкрд▓рд┐рдпрди рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб );
  • рдкреНрд░рд╛рдкреНрдд рдЫрд╡рд┐ рдХрд╛ рдЕрд╕рддрдд рдХреЛрд╕рд╛рдЗрди рд░реВрдкрд╛рдВрддрд░рдг ;
  • рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдФрд░ рдирд┐рдореНрди рдФрд░ рдордзреНрдпрдо рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ (рд░реЗрдЯрд┐рдиреЗрдХреНрд╕ рд╕рдореАрдХрд░рдг) рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдирд╛;
  • рдЙрд▓рдЯрд╛ рдЕрд╕рддрдд рдХреЛрд╕рд╛рдЗрди рд░реВрдкрд╛рдВрддрд░рдгред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реНрд╡рдпрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдЯреА рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЗрд╕рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ:

OpenCV рдХреИрд╕реЗ рдорджрдж рдХрд░реЗрдЧрд╛: рдЕрд╕рддрдд рдХреЛрд╕рд╛рдЗрди рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдХрд╛рд░реНрдп рд╣реИ:
 void dct(const Mat& src, Mat& dst, int flags=0); // flags = DCT_INVERSE for inverse DCT 

рдФрд░ рдпрд╣ libfftw рд╕реЗ рдПрдХ рд╕рдорд╛рди рдЧрддрд┐ рд╕реЗ рднреА рдмрджрддрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ (рдХреЛрд░ i5, рдХреЛрд░ рдбреБрдУ рдкрд░ рдкрд░реАрдХреНрд╖рдг) рдореЗрдВ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд╛рдирддрд╛ рд╣реВрдВред

рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддреА рд╣реИ:


рдЕрдм рд╣рдо рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдкреВрд░реНрд╡ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрдВрддреНрд░ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ: рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ ред

рдЗрд╕рдХреЗ рдмрд╛рдж : рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрдИ рдЕрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╣реА, "рдЬрд╛рджреВ" рдЯреА = 1,2,4,8), рд▓реЗрдХрд┐рди "рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЛ рдЯрдЯреЛрд▓рдиреЗ" рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЕрдм рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВ, рдЙрдирдХреЗ рд╕рдВрджрд░реНрдн рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкрд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреЙрдк рдЕрдк рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ рддрд╛рдХрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рди рдбрд╛рд▓реЗрдВред

рд░реЗрдЦрд╛рдкреБрдВрдЬ рд╕реНрддрд░: рджреНрд╡рд┐рдиреЗрджреНрд░реАрдХрд░рдг


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

рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рддрд░реАрдХреЛрдВ рдХреА рдЕрдиреБрдХреВрд▓рди рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╡реЗ рдЕрднреА рднреА рдереНрд░реЗрд╢реЛрд▓реНрдб рдорд╛рди рд░рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреА "рд░рд╛рд╢рд┐" рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдХреБрдЫ рддрддреНрд╡ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ, "рдирд░рдо" рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб "рд╢реЛрд░" рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд╛рдордиреЗ рдЖ рд╕рдХрддреЗ рд╣реИрдВред
рдордЬрдмреВрдд рдереНрд░реЗрд╕рд╣реЛрд▓реНрдбрдХрдордЬреЛрд░ рдереНрд░реЗрд╕рд┐рдВрдЧ

рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХрд╛ рд╕рдЯреАрдХ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЧрдП - рд╣рдордиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрдХреВрд▓реА рджреНрд╡рд┐рдиреЗрджреНрд░реАрдХрд░рдг рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:
  • рд╣рдо рдордЬрдмреВрдд рдФрд░ рдХрдордЬреЛрд░ рдмрд┐рдирд╛рд░рд╛рдЗрдЬреЗрд╢рди (рджрд┐рдП рдЧрдП рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдЯреА 1 рдФрд░ рдЯреА 2 рдХреЗ рд╕рд╛рде) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ;
  • рд╣рдо рдХрдиреЗрдХреНрдЯреЗрдб рдкрд┐рдХреНрд╕реЗрд▓-рдмрд╛рдп-рдкрд┐рдХреНрд╕реЗрд▓ рдХреНрд╖реЗрддреНрд░реЛрдВ ( рдЕрдВрдХрди рдЦрдВрдбреЛрдВ ) рдХреЗ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ;
  • рд╣рдо рд╕рднреА "рдХрдордЬреЛрд░" рдЦрдВрдбреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдордЬрдмреВрдд рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рд╕рдВрдмрдВрдз рд╣реИ, рдЬреЛ рджрд┐рдП рдЧрдП (рдЕрдиреБрдкрд╛рдд) рд╕реЗ рдХрдо рд╣реИрдВ;
  • рд╣рдо рдХрдо рдШрдирддреНрд╡ рдХреЗ рд╕рднреА "рдХрдордЬреЛрд░" рдЦрдВрдбреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ (рдХрд╛рд▓реЗ / рд╕рдлреЗрдж рдкрд┐рдХреНрд╕рд▓ рдХрд╛ рдЕрдиреБрдкрд╛рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреЙрд░рдЧреЗрдЯреЛ рд╕реЗ рдХрдо рд╣реИ);
  • рд╢реЗрд╖ "рдХрдордЬреЛрд░" рд╕реЗрдЧрдореЗрдВрдЯ рджреНрд╡рд┐рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдореЗрдВ рд╢реЛрд░ рд╕реЗ рд░рд╣рд┐рдд рдФрд░ рдмрд┐рдирд╛ рдиреБрдХрд╕рд╛рди рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИ:

рд╡рд░реНрдгрд┐рдд рд╕рдорд╛рдзрд╛рди рдЕрдЬреАрдм рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдХрд┐ рд╣рдо рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ "рдЫреБрдЯрдХрд╛рд░рд╛" рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рджреВрд╕рд░реЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕рд╣реА "рджреНрд╡реИрд░реАрдХрд░рдг рдереНрд░реЗрд╢рд░ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╣реА рдмрд╛рдЗрдирд░рд╛рдЗрдЬреЗрд╢рди рдЕрдм рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ" рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП t1 рдФрд░ t2 рдХреЗ рдмреАрдЪ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо "рдЕрд╕реАрдо рд░реВрдк рд╕реЗ" рдЗрд╕ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдирд╣реАрдВ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, t1 рдФрд░ t2 рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдкрд░ рднреА рдкреНрд░рддрд┐рдмрдВрдз рд╣реИ)ред

рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрд╢реЛрд▓реНрдб рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд╛рдлреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ, рдФрд░ рдУрдкрдирд╕реАрд╡реАрд╡реА рдиреЗ "рдЕрдиреБрдХреВрд▓реА" рдмрд┐рд▓реНрдЯ-рдЗрди рдЕрдиреБрдХреВрд▓реА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ:
 cv::adaptiveThreshold(image, strongBinarized, 255, cv::ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, strongBinarizeKernelSize, strongBinarizeTreshold); cv::threshold(image, otsuBinarized, otsuThresholdValue, 255, cv::THRESH_OTSU); 

рдпрджрд┐ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдореЗрдВ рд╕реЗрдЧрдореЗрдВрдЯ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░ ("рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ; "рд╡рд╣реА" рдЗрдВрдЬрди рд╕рдВрд░рдЪрдирд╛ рдХреА рдЫрд╡рд┐ рдореЗрдВ рдиреАрд▓реЗ рддреАрд░)ред

рдЖрджрд┐рдо рд╕реНрддрд░: рд╡реИрд╢реНрд╡реАрдХрд░рдг


рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдЧрд▓рд╛ рдХрджрдо рдкрд┐рдХреНрд╕рд▓ (рд╕реЗрдЧрдореЗрдВрдЯ) рдХреЗ рд╕реЗрдЯреЛрдВ рдХреЛ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡реНрд╕ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рдПрдХ рд╕рд░реНрдХрд▓, рд╕реЗрдЧрдореЗрдВрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ, рдПрдХ рдЖрдпрдд (рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рдХреНрд╕ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ рд╣рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ), рдпрд╛ рдкреНрд░рддреАрдХред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХрд┐рд╕ рд╡рд░реНрдЧ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╡реЗрдХреНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд┐рдХреНрд╕рд▓ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдХреЛ рджреЛрдиреЛрдВ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдкреНрд░рддреАрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╡реЗрдХреНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "N", "I"ред рдпрд╛ рд╡реГрддреНрдд рдФрд░ рдкреНрд░рддреАрдХ "O" рд╣реИрдВред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдореЗрдВ рдордЬрд╝рдмреВрддреА рд╕реЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБ рдХрд┐рд╕ рд╡рд░реНрдЧ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдЧ рдореЗрдВ рд╡рд╕реНрддреБ рдХреА рд╕рдорд╛рдирддрд╛ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореАрдЯреНрд░рд┐рдХ рдЙрд╕рдХреЗ рд╡реИрд╢реНрд╡реАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдкрд╣рдЪрд╛рдирдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдорд┐рд▓реЗрдЧрд╛ (рдореАрдЯреНрд░рд┐рдХ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рди рд╕реЛрдЪреЗрдВ, рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕реНрд╡рдпрдВ рдЕрднреА рддрдХ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ):
  • 0.1 рдХреЗ рдореАрдЯреНрд░рд┐рдХ (рджреВрд░реА) рдорд╛рди рдХреЗ рд╕рд╛рде "рдПрдЪ" рдкреНрд░рддреАрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдХреНрдЯрд░рдХрд░рдг (рд╢рд╛рдпрдж рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдПрдЪ рд╣реИ) ;
  • 4.93 рдХреЗ рдореАрдЯреНрд░рд┐рдХ рдорд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рддреАрдХ "рдЖрд░" рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдХреНрдЯрд░рдХрд░рдг (рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рднреА рдЖрд░) ;
  • рддреАрди рдЦрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реИрд╢реНрд╡реАрдХрд░рдг "|", "-", "|" 0.12 рдХреЗ рдореАрдЯреНрд░рд┐рдХ рдорд╛рди рдХреЗ рд╕рд╛рде (рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпреЗ рддреАрди рдЦрдВрдб рд╣реИрдВ) ;
  • 45.4 рдХреЗ рдПрдХ рдореАрдЯреНрд░рд┐рдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдкрдХреНрд╖реЛрдВ x, y рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдпрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдХреНрдЯрд░рдХрд░рдг;
  • рдореАрдЯреНрд░рд┐рдХ рдореВрд▓реНрдп + inf рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрдХрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдХреНрдЯрд░рдХрд░рдг (рдЧрд╛рд░рдВрдЯреА рдПрдХ рд╕рд░реНрдХрд▓ рдирд╣реАрдВ рд╣реИ) ;
  • ...

рд╡реЗрдХреНрдЯрд░ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рдзрд╛рдирддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЦрдВрдб рд╕реЗрдЯ рдорд╛рдиреНрдпрддрд╛

рдЖрдорддреМрд░ рдкрд░, рдПрдХ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЦрдВрдбреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  • рдПрдХ рдерд┐рдирд┐рдВрдЧ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ ( -> );
  • рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди (рдбреАрдХреЛрд░реНрдирд░) ( );
  • рдкреНрд░рддреНрдпреЗрдХ рдЦрдВрдб рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЕрдиреБрдорд╛рди ;
  • рдкрд░рд┐рдгрд╛рдо рд╕рдиреНрдирд┐рдХрдЯрди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдФрд░ рдореВрд▓ рд╕реЗ рд╕рдиреНрдирд┐рдХрдЯрди рдХрд╛ рдПрдХ рд╡рд┐рдЪрд▓рди рд╣реИ ред

OpenCV рдореЗрдВ рдХреЛрдИ рднреА рддреИрдпрд╛рд░ рдерд┐рдирд┐рдВрдЧ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ ред рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди (рдбреЗрдХреЛрдиреЗрд░) рднреА, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреБрдЪреНрдЫ рд╣реИ: рд╣рдо рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдкрдбрд╝реЛрд╕реА рд╣реИрдВред рд▓реЗрдХрд┐рди рдУрдкрдирд╕реАрд╡реА рдореЗрдВ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдВрдХреЛрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рдореМрдЬреВрдж рд╣реИ, рдФрд░ рд╣рдордиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ:
 cv::approxPolyDP(curve, approxCurve, approxEps, closed); // approximation of curve -> approxCurve 

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдиреНрдирд┐рдХрдЯрди рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ (рд▓рдЧрднрдЧ) рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реЗрдЧрдореЗрдВрдЯ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдФрд░ рдХрдореА рдХреЗ рд╕рд╛рде - рдПрдХ рдореЛрдЯреЗ рдЕрдиреБрдорд╛рди, рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рдмрдбрд╝рд╛ рдореАрдЯреНрд░рд┐рдХ рдореВрд▓реНрдпред рдЗрд╕реЗ рд╕рд╣реА рдХреИрд╕реЗ рдЪреБрдиреЗрдВ?

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рджреГрдврд╝рддрд╛ рд╕реЗ рдФрд╕рдд рд▓рд╛рдЗрди рдореЛрдЯрд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рд╕рд╣рдЬ рд░реВрдк рд╕реЗ - рдмрдбрд╝реА рд▓рд╛рдЗрди рдХреА рдореЛрдЯрд╛рдИ, рдХрдо рд╡рд┐рд╕реНрддрд╛рд░; рдПрдХ рддреЗрдЬ рдкреЗрдВрд╕рд┐рд▓ рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░ рдПрдХ рдорд╛рд░реНрдХрд░ рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪреА рдЧрдИ рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛:
 approxEps = averageLineThickness * magicLineVectorizationFactor; 

рджреВрд╕рд░реА рдмрд╛рдд, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрдорд╛рдирд┐рдд (рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрджрдо рдХреЗ рд╕рд╛рде) рдЦрдВрдбреЛрдВ рдХреЛ рд╡реЗрдХреНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд" рдЪреБрдирдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдордВрдбрд▓реА рдХреА рдорд╛рдиреНрдпрддрд╛

рдмрд╣реБрдд рд╕рд░рд▓:
  • рд╣рдо рд╕рд░реНрдХрд▓ рдХреЗ рдХреЗрдВрджреНрд░ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЕрдВрдХреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░ рдФрд╕рдд) - (x, y);
  • рд╣рдо рддреНрд░рд┐рдЬреНрдпрд╛ (рдХреЗрдВрджреНрд░ рд╕реЗ рдмрд┐рдВрджреБрдУрдВ рдХреА рдФрд╕рдд рджреВрд░реА) рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЖрд░;
  • рд╣рдо рддреНрд░реБрдЯрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ: рдХреЗрдВрджреНрд░ (x, y) рдФрд░ рддреНрд░рд┐рдЬреНрдпрд╛ r рдФрд░ рдореЛрдЯрд╛рдИ рдФрд╕рдд рдХреЗ рд╕рд╛рде рдПрдХ рд╡реГрддреНрдд рдХреЗ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рдФрд╕рдд рджреВрд░реА;
  • рд╣рдо рд╕рд░реНрдХрд▓ рдмреНрд░реЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреБрд░реНрдорд╛рдирд╛ рдорд╛рдирддреЗ рд╣реИрдВ: рдореИрдЬрд┐рдХрдХреИрд░рд▓ рдкреЗрдирд╛рд▓реНрдЯреА * (рдмреНрд░реЗрдХ рдХрд╛%)ред

MagicCirclePenalty рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЗрд╕рдХреЗ рд╕рдорд╛рди рдЖрдпрдд рдорд╛рдиреНрдпрддрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред

рдЪрд░рд┐рддреНрд░ рдкрд╣рдЪрд╛рди

рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛, рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдПрдХ рдЪреБрдиреМрддреА рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдПрдХ рдПрдХрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд╣реАрдВ рд╣реИ рдЬреЛ "рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо" рдорд╛рдиреНрдпрддрд╛ рд╕рдВрдХреЗрддрдХ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИред рд╣реНрдпреВрд░рд┐рд╕реНрдЯрд┐рдХреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдмрд╣реБрдд рд╕рд░рд▓ рддрд░реАрдХреЗ рд╣реИрдВ, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдкрд╣рдЪрд╛рди рдХреА "рдЕрдЪреНрдЫреА" рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдЪрд░рд┐рддреНрд░ рдорд╛рдиреНрдпрддрд╛ рдХреЗ рдХрдИ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХреБрд▓ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЪреБрдирд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдХрд╛рдлреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛: рдпрджрд┐ p1 = рдЗрд╕ рддрдереНрдп рдХрд╛ рдореАрдЯреНрд░рд┐рдХ рдореВрд▓реНрдп рдХрд┐, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо 1 рдХреЗ рджреНрд╡рд╛рд░рд╛, рдХреНрд╖реЗрддреНрд░ A рдХреЛ рдкреНрд░рддреАрдХ s рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ P2 = рдХрд╛ рдореАрдЯреНрд░рд┐рдХ рдорд╛рди рдХреНрдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдердо 2 рдХреНрд╖реЗрддреНрд░ A рдХреЛ рдкреНрд░рддреАрдХ s рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ, рддрдм рдЕрдВрддрд┐рдо рдорд╛рди p = f (p1, P2)ред рд╣рдордиреЗ рджреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рддреБрд▓рдиреАрдп рдореВрд▓реНрдпреЛрдВ, рдЙрдЪреНрдЪ рдЧрддрд┐ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд╕рд╛рде рдЪреБрдирд╛ рд╣реИ:
  • рдлреВрд░рд┐рдпрд░ рд╡рд┐рд╡рд░рдгрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдорд╛рдиреНрдпрддрд╛;
  • рдмрд┐рдВрджреБрдУрдВ рдХреЗ рджреНрд╡рд┐рдШрд╛рдд рд╡рд┐рдЪрд▓рди рдХреЗ рдореБрдЦреМрдЯреЗред

рдлреВрд░рд┐рдпрд░ рд╡рд┐рд╡рд░рдгрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд░рд┐рддреНрд░ рдХреА рдкрд╣рдЪрд╛рди

рддреИрдпрд╛рд░реА:
  • рд╡рд╕реНрддреБ рдХрд╛ рдмрд╛рд╣рд░реА рд╕рдореЛрдЪреНрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
  • рд╕рдореЛрдЪреНрдЪ рдмрд┐рдВрджреБрдУрдВ (x; y) рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг x + iy;
  • рдЗрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕реЗрдЯ рдХрд╛ рдЕрд╕рддрдд рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг;
  • рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЗ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ред

рдЙрд▓рдЯрд╛ рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдЙрди рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЕрдВрд╢ рдХреЗ рд╕рд╛рде рдореВрд▓ рдЖрдХреГрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ (рдПрди рдЧреБрдгрд╛рдВрдХ рдХреЗ рдмрд╛рдПрдВ рднрд╛рдЧ рд╣реИ):


"рдорд╛рдиреНрдпрддрд╛" рдСрдкрд░реЗрд╢рди рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдлреВрд░рд┐рдпрд░ рд╡рд┐рд╡рд░рдгрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рд╕рдорд░реНрдерд┐рдд рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рджреЛ рд╕реЗрдЯ рд╕реЗ рдореАрдЯреНрд░рд┐рдХ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдирд╡рд▓реНрд╢рди рдирд╛рдордХ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: d = sum ((d1 [i] -d2 [i]) * w [i], i = 1, N), рдЬрд╣рд╛рдВ d1 рдФрд░ d2 рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд╕реЗрдЯ рд╣реИрдВ рдлреВрд░рд┐рдпрд░, рдФрд░ w рдкреНрд░рддреНрдпреЗрдХ рдЧреБрдгрд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд╡рдЬрди рд╡реЗрдХреНрдЯрд░ рд╣реИ (рд╣рдо рдЗрд╕реЗ рдорд╢реАрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдерд╛)ред рддреБрд▓рдирд╛рддреНрдордХ рдЪрд┐рд╣реНрди рддреБрд▓рдирд╛рддреНрдордХ рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рдВрдХреНрд╢рди рдЙрдЪреНрдЪ-рдЖрд╡реГрддреНрддрд┐ рд╢реЛрд░ (рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд┐рдХреНрд╕реЗрд▓ рдЬреЛ рдЖрдВрдХрдбрд╝реЗ рдХреА "рдЬреНрдпрд╛рдорд┐рддрд┐" рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд░реЛрдзреА рд╣реИред

OpenCV рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдорджрдж рдХрд░рддрд╛ рд╣реИ; рд╡рд╕реНрддреБрдУрдВ рдХреА рдмрд╛рд╣рд░реА рдЖрдХреГрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдХрд╛рд░реНрдп рд╣реИ:
 cv::findContours(image, storage, CV_RETR_EXTERNAL); 

рдФрд░ рдЕрд╕рддрдд рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рд░реЛрд╣ рд╣реИ:
 cv::dft(src, dst); 

рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред

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

рджреНрд╡рд┐рдШрд╛рдд рд╡рд┐рдЪрд▓рди рдорд╛рд╕реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд░рд┐рддреНрд░ рдХреА рдорд╛рдиреНрдпрддрд╛

рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╕рд╣рдЬ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЬреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдХрд┐рд╕реА рднреА рд╕рдВрдХрд▓реНрдк рдХреЗ рдореБрджреНрд░рд┐рдд рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рджреЛ рд╢реНрд╡реЗрдд-рд╢реНрдпрд╛рдо рдЫрд╡рд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рд╣рдо рдкрд┐рдХреНрд╕реЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдирдХреА рддреБрд▓рдирд╛ рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рдХрд░рдирд╛ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЫрд╡рд┐ 1 рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП, рдПрдХ рджрдВрдб рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╕рдорд╛рди рд░рдВрдЧ рдХреА рдЫрд╡рд┐ 2 рдХреЗ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рджреВрд░реАред рддрджрдиреБрд╕рд╛рд░, рдПрдХ рдореАрдЯреНрд░рд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЬреБрд░реНрдорд╛рдирд╛ рдХрд╛ рдпреЛрдЧ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рд╢реЛрд░ рдХреЗ рд╕рд╛рде рдЫреЛрдЯреЗ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рд╣реЛрдЧреА: рд╕рд╛рдЗрдб рд▓рдВрдмрд╛рдИ n рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд┐рдХреНрд╕реЗрд▓ k рдкреНрд░рддрд┐рд╢рдд рддрдХ рдЦрд░рд╛рдм рдорд╛рдорд▓реЗ рдореЗрдВ k * n рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рдореАрдЯреНрд░рд┐рдХ рдирд╣реАрдВ "рдЦрд░рд╛рдм" рдХрд░реЗрдЧрд╛, рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, k рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ , рдХреНрдпреЛрдВрдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реЗ рдЫрд╡рд┐ рдХреЗ "рд╕рд╣реА" рдкрд┐рдХреНрд╕рд▓ рд╕реЗ рд╕рдЯреЗ рд╣реЛрддреЗ рд╣реИрдВред

рд╡рд┐рдзрд┐ рдХрд╛ рдиреБрдХрд╕рд╛рди, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдХрдо рдЧрддрд┐ рд╣реЛрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ (O (n 2 )) рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрд┐рд╕реА рдЕрдиреНрдп рдЪрд┐рддреНрд░ (O (n 2 )) рдХреЗ рд╕рдорд╛рди рд░рдВрдЧ рдХреЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдиреНрдпреВрдирддрдо рджреВрд░реА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ O (n 4 ) рджреЗрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдкреНрд░реАрдХреЛрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд▓рд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╣рдо рджреЛ рдорд╛рд╕реНрдХ рдкреЗрдирд▓реНрдЯреА_рд╡реНрд╣реАрдЯ (x, y) рдФрд░ рдкреЗрдирд▓реНрдЯреАрдмреНрд▓рд╛рдХ (x, y) рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдЬреБрд░реНрдорд╛рдирд╛ рдХреНрд░рдорд╢рдГ рдкрд┐рдХреНрд╕реЗрд▓ рдпрд╛ (x, y) рд╕рдлреЗрдж рдпрд╛ рдХрд╛рд▓реЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдлрд┐рд░ "рдорд╛рдиреНрдпрддрд╛" (рдпрд╛рдиреА, рдореАрдЯреНрд░рд┐рдХ рдХреА рдЧрдгрдирд╛) рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ O (n 2 ) рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреА рд╣реИ:
 for (int y = 0; y < img.cols; y++) { for (int x = 0; x < img.rows; x++) { penalty += (image(y,x) == BLACK) ? penalty_black(y,x) : penalty_white(y,x); } } 

рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рддреНрд░ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрддрдиреА рдФрд░ рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдпрддрд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ (рдкреЗрдирд▓реНрдЯреА_рд╡рд┐рдЯ, рдкреЗрдирд╛рд▓реНрдЯреА_рдмреНрд▓рд╛рдХ) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред OpenCV рд╢рд╛рдпрдж рд╣реА рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рддреБрдЪреНрдЫ рд╣реИред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЫрд╡рд┐рдпрд╛рдВ рд╕рдорд╛рди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ:
 cv::resize(temp, temp, cv::Size(size_x, size_y), 0.0, 0.0); 

рдпрджрд┐ рд╣рдо рдЪрд░рд┐рддреНрд░ рдорд╛рдиреНрдпрддрд╛ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ, рддреЛ рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрдВ рдореАрдЯреНрд░рд┐рдХ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдорд┐рд▓рддреА рд╣реИ:

рдорд╛рдиреНрдпрддрд╛ рдореВрд▓реНрдп рдПрдХ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд╛рд▓рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЙрдЪреНрдЪрддрдо рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдпрд╣ рдкреНрд░рддреАрдХ "рд╕реА" рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ "0", рдпрд╛ "6" (рдпрд╛ "рдУ", рдпрд╛ "рд╕реА") рд╣реЛред рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реБрдЖ)ред рдФрд░ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдмреНрд░реИрдХреЗрдЯ рд╣реИ, рддреЛ рдпрд╣ рдХрд░реАрдм рд╕реЗ рдЦреБрд▓рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдкреНрд░рддреАрдХ рд╣реИ ...

рдЖрджрд┐рдо рд╕реНрддрд░: рдкреГрдердХреНрдХрд░рдг


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

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

рдпрд╣ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдПрдХ рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдмрд╕ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдФрд░ рдПрдХ рдУрд╕реАрдЖрд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдирд┐рд░рд╛рд╢рд╛ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдорд╛рдирд╡ рджреГрд╖реНрдЯрд┐рдХреЛрдг "рдХрджрдо рд╕реЗ рдХрджрдо" рдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдмрдирд╛рдиреЗ рдФрд░ рдЕрд╕рдВрддреЛрд╖рдЬрдирдХ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА, рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдорд╛рдиреНрдпрддрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ "рдЧрд▓рдд" рди рд╣реЛрдВ, рдФрд░ рд╣рдореЗрдВ рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдХреБрдЫ рддрд╕реНрд╡реАрд░реЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░реНрдХ рдХреЛ "рддреЛрдбрд╝" рджреЗрддреА рд╣реИрдВред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ -
рдмреЗрд╢рдХ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдШреБрдорд╛рд╡рджрд╛рд░ рд░реЗрдЦрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдпрд╛ рддреЛ рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рд╕реАрдзреЗ рд▓рд╛рдЗрди рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд░реИрдВрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рддрдм рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЕрдХреНрд╖рд░ "l" рдпрд╛ рджреЛ рд╕реАрдзреА рд░реЗрдЦрд╛рдПрдВ рдПрдХ рдХреЛрдг рдкрд░ (рдмрд╕ рдХреЛрдиреЗ рдЧреЛрд▓ рдЦреАрдВрдЪреА рдЧрдИ рд╣реИ)ред рд▓реЗрдХрд┐рди рд╕рд╣реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреИрд╕реЗ рдЪреБрдиреЗрдВ? рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдорд╢реАрди рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ 1/2 рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди 1/2 рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдкрддрди рд╣реИ, рд╣рдо рд╕рд┐рд░реНрдл рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рддреНрдпрд╛рдкрди рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ "рддреНрд░реБрдЯрд┐рдпреЛрдВ" рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐, рдЕрдЪреНрдЫреЗ рдЕрд╡рд╕рд░ рд╕реЗ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред .

, :

, - (, ). , , , ┬л ┬╗ тАФ .

:

, , ┬л┬╗ , , . , , , тАФ . , ┬лCl┬╗ () , , - ┬лl┬╗.

. .

:
  • ┬л┬╗ ( ), C, .

, .

:

, тАФ , , тАФ " ".

, : ( __-1 __+2, 3*__ 0.5* ), . , .

. тАФ . , , - ( ). ┬л┬╗ ( тАФ , ┬лl┬╗ , ┬лl┬╗. , ).

:
  • ;
  • , ;
  • : , .

┬л ┬╗ тАФ .

, , .



. , .

, Imago OCR , , ( ), . , . , . , .


, . , тАФ , ┬л┬╗ ┬л┬╗, :

, ┬л┬╗ , :

тАФ . , , , , .

:

тАФ (, ). , , , тАФ ( , тАФ ).

, . , ┬л┬╗ ( ), ┬л┬╗. , , тАФ ┬л┬╗ .


, ┬л┬╗ . , тАФ .
┬л ┬╗ :
( baseline_y), , тАФ . baseline_y :
  • ( );
  • y , .

, ( )? ; , , , ┬л ┬╗. baseline_y , тАФ .

, . :
  • % , ;
  • .

: 30% тАФ . 29? duck test. - , тАФ . , - .

? , . . ( , ?). . , :
  • k% , f(k) ;
  • n% , , a..z g(n) .

, тАФ , . ┬л┬╗ .


тАФ . тАФ : тАФ , , тАФ . .

: {c1, c2}
c1 тАФ ┬лY┬╗ 0.1 ┬лX┬╗ 0.4;
c2 тАФ ┬лc┬╗ 0.3 ┬лe┬╗ 0.8
, тАФ Yc . Yc . . тАФ .
4 , " Xe ", 1.2.

, . , ┬лYc┬╗ , . , (1.2) (0.4), (0.8). , , . ?


, , ? , , ?

тАФ , . , , .

, тАФ , . , . .

, , , , , , ; ( ) . , , тАФ .

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


┬л ┬╗ OCR , . , , , , . .

, , open-source Imago OCR , google .

Source: https://habr.com/ru/post/In172651/


All Articles