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中的非零像素点不会被染色。
#include <iostream>
#include <cv.h>
#include <highgui.h>
using namespace cv;
using namespace std;
int main()
{
IplImage *img = cvLoadImage("C:\\1.jpg",0);
IplImage *img2 = cvLoadImage("C:\\2.jpg",0);
IplImage *temp = cvCreateImage(cvGetSize(img),8,1);
cvSmooth(img2,img2);
cvFloodFill(img2,cvPoint(310,204),cvScalar(255),cvScalar(0),cvScalar(0),0,8);//漫水填充法
cvNamedWindow("src");
cvNamedWindow("result");
cvShowImage("src",img);
cvShowImage("result",img2);
cvSaveImage("C:\\3.jpg",img2);
waitKey(5000);
cvDestroyAllWindows();
cvReleaseImage(&img);
cvReleaseImage(&img2);
cvReleaseImage(&temp);
}