*   >> läser Utbildning artiklar >> science >> programming

Connected Components Använda Opencv

Introduktion Omdömen

I datorseende och bildbehandling använder vi många idéer i andra områden av datavetenskap för att lösa våra problem. Problemet jag ska tala om är följande: ges en monokromatisk bild jag vill få grupper av förgrundsbildpunkter som är isolerade av en vit region. Namnet på dessa grupper är ansluten komponent Omdömen.

I en ansluten komponent, med tanke på en punkt inuti den, kan jag gå till någon annan plats inuti med endast punkter som är inne också. Den här bilden visar vad jag menar. Varje färg är en ansluten komponent.

Omdömen

Använda OpenCV Omdömen

OpenCV är en berömd datorseende bibliotek som har massor av häftiga funktioner och används flitigt. Den hanterar öppna olika typer av bild- och videofiler och har koden för att hitta de anslutna komponenterna i en bild (inklusive hålen i komponenterna). Omdömen

Det första du bör veta är hur man öppnar en bild e hur att kompilera ditt första program. Sammanställning instruktionerna för Windows och för Linux. Detta program öppnar en bild och sparar en kopia som result.png. Vi kommer att expandera detta exempel för att ge ovanstående resultat.

Om du vill ha en mer ingående förklaring kan du titta på den här guiden. Omdömen

Att hitta de anslutna komponenterna Omdömen

För att hitta de anslutna komponenter som vi kommer att använda cvFindContours funktion från OpenCV. Med rätt parametrar här funktionen returnerar en lista med konturerna av varje anslutna komponenter och för varje komponent konturen av hålen i den. Omdömen

CvMemStorage e CvContour I OpenCV, när vi använder någon typ av dynamisk struktur vi behöver att använda en CvMemStorage att hålla minnet för det.

Eftersom cvFindContours returnerar en lista, måste vi skapa en CvMemStorage och övergå till denna funktion. Koden som bör läggas på följande sätt (en fullständig version av programmet kommer att vara tillgängliga i slutet av artikeln Omdömen

Deklarera variabler:. CvMemStorage * mem, CvSeq * konturer, * ptr;
Och lägga till denna kod på /* ADD KOD HÄR * /linje:

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

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


Parametern CV_RETR_CCOMP berättar funktion som konturerna av de anslutna komponenterna bör extraheras CV_CHAIN_APPROX_SIMPLE approximerar konturen a polygon och varje kontur representeras av listan

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.