opencv知识点23--漫水填充

opencv知识点23--漫水填充

首页休闲益智像素涂色填色世界更新时间:2024-05-11

1、漫水填充的定义

用一种特定的颜色取填充连通区域,通过设置可连通像素的上下限以及连通方式来大道不同的填充效果。漫水填充是填充算法中较通用的算法

2、漫水填充的基本思想

选择一个种子点,然后把临近区域所有相似点填充上同样的颜色,结果是填充某个连续区域,被涂色像素点是位于给定范围内或者在种子像素值范围内的点。

3、漫水填充算法的函数--floodfill()

第一个版本的floodFill:

int floodFill(InputOutputArray image,Point seedPoint seedPoint,Scalar newVal,Rect* rect = 0,Scalar loDiff = Scalar(),Scalar upDiff = Scalar(),int flags = 4)

第二个版本的floodFill:

int floodFill(InputOutputArray image,InputOutputArray mask,Point seedPoint,Scalar newVal,Rect*rect = 0,Scalar loDiff = Scalar(),Scalar upDiff=Scalar(),int flags = 4)

第一种是不带掩膜的,第二种是带掩膜的

mask的要求:单通道,8位,长宽都比输入图像大两个像素点的图像。

Scalar类型的bewVal是填充的颜色

Rect*类的rect是可选参数,用于设置重绘区域的最小边界矩形区域

loDiff和upDiff是用来确定该被填充的像素的取值范围,loDiff是偏离种子像素的负值,upDiff是偏离种子像素的正值

最后一个参数flag,包括三个8位

低八位控制连通性:默认取4,也可以取8,取4则表示填

充只考虑水平和垂直方向,8则还包括对角线

高八位:可以为0或者取

(1)FLOODFILL_FIXED_RANGE:考虑当前像素与种子之

间的差。

(2)FLOODFILL_MASK_ONLY:只会去填充MASK图像

中八位:指定填充掩码图像的值,若为0,则掩码就用1来

填充

常用例子:

flags = 8|FLOODFILL_MASK_ONLY | FLOODFIL_FIXED_RANFE|(38<<8)

该函数的使用例子

Rect ccomp;

floodFill(src,Point(50,300),Scalar(155,255,55),&ccomp,Scalar(20,20,20),Scalar(20,20,20));

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved