*   >> Lese Utdanning Artikler >> science >> programming

Tilkoblede komponenter ved hjelp Opencv

Innledning

I computer vision og bildebehandling bruker vi mange ideer om andre områder av informatikk for å løse våre utfordringer. Problemet jeg skal snakke om er følgende: gitt en monokromatisk bilde jeg ønsker å få tak i de grupper av forgrunnen piksler som er isolert av en hvit region. Den gis til disse gruppene navn er koblet komponent

.

I en tilkoblet komponent, gitt et punkt inni den, kan jeg gå til noe annet punkt inni den bruker kun punkter som er inne også. Dette bildet illustrerer hva jeg mener. Hver farge er en tilkoblet komponent.


Ved hjelp OpenCV

OpenCV er en berømt computer vision bibliotek som har tonnevis av kule funksjoner og er mye brukt. Den håndterer åpne ulike typer bilde- og videofiler, og har koden for å finne de tilkoblede komponentene i et bilde (inkludert hullene i komponentene).

Det første du må vite er hvordan man skal åpne et bilde e hvordan å kompilere din første program. Compilation instruksjoner for Windows og for Linux. Dette programmet åpner et bilde og lagrer en kopi som result.png. Vi vil utvide dette eksempel for å gi den ovennevnte resultat.

Hvis du ønsker en mer grundig forklaring du kan se på denne opplæringen.

Finne de tilkoblede komponentene

For å finne de tilkoblede komponentene vi skal bruke cvFindContours funksjon fra OpenCV. Med de riktige parametrene denne funksjonen returnerer en liste med konturene av hver tilkoblede komponentene og for hver komponent konturen av hullene inni den.

CvMemStorage e CvContour I OpenCV, når vi bruker noen form for dynamisk struktur vi trenger å bruke en CvMemStorage å holde minnet om det.

Siden cvFindContours returnerer en liste, må vi skape en CvMemStorage og pass til denne funksjonen. Koden som burde legges følger (en fullstendig versjon av programmet vil være avaiable i slutten av artikkelen

Erklærer variablene. CvMemStorage * mem; CvSeq * konturer, * ptr;
Og legge inn denne koden på /* ADD KODE HER * /line:

cvThreshold (img, img, 150, 255, CV_THRESH_BINARY), mem = cvCreateMemStorage

(0); cvFindContours (img, mem , og konturer, sizeof (CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, cvPoint (0,0));.


Para CV_RETR_CCOMP forteller funksjonen at konturene av de tilkoblede komponentene bør trekkes ut CV_CHAIN_APPROX_SIMPLE tilnærmet konturen den en polygon og hver kontur er representert ved en liste over vertexes av at polygon Den oppdaterte kode er

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.