*   >> Læs Uddannelse artikler >> science >> programming

Connected Components Brug OpenCV

Introduktion

I computer vision og billedbehandling bruger vi mange ideer i andre områder af datalogi til at løse vores udfordringer. Det problem, jeg vil tale om, er følgende: givet et monokromatisk billede, jeg ønsker at få de grupper af forgrunden pixel, er isoleret af en hvid region. Navnet givet til disse grupper er tilsluttet komponent

.

I en tilsluttet komponent, givet et punkt inde i det, kan jeg gå til ethvert andet punkt inde i det ved hjælp af kun punkter, som er inde for. Dette billede illustrerer, hvad jeg mener.

Hver farve er en tilsluttet komponent.

Brug OpenCV

OpenCV er en berømt computer vision bibliotek, der har tonsvis af smarte funktioner og er meget udbredt. Den håndterer åbner forskellige former for billed- og videofiler og har koden til at finde de tilsluttede komponenter i et billede (herunder huller i komponenterne).

Den første ting at vide, er, hvordan man åbner et billede e hvordan til at oversætte din første program. Compilation instruktioner til Windows og til Linux. Dette program åbner et billede og gemmer en kopi som result.png.

Vi vil udvide dette eksempel til opnåelse af den ovennævnte resultat. Hvis du ønsker en mere dybdegående forklaring, du kan se på denne tutorial.

At finde de tilsluttede komponenter

For at finde de tilsluttede komponenter vil vi bruge cvFindContours funktion fra OpenCV. Med de rigtige parametre funktionen returnerer en liste med konturerne af hver tilsluttede komponenter og for hver komponent konturen af ​​hullerne inde i det.


CvMemStorage e CvContour I OpenCV, når vi bruger nogen form for dynamisk struktur, vi har brug for at bruge en CvMemStorage til at holde mindet om det. Da cvFindContours returnerer en liste, må vi skabe et CvMemStorage og videregive til denne funktion. Den kode, der skal tilføjes følger (en komplet version af programmet vil være tilgængelig i slutningen af ​​artiklen

Erklær variablerne:.

CvMemStorage * mem, CvSeq * konturer, * ptr;
Og tilføje denne kode på /* ADD KODE HER * /linje:

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

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


Parameteren CV_RETR_CCOMP fortæller den funktion, konturerne af de tilsluttede komponenter skal udvindes CV_CHAIN_APPROX_SIMPLE tilnærmer konturen den en polygon og hver kontur er re

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.