C# randdetectie (1 / 7 stap)

Stap 1: De Filters klasse


 public class FilterMatrix { public static double[,] Laplacian3x3 { get { return new double[,] { { -1, -1, -1, }, { -1, 8, -1, }, { -1, -1, -1, }, }; } } public static double[,] Laplacian5x5 { get { return new double[,] { { -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, }, { -1, -1, 24, -1, -1, }, { -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1 }, }; } } public static double[,] LaplacianOfGaussian { get { return new double[,] { { 0, 0, -1, 0, 0 }, { 0, -1, -2, -1, 0 }, { -1, -2, 16, -2, -1 }, { 0, -1, -2, -1, 0 }, { 0, 0, -1, 0, 0 }, }; } } public static double[,] Gaussian3x3 { get { return new double[,] { { 1, 2, 1, }, { 2, 4, 2, }, { 1, 2, 1, }, }; } } public static double[,] Gaussian5x5Type1 { get { return new double[,] { { 2, 04, 05, 04, 2 }, { 4, 09, 12, 09, 4 }, { 5, 12, 15, 12, 5 }, { 4, 09, 12, 09, 4 }, { 2, 04, 05, 04, 2 }, }; } } public static double[,] Gaussian5x5Type2 { get { return new double[,] { { 1, 4, 6, 4, 1 }, { 4, 16, 24, 16, 4 }, { 6, 24, 36, 24, 6 }, { 4, 16, 24, 16, 4 }, { 1, 4, 6, 4, 1 }, }; } } public static double[,] Sobel3x3Horizontal { get { return new double[,] { { -1, 0, 1, }, { -2, 0, 2, }, { -1, 0, 1, }, }; } } public static double[,] Sobel3x3Vertical { get { return new double[,] { { 1, 2, 1, }, { 0, 0, 0, }, { -1, -2, -1, }, }; } } public static double[,] Prewitt3x3Horizontal { get { return new double[,] { { -1, 0, 1, }, { -1, 0, 1, }, { -1, 0, 1, }, }; } } public static double[,] Prewitt3x3Vertical { get { return new double[,] { { 1, 1, 1, }, { 0, 0, 0, }, { -1, -1, -1, }, }; } } public static double[,] Kirsch3x3Horizontal { get { return new double[,] { { 5, 5, 5, }, { -3, 0, -3, }, { -3, -3, -3, }, }; } } public static double[,] Kirsch3x3Vertical { get { return new double[,] { { 5, -3, -3, }, { 5, 0, -3, }, { 5, -3, -3, }, }; } } } 

