Canny-operatøren ( Canny edge detector , Canny- algoritme ) i disciplinen computervision er kantdetektionsoperatøren af et billede. Den blev udviklet i 1986 af John F. Canny og bruger en flertrinsalgoritme til at detektere en lang række kanter i billeder.
Canny undersøgte det matematiske problem med at opnå et filter , der er optimalt med hensyn til udvælgelse, lokalisering og minimering af flere svar på en kant. Han viste, at det ønskede filter er summen af fire eksponentialer. Han viste også, at dette filter godt kan tilnærmes ved den første afledte af Gauss. Canny introducerede konceptet Non - Maximum Suppression , hvilket betyder, at kantpixel er de pixels, hvor det lokale maksimum af gradienten i gradientvektorens retning er nået .
Selvom hans arbejde blev udført i de tidlige dage af computersyn, er Canny kantdetektoren stadig en af de bedste detektorer i dag. Bortset fra i særlige tilfælde er det svært at finde en detektor, der yder væsentligt bedre end Canny-detektoren.
Cannys mål var at udvikle en optimal kantdetektionsalgoritme, der opfylder tre kriterier:
Ud fra disse kriterier blev den objektive funktion af omkostningerne ved fejl så bygget, ved at minimere, hvilken "optimal" lineær operator for foldning med billedet findes.
Kantdetektoralgoritmen er ikke begrænset til at beregne gradienten af det udjævnede billede. Kun de maksimale punkter i billedgradienten er tilbage i kantkonturen, og ikke de maksimale punkter, der ligger nær grænsen, fjernes. Her bruges også information om grænsens retning for at fjerne punkter nøjagtigt nær grænsen og for ikke at bryde selve grænsen nær gradientens lokale maksima. Svage grænser fjernes derefter ved hjælp af to tærskler. Grænsefragmentet behandles som en helhed. Hvis gradientværdien et sted på det sporede fragment overstiger den øvre tærskel, så forbliver dette fragment også den "tilladelige" grænse på de steder, hvor gradientværdien falder under denne tærskel, indtil den falder under den nedre tærskel. Hvis der ikke er et enkelt punkt på hele fragmentet med en værdi, der er større end den øvre tærskel, slettes det. Denne hysterese reducerer antallet af diskontinuiteter i udgangsgrænserne. Inkluderingen af støjreduktion i Canny-algoritmen øger på den ene side stabiliteten af resultaterne, og på den anden side øger beregningsomkostningerne og fører til forvrængning og endda tab af grænsedetaljer. Så for eksempel en sådan algoritme runder hjørnerne af objekter af og ødelægger grænserne ved samlingspunkterne.
Udglatning. Slør billede for at fjerne støj. Canny-operatoren bruger et filter, der kan tilnærmes godt til den første afledte af Gauss. = 1,4:
Leder efter gradienter. Kanter markeres, hvor billedets gradient får sin maksimale værdi. De kan have forskellige retninger, så Cannys algoritme bruger fire filtre til at registrere vandrette, lodrette og diagonale kanter i et sløret billede.
Gradientvektorens retningsvinkle er afrundet og kan have følgende værdier: 0, 45, 90, 135.
Undertrykkelse af nonmaxima. Kun lokale maksima er markeret som grænser.
Dobbelt tærskelfiltrering. Potentielle grænser er defineret af tærskler.
Spor område af tvetydighed. De resulterende grænser bestemmes ved at undertrykke alle kanter, der ikke er knyttet til de definerede (stærke) grænser.
Før du bruger detektoren, er det almindeligt at konvertere billedet til gråtoner for at reducere beregningsomkostningerne. Denne fase er typisk for mange billedbehandlingsmetoder.