Flood Fill using OpenCV
To use the flood fill, first a seed point is selected, then all neighbouring pixels of a similar colour are converted to a uniform colour. In this example the seed point is at 200, 200 (shown by a blue circle). The neighbouring pixels are then flood filled with a red colour.
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
int _tmain(int argc, _TCHAR* argv[])
{
// load the input image
IplImage* img = cvLoadImage("test.jpg");
// define the seed point
CvPoint seedPoint = cvPoint(200,200);
// flood fill with red
cvFloodFill(img, seedPoint, CV_RGB(255,0,0), CV_RGB(8,90,60), CV_RGB(10,100,70),NULL,4,NULL);
// draw a blue circle at the seed point
cvCircle(img, seedPoint, 3, CV_RGB(0,0,255), 3, 8);
// show the output
cvNamedWindow("Output", CV_WINDOW_AUTOSIZE);
cvShowImage("Output", img);
// wait for user
cvWaitKey(0);
// save image
cvSaveImage("output.jpg",img);
// garbage collection
cvReleaseImage(&img);
cvDestroyWindow("Output");
return 0;
}









