Sobel operatör
Funktionsdetektering |
---|
Kantdetektering |
Hörndetektering |
Blobdetektering |
Ridge detektering |
Hough transform |
Strukturtensor |
Affin invariant funktionsdetektion |
Funktionsbeskrivning |
Skala utrymme |
Sobel -operatören , ibland kallad Sobel-Feldman-operatören eller Sobel-filtret , används i bildbehandling och datorseende , särskilt inom kantdetekteringsalgoritmer där den skapar en bild som framhäver kanter. Den är uppkallad efter Irwin Sobel och Gary Feldman , kollegor vid Stanford Artificial Intelligence Laboratory (SAIL). Sobel och Feldman presenterade idén om en " Isotropic 3 × 3 Image Gradient Operator" vid ett föredrag på SAIL 1968. Tekniskt sett är det en diskret differentieringsoperator som beräknar en approximation av gradienten för bildintensitetsfunktionen. Vid varje punkt i bilden är resultatet av Sobel-Feldman-operatorn antingen motsvarande gradientvektor eller normen för denna vektor. Sobel–Feldman-operatorn bygger på att konvolvera bilden med ett litet, separerbart och heltalsvärde filter i horisontella och vertikala riktningar och är därför relativt billig i termer av beräkningar. Å andra sidan är den gradientapproximation som den producerar relativt grov, särskilt för högfrekventa variationer i bilden.
Formulering
Operatören använder två 3×3-kärnor som viks ihop med originalbilden för att beräkna approximationer av derivatorna – en för horisontella förändringar och en för vertikala. Om vi definierar A som källbilden, och G x och G y är två bilder som vid varje punkt innehåller de horisontella respektive vertikala derivata approximationerna, är beräkningarna följande:
där här betecknar den 2-dimensionella signalbearbetningsoperationen .
Eftersom Sobel-kärnorna kan brytas ner som produkter av en medelvärdes- och en differentieringskärna, beräknar de gradienten med utjämning. Till exempel skrivas som
X - koordinaten definieras här som ökande i "höger"-riktningen, och y -koordinaten definieras som ökande i "nedåt"-riktningen. Vid varje punkt i bilden kan de resulterande gradientuppskattningarna kombineras för att ge gradientens storlek, med hjälp av:
Med hjälp av denna information kan vi också beräkna gradientens riktning:
där till exempel är 0 för en vertikal kant som är ljusare på höger sida (för se atan2 ).
Mer formellt
Eftersom intensitetsfunktionen för en digital bild endast är känd vid diskreta punkter, kan derivator av denna funktion inte definieras om vi inte antar att det finns en underliggande differentierbar intensitetsfunktion som har samplas vid bildpunkterna. Med några ytterligare antaganden kan derivatan av den kontinuerliga intensitetsfunktionen beräknas som en funktion på den samplade intensitetsfunktionen, dvs den digitala bilden. Det visar sig att derivatorna vid någon speciell punkt är funktioner av intensitetsvärdena vid praktiskt taget alla bildpunkter. Emellertid kan approximationer av dessa derivata funktioner definieras med mindre eller större grader av noggrannhet.
Sobel-Feldman-operatören representerar en ganska inexakt approximation av bildgradienten, men är fortfarande av tillräcklig kvalitet för att vara praktiskt användbar i många applikationer. Närmare bestämt använder den intensitetsvärden endast i ett 3×3-område runt varje bildpunkt för att approximera motsvarande bildgradient, och den använder endast heltalsvärden för de koefficienter som viktar bildintensiteterna för att producera gradientapproximationen.
Förlängning till andra dimensioner
Sobel–Feldman-operatören består av två separerbara operationer:
- Utjämning vinkelrätt mot derivatans riktning med ett triangelfilter:
- Enkel central skillnad i derivatans riktning:
Sobel–Feldman filtrerar för bildderivator i olika dimensioner med :
ID:
2D:
2D:
3D:
3D:
4D:
Så som ett exempel 3D Sobel–Feldman kärnan i z -riktning:
Tekniska detaljer
Som en konsekvens av dess definition kan Sobel-operatören implementeras med enkla medel i både hårdvara och mjukvara: endast åtta bildpunkter runt en punkt behövs för att beräkna motsvarande resultat och endast heltalsaritmetik behövs för att beräkna gradientvektorapproximationen. Dessutom är de två diskreta filtren som beskrivs ovan båda separerbara:
och de två derivatorna G x och G y kan därför beräknas som
I vissa implementeringar kan denna separerbara beräkning vara fördelaktig eftersom den innebär färre aritmetiska beräkningar för varje bildpunkt.
Att tillämpa faltning K på pixelgrupp P kan representeras i pseudokod som:
- N(x,y) = Summan av { K(i,j).P(xi,yj)}, för i,j som går från -1 till 1.
N(x,y) representerar den nya matrisen som erhålls efter applicering av faltningen K till P , där P är pixelmatris.
Exempel
Resultatet av Sobel-Feldman-operatorn är en 2-dimensionell karta över gradienten vid varje punkt. Den kan bearbetas och ses som om den i sig själv är en bild, med områdena med hög gradient (de troliga kanterna) synliga som vita linjer. Följande bilder illustrerar detta genom att visa beräkningen av Sobel-Feldman-operatören på en enkel bild.
Bilderna nedan illustrerar förändringen i gradientens riktning på en gråskalecirkel. När tecknet för och är samma är gradientens vinkel positiv och negativ när den är olika. I exemplet nedan indikerar de röda och gula färgerna på kanten av cirkeln positiva vinklar, och de blå och cyanfärgerna indikerar negativa vinklar. De vertikala kanterna på cirkelns vänstra och högra sida har en vinkel på 0 eftersom det inte finns någon lokal förändring i . De horisontella kanterna på cirkelns övre och nedre sidor har vinklarna − π / 2 respektive π / 2 eftersom det inte finns någon lokal förändring i . Den negativa vinkeln för överkanten betyder att övergången är från ett ljust till mörkt område, och den positiva vinkeln för den nedre kanten betyder en övergång från ett mörkt till ljust område. Alla andra pixlar är markerade som svarta på grund av ingen lokal förändring i antingen eller och därför är vinkeln inte definierad. Eftersom vinkeln är en funktion av förhållandet mellan till kan pixlar med små förändringshastigheter fortfarande ha en stor vinkelsvar. Som ett resultat kan brus ha en stor vinkelrespons, vilket vanligtvis är oönskat. När du använder gradientvinkelinformation för bildbehandlingstillämpningar bör ansträngningar göras för att ta bort bildbrus för att minska detta falska svar.
Alternativa operatörer
Sobel-Feldman-operatören, samtidigt som den minskar artefakter som är förknippade med en ren central skillnadsoperator, uppvisar inte en bra rotationssymmetri (ca 1° fel). Scharr undersökte att optimera denna egenskap genom att producera kärnor optimerade för specifik given numerisk precision (heltal, flytande ...) och dimensionaliteter (1D, 2D, 3D). Optimerade 3D-filterkärnor upp till en storlek på 5 x 5 x 5 har presenterats där, men de mest använda, med ett fel på cirka 0,2° är:
Detta påverkar på liknande sätt:
Scharr-operatorer är resultatet av en optimering som minimerar viktat medelkvadratvinkelfel i Fourier-domänen . Denna optimering görs under förutsättning att resulterande filter är numeriskt konsekventa. Därför är de verkligen härledda kärnor snarare än att bara hålla symmetribegränsningar. Det optimala 8-bitars heltalsvärderade 3x3-filtret som härrör från Scharrs teori är
En liknande optimeringsstrategi och resulterande filter presenterades också av Farid och Simoncelli. De undersöker också högre ordningens derivatsystem. I motsats till Scharrs arbete tvingas dessa filter inte att vara numeriskt konsekventa.
Problemet med derivatfilterdesign har återupptagits av t.ex. Kroon.
Derivatfilter baserade på godtyckliga kubiska splines presenterades av Hast. Han visade hur första och andra ordningens derivator kan beräknas korrekt med kubiska eller trigonometriska splines genom en dubbelfiltreringsmetod som ger filter med längden 7.
En annan liknande operatör som ursprungligen genererades från Sobel-operatören är Kayyali-operatören, ett perfekt rotationssymmetribaserat faltningsfilter 3x3.
Orienteringsoptimala derivatkärnor minskar drastiskt systematiska uppskattningsfel vid optisk flödesuppskattning . Större scheman med ännu högre noggrannhet och optimerade filterfamiljer för utökad optisk flödesuppskattning har presenterats i efterföljande arbete av Scharr. Andra ordningens derivata filteruppsättningar har undersökts för transparent rörelseuppskattning . Det har observerats att ju större de resulterande kärnorna är, desto bättre approximerar de derivat-av-Gaussiska filter.
Exempel på jämförelser
Här används fyra olika gradientoperatorer för att uppskatta storleken på testbildens gradient.
MATLAB implementering
0 0 0
0 0 0
0
clc clear all stäng alla test_img = imread ( 'gantrycrane.png' ) ; gray_img = rgb2gray ( test_img ); sobel_img = sobel ( grå_img ); figur imshow(test_img) figur imshow ( grå_img ) figur imshow ( sobel_img ) function output_image = sobel ( A ) Gx = [ - 1 1 ; - 2 2 ; - 1 1 ] Gy = [ - 1 - 2 - 1 ; ; 1 2 1] rader = storlek ( A , 1 ) kolumner = storlek ( A , 2 ) mag = nollor ( storlek ( A )); A = dubbel ( A ); för i = 1 : rader - 2 för j = 1 : kolumner - 2 S1 = summa ( summa ( Gx .* A ( i : i + 2 , j : j + 2 ))); S2 = summa ( summa ( Gy .* A ( i : i + 2 , j : j + 2 ))); mag ( i + 1 , j + 1 ) = sqrt ( S1 .^ 2 + S2 .^ 2 ); slutet tröskelvärde = 70 % varierar för applikation [0–255] output_image = max ( mag , tröskel ) ; output_image ( output_image == rund ( tröskel )) = ; slutet
Ovanstående MATLAB- kod kommer att använda en bild som är förpackad med MATLAB själv ('gantrycrane.png') för att demonstrera Sobel-filtret. Det kommer att finnas utdata med originalbild, gråskaleversion av originalbild och utdata från Sobel-filtret.
Se även
- Digital bildbehandling
- Funktionsdetektering (datorseende)
- Särdragsextraktion
- Diskret Laplace-operatör
- Prewitt-operatör
- ^ Irwin Sobel, 2014, historia och definition av Sobel-operatören
- ^ Funktionsdetektorer – Sobel Edge Detector
- ^ K. Engel (2006). Volymgrafik i realtid . s. 112–114.
- ^ Scharr, Hanno, 2000, avhandling (på tyska), Optimala operatörer i digital bildbehandling .
- ^ B. Jähne, H. Scharr och S. Körkel. Principer för filterdesign. I Handbook of Computer Vision and Applications. Academic Press, 1999.
- ^ H. Farid och EP Simoncelli, Optimally Rotation-Equivariant Directional Derivative Kernels , Int'l Conf Computer Analysis of Images and Patterns, s. 207–214, september 1997.
- ^ H. Farid och EP Simoncelli, Differentiering av diskreta flerdimensionella signaler , IEEE Trans Image Processing, vol.13(4), s. 496–508, april 2004.
- ^ D. Kroon, 2009, Short Paper University Twente, numerisk optimering av kärn-baserade bildderivat .
- ^ A. Hast., "Enkel filterdesign för första och andra ordningens derivator genom ett dubbelfiltrerande tillvägagångssätt", Pattern Recognition Letters, Vol. 42, nr 1 juni, s. 65–71. 2014.
- ^ Dim, Jules R.; Takamura, Tamio (2013-12-11). "Alternativ tillvägagångssätt för Satellite Cloud Classification: Edge Gradient Application" . Framsteg inom meteorologi . 2013 : 1–8. doi : 10.1155/2013/584816 . ISSN 1687-9309 .
- ^ Scharr, Hanno (2007). "Optimala filter för utökat optiskt flöde". Komplex rörelse . Föreläsningsanteckningar i datavetenskap. Vol. 3417. Berlin, Heidelberg: Springer Berlin Heidelberg. s. 14–29. doi : 10.1007/978-3-540-69866-1_2 . ISBN 978-3-540-69864-7 .
- ^ Scharr, Hanno, OPTIMALA ANDRA ORDENS DERIVATFILTERFAMILJER FÖR TRANSPARENT RÖRELSESKATNING 15:e europeiska signalbehandlingskonferensen (EUSIPCO 2007), Poznan, Polen, 3–7 september 2007.
externa länkar
- Sobel kantdetektering i OpenCV
- Sobel Filter , i SciPy Python Library
- Bibliografiska citat för Irwin Sobel i DBLP
- Exempel på Sobel-kantdetektering med datoralgoritmer