рдорддрд▓рд╛рдм рдореЗрдВ рдЖрд╡реГрддреНрддрд┐ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрд╡рд┐ рд╕реНрдкрд╖реНрдЯрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░

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

рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ
рдЖрд╡реГрддреНрддрд┐ рдФрд░ рд╕реНрдерд╛рдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд░реИрдЦрд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдЖрдзрд╛рд░ рдХрдирд╡рд┐рдХреНрд╢рди рдкреНрд░рдореЗрдп рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрд╡реГрддреНрддрд┐ рдбреЛрдореЗрди рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдПрдХ рдПрдХреНрд╕реЗрд╕рд░реА рдлрд┐рд▓реНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдПрдл (рдпреВ, рд╡реА) рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдПрдХреНрд╕реЗрд╕рд░реА рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреЗрдВрджреНрд░рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдПрдл (рдпреВ, рд╡реА) рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдл (рдпреВ, рд╡реА) рдХреЗ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рдШрдЯрдХреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрдо рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдо-рдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рдзрд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрд╡рдзрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд╛рдкрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрд╕рдиреНрди рдЕрд╡рдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдкреНрд░рднрд╛рд╡ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдпреЗ рдЕрд╡рдзрд┐рдпрд╛рдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЧреИрд░-рдЕрдХреНрд╖реАрдп рднрд╛рдЧреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдХрд░реАрдм рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЛ рдЖрдорддреМрд░ рдкрд░ рд░рд┐рдЯрд░реНрди рдПрд░рд░ рдпрд╛ рдУрд╡рд░рд▓реИрдк рдПрд░рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдлрдВрдХреНрд╢рди рд╕рдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рдХреЗ рджрдмрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдлрд╝рдВрдХреНрд╢рди f (x, y) рдФрд░ h (x, y) рдХреЗ рдЖрдХрд╛рд░ AB рдФрд░ C D. рд╣реИрдВред рд╣рдордиреЗ рджреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд╛рд░реНрдп рдХрд┐рдП рд╣реИрдВ, рджреЛрдиреЛрдВ рдЖрдпрд╛рдореЛрдВ P рдФрд░ Q рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, z рдФрд░ f рдХреЛ g рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ред
PA + C + 1 рдФрд░ QтЙеB + D + 1
рд╣рдо P рдФрд░ Q рдХреЗ рдиреНрдпреВрдирддрдо рдорд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрди рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

  1. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  2. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  3. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  4. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  5. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  6. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  7. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  8. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  9. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  10. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  11. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  12. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  13. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  14. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  15. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  16. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  17. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
  18. function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .
function PQ = paddedsize(AB, CD, PARAM) if nargin==1 PQ=2*AB; elseif nargin == 2&~ischar(CD) PQ = AB+CD ; PQ= 2 *ceil (PQ/2); elseif nargin == 2 m= max (AB); P=2^nextpow2(2*m); PQ=[P, P]; elseif nargin==3 m=max([AB CD]); P=2^nextpow2(2*m); PQ=[P, P]; else error ( ' '); end end * This source code was highlighted with Source Code Highlighter .


рдлрд╝рд┐рд▓реНрдЯрд░ H (u, v) рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд╛рд░реНрдп F (u, v) рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдХрд╛рд▓реНрдкрдирд┐рдХ рднрд╛рдЧреЛрдВ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди H (u, v) рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдерд╛, рддреЛ рдЙрддреНрдкрд╛рдж рдХрд╛ рдЪрд░рдг рднрд╛рдЧ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЪрд░рдг рд╕рдореАрдХрд░рдг рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдХрд╛рд▓реНрдкрдирд┐рдХ рднрд╛рдЧреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЪрд░рдг рдХреЛрдг рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдРрд╕реЗ рдлрд┐рд▓реНрдЯрд░ рдХреЛ рд╢реВрдиреНрдп рдЪрд░рдг рдкрд╛рд░реА рдХреЗ рд╕рд╛рде рдлрд┐рд▓реНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

  1. рдлрдВрдХреНрд╢рди g = dftfilt ( f, H )
  2. рдПрдл = рдПрдлрдПрдлрдЯреА 2 ( рдПрдл, рдЖрдХрд╛рд░ ( рдПрдЪ, 1 ) , рдЖрдХрд╛рд░ ( рдПрдЪ, 2 ) ) ;
  3. рдЧрд┐ = рдПрдЪред * рдПрдл;
  4. g = рд╡рд╛рд╕реНрддрд╡рд┐рдХ ( ifft2 ( Gi ) ) ;
  5. рдЬреА = рдЬреА ( 1 : рдЖрдХрд╛рд░ ( рдПрдл, 1 ) , 1 : рдЖрдХрд╛рд░ ( рдПрдл, 2 ) ) ;
  6. рдЕрдВрдд


