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

Filtrering Connected Components

över konturer. I slutändan bara de accepterade konturerna förblir och vi tillbaka den. Du kan läsa mer om funktions pekare här. Prototypen av kriterier funktion kommer att vara: int kriterier (CvSeq * kontur),

Kodning exempel: filtrering och utvinna de anslutna komponenterna Omdömen

Nu ska vi koda den funktion som kommer att göra jobbet . Jag kommer lägga upp funktionens koden nedan här, hela arbetskoden är tillgänglig i slutet av artikeln.


  CvSeq * extract_and_filter_CC (IplImage * img, int (* kriterier ) (CvSeq *)) {Omdömen  Omdömen  CvSeq * konturer, * ptr; CvMemStorage * mem = cvCreateMemStorage 

(0);

cvFindContours (img, mem, och konturer, sizeof (CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, cvPoint (0,0)); PTR = konturer; while (ptr = NULL!) {if (kriterier (ptr) == 0) {if (PTR == konturer) {konturer = ptr-> h_next; PTR = konturer; ptr-> h_prev = NULL; } Else {ptr-> h_prev-> h_next = ptr-> h_next; if (ptr-> h_next = NULL!) ptr-> h_next-> h_prev = ptr-> h_prev; PTR = ptr-> h_next; }} Else {PTR = ptr-> h_next,

}} tillbaka konturer, } Omdömen

Ett exempel på användning I det här exemplet jag ska visa en enkel funktion som filtrerar komponenter baserade på deras förhållande , bara få anslutna komponenter som är nästan kvadratisk.


  int square (CvSeq * kontur) {CvRect box = cvBoundingBox (kontur); if (box-> w /box-> hw /box-> h> 0,4) avkastning 1; återvända 0;} Omdömen 


Vi kallar extract_and_filter_CC funktionen så här: filtered_cc = extract_and_filter_CC (img, square),

Slutsats I den här artikeln beskriver en annan tillämpning av anslutna komponenter: att filtrera delar av bilden som inte passar in i en vissa kriterier. Den använder också funktions tips för att göra filtreringen som generisk som möjligt.

Denna teknik är mycket kraftfull och kan användas tillsammans med andra tekniker för att ta bort brus en bild eller för att extrahera speciellla delar av bilden. Den fullständiga fungerande kod med kommentarer finns här.

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