[C#] vlak vullen met edge detect

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 10-09 14:45
Ik wil een C# applicatie maken waarin je vlakken van willekeurige afmetingen kan vullen met een kleurtje, een soort 'tekenprogramma' voor kleurplaten.

Nu komen deze vlakken uit afbeeldingsbestanden, dus ook echt een kleurplaat, hoe kan ik hier het beste mee omgaan?

Enige kleurvariatie meenemen is wel prettig, anders krijg je van die mooie effectjes langs de randen waar voornamelijk JPEG afbeeldingen berucht om zijn.

Ik heb een beetje rondgekeken, wel e.e.a. gezien over 'edge detect' code voor C#, maar de meeste code geeft er alleen een leuk effectje aan (wat ik helemaal niet zoek) en doet geen echte detect.

Het mooiste zou zijn dat zoiets te detecteren is en om te zetten naar een path, waar gewoon een fill op gedaan kan worden met de Graphics classes die in .NET zelf zitten, maar daar heb ik nog niks voor gevonden.

Wie heeft hier ervaring mee en/of hoe zou je dit aanpakken?

Een alternatief is natuurlijk om alle 'kleurplaten' als binaire bestanden te defineren met paths er in, dit is alleen een hoop meer werk om er nieuwe toe te voegen.

Acties:
  • 0 Henk 'm!

  • liquid_ice
  • Registratie: Februari 2001
  • Laatst online: 08-09 14:43
Ik begrijp niet helemaal goed wat je nu eigenlijk wilt...

Om het jezelf gemakkelijk te maken kan je eerst een beginnen met zwart-wit, dan grijswaarden en daarna RGB of CMYK.

edge detectie kan je doen dmv contrasten. Bepaal het verschil tussen 2 pixels langs elkaar (verticale edges) en/of pixels boven elkaar (horizontale edges). Je zou ook een verscherping kunnen inbouwen om de edges duidelijker te krijgen.

Als je een edge-punt gevonden "denkt" te hebben kan je over die edge wandelen om zo alle bij elkaar horende edge-punten om te zetten naar een edge / object.

een fill zou je kunnen maken als een olie-vlek. Vanaf het gekozen punt alle aangrenzende punten met (binnen je marge) dezelfde kleur ook te vullen met de nieuwe kleur. Bedenk dan wel of je wel/geen diagonalen wilt meenemen.

is zo iets qua antwoord wat dat je zocht?

[ Voor 4% gewijzigd door liquid_ice op 05-10-2011 13:40 ]

Klus page: http://klusthuis.blogspot.com


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
[google=c# flood fill]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 10-09 14:45
Hm, veel van die linkjes had ik al gehad RobIII maar nog een keer overheen kijken, er zit wel nuttige informatie tussen, het lijkt alleen een pokkewerk te zijn.

@liquid_ice: heel simpel gezegt wil ik gewoon een programma maken om kleurplaten mee in te kleuren, zoiets bijvoorbeeld:

Afbeeldingslocatie: http://www.kikkersite.nl/pics/kleurplaat5.gif

:P

Acties:
  • 0 Henk 'm!

  • liquid_ice
  • Registratie: Februari 2001
  • Laatst online: 08-09 14:43
Noxious schreef op woensdag 05 oktober 2011 @ 14:26:
simpel gezegt wil ik gewoon een programma maken om kleurplaten mee in te kleuren
Dan zou ik me niet te druk maken om echte edge detectie, maar inderdaad kijken naar "flood fill"

op: Wikipedia: Flood fill
staat uitleg en leuke gifjes die de werking laten zien van verschillende implementiaties

Klus page: http://klusthuis.blogspot.com


Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 10-09 14:45
liquid_ice schreef op woensdag 05 oktober 2011 @ 16:32:
[...]


Dan zou ik me niet te druk maken om echte edge detectie, maar inderdaad kijken naar "flood fill"

op: Wikipedia: Flood fill
staat uitleg en leuke gifjes die de werking laten zien van verschillende implementiaties
Bedankt :) had 'm al gevonden maar dan weet ik iig in welke richting ik moet zoeken.
Pagina: 1