Door Victor Powell
Een image kernel is een kleine matrix die wordt gebruikt om effecten toe te passen zoals die je in Photoshop of Gimp zou kunnen vinden, zoals vervagen, verscherpen, contouren of reliëf. Ze worden ook gebruikt bij machinaal leren voor “feature extraction”, een techniek om de belangrijkste gedeelten van een afbeelding te bepalen. In deze context wordt het proces meer algemeen “convolutie” genoemd (zie: convolutionele neurale netwerken.)
Om te zien hoe ze werken, laten we beginnen met het inspecteren van een zwart-wit afbeelding. De matrix links bevat getallen, tussen 0 en 255, die elk overeenkomen met de helderheid van één pixel in een afbeelding van een gezicht. Het grote, gekorrelde beeld is opgeblazen om het gemakkelijker te kunnen zien; het laatste beeld is het “echte” formaat.
Laten we de volgende 3×3 {{selectedKernel}} kernel toepassen op het beeld van een gezicht van boven.
Hieronder, voor elk 3×3 blok pixels in het beeld links, vermenigvuldigen we elke pixel met de overeenkomstige invoer van de kernel en nemen dan de som. Die som wordt een nieuwe pixel in de afbeelding rechts. Beweeg de muis over een pixel in een van beide afbeeldingen om te zien hoe de waarde wordt berekend.
Een subtiliteit van dit proces is wat te doen langs de randen van de afbeelding. Bijvoorbeeld, de linker bovenhoek van het input plaatje heeft maar drie buren. Een manier om dit op te lossen is door de randwaarden in de originele afbeelding met één uit te breiden, terwijl de nieuwe afbeelding even groot blijft. In deze demo hebben we deze waarden genegeerd door ze zwart te maken.
Hier is een speelplaats waar je verschillende kernel matrices kunt selecteren en zien hoe ze de originele afbeelding beïnvloeden of je eigen kernel bouwen. U kunt ook uw eigen afbeelding uploaden of live video gebruiken als uw browser dat ondersteunt.
De verscherpingskernel benadrukt de verschillen in aangrenzende pixelwaarden. Hierdoor ziet het beeld er levendiger uit.
De blur kernel de-emphasizes verschillen in aangrenzende pixelwaarden.
De emboss kernel (vergelijkbaar met de sobel kernel en soms hetzelfde bedoeld) geeft de illusie van diepte door het benadrukken van de verschillen van pixels in een bepaalde richting. In dit geval, in een richting langs een lijn van linksboven naar rechtsonder.
De inkleefkernel laat het beeld onveranderd. Hoe saai!
De aangepaste kernel is wat u ervan maakt.
Sobel kernels worden gebruikt om alleen de verschillen in aangrenzende pixelwaarden in een bepaalde richting te tonen.
Een contour kernel (ook wel een “rand” kernel genoemd) wordt gebruikt om grote verschillen in pixelwaarden te benadrukken. Een pixel naast buurpixels met bijna dezelfde intensiteit zal zwart verschijnen in de nieuwe afbeelding, terwijl een pixel naast buurpixels die sterk verschillen wit zal verschijnen.
Voor meer, kijk eens naar Gimp’s uitstekende documentatie over het gebruik van Beeld kernel’s. Je kunt ook je eigen aangepaste filters toepassen in Photoshop door te gaan naar Filter -> Overig -> Aangepast…