图像形态学 - 漫水填充算法(cvFloodFill)

       漫水填充经常被用来标记或分离图像的一部分以便对其进行进一步处理或分析,也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或只处理掩码指定的像素点,操作的结果总是某个连续的区域。

cvCopyImage


cvFloodFill

void cvFloodFill( IplImage* src, CvPoint seedPoint,   //漫水法从点seedPoint开始实行算法
                             CvScalar newVal,        //像素点被染色的值CvScalar loDiff = cvScalarAll(0), //下标记–被染色的相邻点减去
                             loDiffCvScalar upDiff = cvScalarAll(0),      //上标记–被染色的相邻点加上
                             upDiffCvConnectedComp* comp = NULL, //如果comp不是NULL,那么该CvConnectedComp被设置为被填充区域的统计属性
                            int flags = 4,          /*低八位可以被设置为4或者8,这个参数控制着填充算法的连通性,4表示在4个方向考虑连通性(上下左右),

                                                            *8表示在8个方向考虑连通性(加上4个对角线方向),高八位可以设置CV_FLOODFILL_FIXED_RANGE,或者

                                                            *CV_FLOODFILL_MASK_ONLY (如果设置只考虑填充MASK),flags的中间比特(8-15位)的值可以设置填充掩码的值

                                                           *flags = 8 | CV_FLOODFILL_MASK_ONLY | CV_FLOODFILL_FIXED_RANGE | (43<<8)*/
                         CvArr* mask = NULL
                                                               /*mask参数与其他有mask参数的使用方法一致,不同的是可以是作为该函数的输出值(指定应经被填充的区域)*如果mask非空,

                                                              那么它必须是一个单通道,8位,像素宽度和高度均比源图像大两个像素的图像*(这是为使内部运算简单快速),

                                                             cvFloodFill()不会覆盖mask中非0的区域*/

                         );


 


 

#include <highgui.h>
#include <cv.h>

int main(int argc, char** argv)
{
	cvNamedWindow( "image" );
	IplImage* src = cvLoadImage( argv[1] );

	IplImage* img = cvCreateImage( cvGetSize(src), 8, 3 );
	cvCopyImage( src, img );

	cvFloodFill(
		img,
		cvPoint( 54, 82 ),
		CV_RGB( 255, 255, 255 ),
		cvScalar( 20, 30, 40, 0 ),
		cvScalar( 20, 30, 40, 0 ),
		NULL,
		4,
		NULL
		);

	cvShowImage( "image", img );
	cvWaitKey(0);
	cvReleaseImage( &src );
	cvReleaseImage( &img );
	cvDestroyAllWindows();

	return 0;
}



转自:http://blog.csdn.net/hitwengqi/article/details/6857443

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值