CVAPI(void) cvFloodFill(
CvArr* image,//输入图像
CvPoint seed_point,//输入种子点的坐标
CvScalar new_val,//输入像素点被染为什么颜色
CvScalar lo_diff CV_DEFAULT(cvScalarAll(0)),
CvScalar up_diff CV_DEFAULT(cvScalarAll(0)),
//输入染色范围。如果一个像素点的值不低于被染色相邻点减去lo_diff,且不高于其加上
//up_diff那么这个像素点将被染色。
CvConnectedComp* comp CV_DEFAULT(NULL),
//指向部件结构体的指针,该结构体的内容由函数用重绘区域的信息填充。
int flags CV_DEFAULT(4),
//低八位控制算法连通性,一般为4联通或8联通,高8位可以固定像素值范围
CvArr* mask CV_DEFAULT(NULL));
//掩码,若非空则必须是一个单通道,8位,宽和高都比源图像大两个像素的图像。mask中
//的非零像素点不会被染色。
<pre name="code" class="cpp">#include <iostream>
#include <cv.h>
#include <highgui.h>
using namespace cv;
using namespace std;
int main()
{
IplImage *img = cvLoadImage("C:\\Users\\asus\\Desktop\\DIP\\image\\people.jpg",0);
IplImage *img2 = cvLoadImage("C:\\Users\\asus\\Desktop\\DIP\\image\\people.jpg",0);
IplImage *temp = cvCreateImage(cvGetSize(img),8,1);
cvSmooth(img2,img2);
cvFloodFill(img2,cvPoint(325,244),cvScalar(255),cvScalar(2),cvScalar(2),0,8);//漫水填充法
cvNamedWindow("src");
cvNamedWindow("result");
cvShowImage("src",img);
cvShowImage("result",img2);
cvSaveImage("C:\\Users\\asus\\Desktop\\1.jpg",img2);
waitKey(5000);
cvDestroyAllWindows();
cvReleaseImage(&img);
cvReleaseImage(&img2);
cvReleaseImage(&temp);
}