Met behulp van de filters klasse

 public void filter(string xfilter, string yfilter) { double[,] xFilterMatrix; double[,] yFilterMatrix; switch (xfilter) { case "Laplacian3x3": xFilterMatrix = FilterMatrix.Laplacian3x3; break; case "Laplacian5x5": xFilterMatrix = FilterMatrix.Laplacian5x5; break; case "LaplacianOfGaussian": xFilterMatrix = FilterMatrix.LaplacianOfGaussian; break; case "Gaussian3x3": xFilterMatrix = FilterMatrix.Gaussian3x3; break; case "Gaussian5x5Type1": xFilterMatrix = FilterMatrix.Gaussian5x5Type1; break; case "Gaussian5x5Type2": xFilterMatrix = FilterMatrix.Gaussian5x5Type2; break; case "Sobel3x3Horizontal": xFilterMatrix = FilterMatrix.Sobel3x3Horizontal; break; case "Sobel3x3Vertical": xFilterMatrix = FilterMatrix.Sobel3x3Vertical; break; case "Prewitt3x3Horizontal": xFilterMatrix = FilterMatrix.Prewitt3x3Horizontal; break; case "Prewitt3x3Vertical": xFilterMatrix = FilterMatrix.Prewitt3x3Vertical; break; case "Kirsch3x3Horizontal": xFilterMatrix = FilterMatrix.Kirsch3x3Horizontal; break; case "Kirsch3x3Vertical": xFilterMatrix = FilterMatrix.Kirsch3x3Vertical; break; default: xFilterMatrix = FilterMatrix.Laplacian3x3; break; } switch (yfilter) { case "Laplacian3x3": yFilterMatrix = FilterMatrix.Laplacian3x3; break; case "Laplacian5x5": yFilterMatrix = FilterMatrix.Laplacian5x5; break; case "LaplacianOfGaussian": yFilterMatrix = FilterMatrix.LaplacianOfGaussian; break; case "Gaussian3x3": yFilterMatrix = FilterMatrix.Gaussian3x3; break; case "Gaussian5x5Type1": yFilterMatrix = FilterMatrix.Gaussian5x5Type1; break; case "Gaussian5x5Type2": yFilterMatrix = FilterMatrix.Gaussian5x5Type2; break; case "Sobel3x3Horizontal": yFilterMatrix = FilterMatrix.Sobel3x3Horizontal; break; case "Sobel3x3Vertical": yFilterMatrix = FilterMatrix.Sobel3x3Vertical; break; case "Prewitt3x3Horizontal": yFilterMatrix = FilterMatrix.Prewitt3x3Horizontal; break; case "Prewitt3x3Vertical": yFilterMatrix = FilterMatrix.Prewitt3x3Vertical; break; case "Kirsch3x3Horizontal": yFilterMatrix = FilterMatrix.Kirsch3x3Horizontal; break; case "Kirsch3x3Vertical": yFilterMatrix = FilterMatrix.Kirsch3x3Vertical; break; default: yFilterMatrix = FilterMatrix.Laplacian3x3; break; } 

Gerelateerde Artikelen

Randdetectie met behulp van opencv en python

Randdetectie met behulp van opencv en python

gemakkelijk 15 lijn slepen en neerzetten rand detectiecode voor python ising opencv bibliotheekStap 1: Setup-bibliotheekDownload opencv zijn gratis en open source. Het is een van de beste computer visie bibliotheken beschikbaar. Im ' using opencv 2.S
GotMesh: De meest goedkope en simplistische 3D-scanner.

GotMesh: De meest goedkope en simplistische 3D-scanner.

heeft u gaas? is de meest goedkope en simplistische opensource 3D-scanner.Als je dit instructable, please vote voor het in de 3D printen wedstrijd 2016 .heeft u gaas? kunnen eigenaars van 3D printers gemakkelijk opnieuw gedetailleerde moeilijk te mod
Gemakkelijk Star Wars sneeuwvlokken en Mandala Print en kleur - met behulp van GIMP's

Gemakkelijk Star Wars sneeuwvlokken en Mandala Print en kleur - met behulp van GIMP's

U weet dat volwassen kleurboeken zijn nu echt groot. U vindt bijna 4000 boeken van mooie lege mandalas klaar voor uw meditatieve kleuren op Amazon, en u betaalt alleen over $5-$10 per stuk voor hen.... of niet.Wat als ik je vertelde dat je mooie snee
Draadloze Phone Remote-Controlled LED Strips: RasPi w / Fadecandy stuurprogramma w / WS2811/WS2812 adresseerbare LED Strips w / TouchOSC Smartphone App w / Iphone of Droid

Draadloze Phone Remote-Controlled LED Strips: RasPi w / Fadecandy stuurprogramma w / WS2811/WS2812 adresseerbare LED Strips w / TouchOSC Smartphone App w / Iphone of Droid

Hier gaat een steeds meer uitgebreide ontwerpdocumentatie overzicht van mijn nieuwste project. Hieronder is een video die ik heb geupload tonen bepaalde functionaliteit:Het oorspronkelijke idee progressie ging ongeveer als volgt:Adresseerbaar LED str
Tekening Robot

Tekening Robot

Please vote voor tekening Robot op deze link.Thanx voorafVaststelling van mijn tekening onvermogen met mijn Robotica vaardigheden en mij resultaten waren niet zo slecht. Nu ik kan tenminste mijn zelf van vernedering opslaan in mijn tekening klasse.Di
OiO - een bureaulamp met een ziel

OiO - een bureaulamp met een ziel

Zijn naam is "oiO", hij is een bureau lamp robot, maar hij denkt dat hij een ziel heeft. Eerlijk gezegd, ik kan niet ontkennen dat...Het idee om te bouwen van oiO, kwam uit mijn respect aan eenvoudige object dat lag rond, die spelen een grote, e
Een 2D-afbeelding omzetten in een 3D-object met behulp van OpenSCAD (en alleen vrije software)

Een 2D-afbeelding omzetten in een 3D-object met behulp van OpenSCAD (en alleen vrije software)

Ik heb onlangs geraakt heel geobsedeerd met 3D-ontwerp en afdrukken, daar heb ik weinig ervaring die heb ik uitgebreid op OpenSCAD zijn vertrouwen, maakt het ontwerpen van 3D-objecten gewoon te makkelijk niet te proberen, als je wilt om 3D-modellen v
Photoshop 101: Wat u moet weten!

Photoshop 101: Wat u moet weten!

Sinds de dageraad van tijd, man geweest zowel gefascineerd en verward door technologie. Één dergelijke onbegrepen technologisch wonder in de wereld van vandaag staat bekend als de "Photoshop". In dit Instructable, zal ik proberen om je te leren
Adaptive Mapping en navigatie met iRobot Create

Adaptive Mapping en navigatie met iRobot Create

deze tutorial zal laten zien hoe te doen mapping en navigatie met de iRobot Create voor onder $30! En beter nog, zijn ontworpen om te worden een gemakkelijk add-on voor uw reeds bestaande robot (butler robot, iemand?).Waarom is mapping nuttig? Heb je
Een telefoon gecontroleerd rover (Intel Edison + Blynk + Arduino)

Een telefoon gecontroleerd rover (Intel Edison + Blynk + Arduino)

achtergrondverhaal: (als u te lui om Lees overslaan)Het was mei (jaar 2015). Een student in zijn vorm 4 (10e klas?) kwam net thuis van school en hij aangedreven op zijn computer, als een dagelijkse routine, om te controleren op berichten op de social
Uw 3D-Printer Draw dingen maken

Uw 3D-Printer Draw dingen maken

Hey, mijn naam is Luke Rodley en ik ben 13 jaar oud.In dit Instructable, zal ik u tonen hoe de 3D printer trekken vrijwel elke afbeelding die u het wilt gewoon door het downloaden van sommige gratis, makkelijk te gebruiken software maken. Zodra uw 3D
Snelle Start Test Demo: Zybo (Xilinx Zynq 7000) beeld filter Demo + GoPro

Snelle Start Test Demo: Zybo (Xilinx Zynq 7000) beeld filter Demo + GoPro

Beeldverwerking is een goede manier om te laten zien van de co verwerking omgeving van Xilinx Zynq SOC (systeem op Spaander). Deze demo toont de toepassing van verschillende beeldfilters op een streaming high-definition video-stream.De stream is inpu
Hardware Hacking 101: Silencing de SpotBot

Hardware Hacking 101: Silencing de SpotBot

de zoektocht is eenvoudig. Controleer de SpotBot opgesloten.Ik wilde vastleggen wat moest worden van een simpele hardware hack. Ik uiteindelijk een microcontroller gebruikt om dit te doen, maar het kan ook gebeuren door een draad Knipprogramma. Laat
Laser snijden multi stuk kunstwerk

Laser snijden multi stuk kunstwerk

eerste Instructable tijd, dus ik dacht ik zou beginnen met klasse dat - door herscheppen van kunstwerken gevonden bij een familie-favoriet tuin en huis Toon.  We vonden een groot multi stuk fern afdrukken dat mijn kind zus viel in liefde met; het was