рд╣рдо рд╕реНрдерд╛рдирд┐рдХ рд╕реЛрдмреЗрд▓ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рдЕрдиреБрд░реВрдк рдЖрд╡реГрддреНрддрд┐ рдбреЛрдореЗрди рдореЗрдВ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдПрдЪ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЫрд╡рд┐ рдХреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИред

  1. рдлрдВрдХреНрд╢рди g = gscale ( f, varargin )
  2. рдпрджрд┐ рд▓рдВрдмрд╛рдИ ( рд╡реИрд░рдЧрд┐рди ) == 0
  3. рд╡рд┐рдзрд┐ = 'рдлреБрд▓ 8' ;
  4. рдЕрдиреНрдпрдерд╛
  5. рд╡рд┐рдзрд┐ = varargin { 1 } ;
  6. рдЕрдВрдд
  7. рдпрджрд┐ рд╕реНрдЯреНрд░реИрдореНрдк ( рдХрдХреНрд╖рд╛ ( рдПрдл ) , 'рдбрдмрд▓' ) рдФрд░ ( рдЕрдзрд┐рдХрддрдо ( рдПрдл: ) ) > 1 | рдиреНрдпреВрдирддрдо ( рдПрдл ( :) ) < 0 )
  8. f = mat2gray ( f ) ;
  9. рдЕрдВрдд
  10. рд╕реНрд╡рд┐рдЪ рд╡рд┐рдзрд┐
  11. рдорд╛рдорд▓рд╛ 'рдкреВрд░реНрдг 8'
  12. g = im2uint8 ( mat2gray ( double ( f ) ) ) ;
  13. рдорд╛рдорд▓рд╛ 'рдлреБрд▓ 16'
  14. g = im2uint16 ( mat2gray ( double ( f ) ) ) ;
  15. рдорд╛рдорд▓рд╛ 'рдорд╛рдЗрдирдореИрдХреНрд╕'
  16. рдХрдо = рд╡реИрд░рдЧрд┐рди { 2 } ; high = varargin { 3 } ;
  17. рдЕрдЧрд░ рдХрдо> 1 | рдХрдо < 0 | рдЙрдЪреНрдЪ> 1 | рдЙрдЪреНрдЪ < реж
  18. рддреНрд░реБрдЯрд┐ ( 'рдирд┐рдореНрди рдФрд░ рдЙрдЪреНрдЪ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛' )
  19. рдЕрдВрдд
  20. рдпрджрд┐ рд╕реНрдЯреНрд░реИрдореНрдк ( рд╡рд░реНрдЧ ( рдПрдл ) , 'рдбрдмрд▓' )
  21. low_in = min ( f ( :) ) ;
  22. high_in = max ( f ( :) ) ;
  23. рдлрд╛рд░рд╕реА рд╕реНрдЯреНрд░реИрдореНрдк ( рдХрдХреНрд╖рд╛ ( рдПрдл ) , 'рдпреВрдЗрдВрдЯ 8' )
  24. low_in = min ( f ( :) ) ./ 255 ;
  25. high_in = max ( f ( :) ) ./ 255 ;
  26. рдлрд╛рд░рд╕реА рд╕реНрдЯреНрд░реИрдореНрдк ( рд╡рд░реНрдЧ ( f ) , 'uint16' )
  27. low_in = min ( f ( :) ) ./ 65535 ;
  28. high_in = max ( f ( :) ) ./ 65535 ;
  29. рдЕрдВрдд
  30. g = imadjust ( f, [ low_in, high_in ] , [ low, high ] ) ;
  31. рдЕрдиреНрдпрдерд╛
  32. рддреНрд░реБрдЯрд┐ ( 'рдЕрдорд╛рдиреНрдп рд╡рд┐рдзрд┐ред' )
  33. рдЕрдВрдд


рдирд┐рдореНрди dftuv рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЧреНрд░рд┐рдб рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рджреВрд░реА рдФрд░ рдЕрдиреНрдп рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  1. рд╕рдорд╛рд░реЛрд╣ [ рдпреВ, рд╡реА ] = рджрдлреНрддреБрд╡ ( рдПрдо, рдПрди )
  2. u = 0 : ( рдПрдо ) ;
  3. v = 0 : ( рдПрди ) ;
  4. idx = find ( u> M / 2 ) ;
  5. u ( idx ) = u ( idx ) ;
  6. idy = find ( v> N / 2 ) ;
  7. v ( idy ) = v ( idy ) ;
  8. [ рд╡реА, рдпреВ ] = рдореЗрд╢рдЧреНрд░рд┐рдб ( рд╡реА, рдпреВ ) ;
  9. рдЕрдВрдд


рдореИрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдЬреЛ рдПрдХ рдХрдо-рдкрд╛рд╕ рдлрд┐рд▓реНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИред

  1. рд╕рдорд╛рд░реЛрд╣ [ рдПрдЪ, рдбреА ] = lpfilter ( рдкреНрд░рдХрд╛рд░ , рдПрдо, рдПрди, рдбреА 0, рдПрди )
  2. [ рдпреВ, рд╡реА ] = рджрдлреНрддреБрд╡ ( рдПрдо, рдПрди ) ;
  3. D = sqrt ( U. ^ 2 + V. ^ 2 ) ;
  4. рд╕реНрд╡рд┐рдЪ рдкреНрд░рдХрд╛рд░
  5. рдорд╛рдорд▓рд╛ 'рдЖрджрд░реНрд╢'
  6. рдПрдЪ = рдбрдмрд▓ ( рдбреА <= рдбреА 0 ) ;
  7. рдорд╛рдорд▓рд╛ 'btw'
  8. if nargin == 4
  9. рдПрди 1 рд╣реИ ;
  10. рдЕрдВрдд
  11. H = 1. / ( 1 + ( D / D0 ) ред ^ ( 2 * n ) ) ;
  12. рдорд╛рдорд▓рд╛ 'рдЧрд╛рдКрд╕реА'
  13. рдПрдЪ = рдПрдХреНрд╕рдк ( ( рдбреАред ^ 2 ) ред/ ( 2 * ( рдбреА 0 ^ 2 ) ) ) ;
  14. рдЕрдиреНрдпрдерд╛
  15. рддреНрд░реБрдЯрд┐ ( 'рдЕрдЬреНрдЮрд╛рдд рдлрд╝рд┐рд▓реНрдЯрд░ рдкреНрд░рдХрд╛рд░' ) ;
  16. рдЕрдВрдд
  17. рдЕрдВрдд


рдЕрдм рдПрдХ рд╣рд╛рдИ-рдкрд╛рд╕ рдлрд┐рд▓реНрдЯрд░ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред

  1. рд╕рдорд╛рд░реЛрд╣ H = hpfilter ( рдкреНрд░рдХрд╛рд░ , рдПрдо, рдПрди, рдбреА 0, рдПрди )
  2. [ рдпреВ, рд╡реА ] = рджрдлреНрддреБрд╡ ( рдПрдо, рдПрди ) ;
  3. D = sqrt ( U. ^ 2 + V. ^ 2 ) ;
  4. рд╕реНрд╡рд┐рдЪ рдкреНрд░рдХрд╛рд░
  5. рдорд╛рдорд▓рд╛ 'рдЖрджрд░реНрд╢'
  6. рдПрдЪ = рдбрдмрд▓ ( рдбреА <= рдбреА 0 ) ;
  7. рдорд╛рдорд▓рд╛ 'btw'
  8. if nargin == 4
  9. рдПрди 1 рд╣реИ ;
  10. рдЕрдВрдд
  11. H = 1 - ( 1. / ( 1 + ( D / D0 ) ред ^ ( 2 * n ) ) ) ;
  12. рдорд╛рдорд▓рд╛ 'рдЧрд╛рдКрд╕реА'
  13. рдПрдЪ = 1 - ( рдПрдХреНрд╕рдк ( ( рдбреАред ^ 2 ) ред/ ( 2 * ( рдбреА 0 ^ 2 ) ) ) ) ;
  14. рдЕрдиреНрдпрдерд╛
  15. рддреНрд░реБрдЯрд┐ ( 'рдЕрдЬреНрдЮрд╛рдд рдлрд╝рд┐рд▓реНрдЯрд░ рдкреНрд░рдХрд╛рд░' ) ;
  16. рдЕрдВрдд
  17. рдЕрдВрдд


рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕реНрдкрд╖реНрдЯрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реАред

  1. img = imread ( 'D: \ Photo \ nature.jpg' ) ;
  2. red = img ( :,:, 1 ) ;
  3. F = fft2 ( img ) ;
  4. рдПрд╕ = fftshift ( рд▓реЙрдЧ ( 1 + рдПрдмреНрд╕ ( рдПрдл ) ) ) ;
  5. рдПрд╕ = gscale ( рдПрд╕ ) ;
  6. imshow ( img ) , рдлрд┐рдЧрд░ , imshow ( S ) ;
  7. PQ = рдЧрджреНрджреЗрджрд╛рд░ ( рдЖрдХрд╛рд░ ) ( рд▓рд╛рд▓ ) ;
  8. [ рдпреВ, рд╡реА ] = рджрдлреНрддреБрд╡ ( рдкреАрдХреНрдпреВ ( рез ) , рдкреАрдХреНрдпреВ ( реи ) ) ;
  9. рдбреА 0 = 0.05 * рдкреАрдХреНрдпреВ ( 2 ) ;
  10. рдПрдл = рдПрдлрдЯреА 2 ( рд▓рд╛рд▓, рдкреАрдХреНрдпреВ ( 1 ) , рдкреАрдХреНрдпреВ ( 2 ) ) ;
  11. H = exp ( - ( U. ^ 2 + V. ^ 2 ) / ( 2 * ( D0 ^ 2 ) ) ) ;
  12. g = dftfilt ( рд▓рд╛рд▓, рдПрдЪ ) ;
  13. рдЖрдХреГрддрд┐ , рдЗрдорд╢реЛ ( fftshift ( H ) , [ ] ) ;
  14. рдЖрдХреГрддрд┐ , рдореЗрд╖ ( H ( 1 : 10 : 500 , 1 : 10 : 500 ) )
  15. рдЕрдХреНрд╖ ( [ 0 50 0 50 0 1 ] )
  16. Colormap ( рдЧреНрд░реЗ )
  17. рдЧреНрд░рд┐рдб рдмрдВрдж
  18. рдзреБрд░реА
  19. рджреГрд╢реНрдп ( - реирел , реж )
  20. H = fftshift ( hpfilter ( ' рдЧреЙрд╕рд┐рдпрди ' , 500 , 500 , 50 ) ) ;
  21. рдореЗрд╢ ( H ( 1 : 10 : 500 , 1 : 10 : 500 ) )
  22. рдЕрдХреНрд╖ ( [ 0 50 0 50 0 1 ] )
  23. рдХреЙрд▓реЛрд░реНрдореИрдк ( [ 0 0 0 ] )
  24. рдЧреНрд░рд┐рдб рдмрдВрдж
  25. рдзреБрд░реА
  26. рджреГрд╢реНрдп ( - резремрей , ремрек )
  27. рдЪрд┐рддреНрд░рд╛ , imshow ( рдПрдЪ, [ ] ) ;
  28. PQ = рдЧрджреНрджреЗрджрд╛рд░ ( рдЖрдХрд╛рд░ ) ( рд▓рд╛рд▓ ) ;
  29. рдбреА 0 = 0.05ред * рдкреАрдХреНрдпреВ ( 1 ) ;
  30. рдПрдЪ = hpfilter ( ' рдЧреЙрд╕рд┐рдпрди ' , PQ ( 1 ) , PQ ( 2 ) , D0 ) ;
  31. g = dftfilt ( рд▓рд╛рд▓, рдПрдЪ ) ;
  32. рдЪрд┐рддреНрд░рд╛ , рдЗрдорд╢реЛ ( рдЬреА, [ 0 255 ] ) ;
  33. PQ = рдЧрджреНрджреЗрджрд╛рд░ ( рдЖрдХрд╛рд░ ) ( рд▓рд╛рд▓ ) ;
  34. рдбреА 0 = 0.05ред * рдкреАрдХреНрдпреВ ( 1 ) ;
  35. HBW = hpfilter ( 'btw' , PQ ( 1 ) , PQ ( 2 ) , D0, 2 ) ;
  36. рдПрдЪ = 0.5 + 2 * рдПрдЪрдмреАрдбрдмреНрд▓реНрдпреВ;
  37. gbw = dftfilt ( рд▓рд╛рд▓, HBW ) ;
  38. gbw = gscale ( gbw ) ;
  39. ghf = dftfilt ( рд▓рд╛рд▓, рдПрдЪ ) ;
  40. gbf = gscale ( ghf ) ;
  41. img1 = рд╣рд┐рд╕реНрдЯреЗрдХ ( рд▓рд╛рд▓, 256 ) ;
  42. ghe = histeq ( ghf, 256 ) ;
  43. рдЪрд┐рддреНрд░рд╛ , imshow ( рд▓рд╛рд▓ ) ;
  44. рдЪрд┐рддреНрд░рд╛ , imshow ( рдШреА, [ ] ) ;
  45. рдЪрд┐рддреНрд░рд╛ , imshow ( img1, [ ] ) ;


**** рдХрд╛рдо рдХреЗ рдЙрджрд╛рд╣рд░рдг ****


















рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо

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


All Articles