Gå til innhold

Oppdage/Gjenkjenne object i ett bitmap


Anbefalte innlegg

Hei, hvordan starter jeg for og gjenkjenne ett object i ett bilde?

 

la oss si enkelt, , hvordan gjenskjenner jeg en svart boks(hvit inni) på en hvit bakgrunn, uansett størrelse på boksen?

 

 

 

Alle tips tas imot;)

 

 

[EDIT]

Når jeg tenker meg litt om, blir dette utroligt lett, bare scann gjennom alle pikslene til du finner den første svarte pixelen(der begynner boksen), og så fortsette til den siste(og da har du hele boksen).

 

Hvordan mp jeg gå fram for og finne _2_ svarte bokser?

post-58261-1223928366_thumb.jpg

Endret av Richard87
Lenke til kommentar
Videoannonse
Annonse

Hmmm hvis du skal gjøre det robust, kan en vel prøve å representere bildet med vektorgrafikk, dette er dog temmelig vanskelig, og enda verre for den å forstå at du leter etter to svarte bokser, og ikke bare en merkelig form.

 

Men dersom du bare skal kikke etter bokser, så lønner det seg å skrive en mer spesifikk funksjon. Det du vet er at en boks starter med to linjer som ender i samme hjørne. Det du også kan dedusere fra dette, er at det betyr at denne linjen er omringet av hvite pixler.

Det jeg ville gjort, er å begynne med å finne et hjørne (altså en svart pixel med en hvit over, og en til venstre) deretter er det bare å fortsette ned til du støter på en ny hvit pixel, som betyr at du har funnet det nederste hjørnet.

 

Lag en enkel funksjon som først leter etter venstre hjørne

 

Private Function FindRectangleStart(src As Bitmap) As Point

 

Deretter lager du en funksjon som bare tracer en linje

 

Private Function TraceLine(Point start, Point search_direction) As Point

 

Hvor search_direction er hvilken retning den skal lete. for eksempel New Point(1,0) som leter i vertikal retning fra venstre mot høyere.

Du trenger bare lete to ganger, fordi det eneste du er ute etter er høyden og bredden, så det er poengløst å gå rundt hele boksen.

Endret av GeirGrusom
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...