dilate
函数功能
dilate函数用于对图像进行膨胀操作,在图像处理和计算机视觉中广泛应用于特征增强和形状分析。膨胀是形态学操作的一种,它可以增强图像中的高亮区域,通常用于去除小的噪声、填充物体的孔洞或连接相邻的物体。膨胀操作通过使用结构元素(卷积核)来扩展图像中亮区域的边界。
函数接口
1 | cv2.dilate(src, kernel, anchor=None, iterations=1, borderType=cv2.BORDER_CONSTANT, borderValue=None)  | 
参数
参数名  | 
描述  | 
取值范围  | 
输入/输出  | 
|---|---|---|---|
src  | 
输入图像(通常是二值图像或灰度图像)。  | 
非空  | 
输入  | 
kernel  | 
结构元素,用于膨胀操作,通常为一个矩阵。  | 
非空  | 
输入  | 
anchor  | 
锚点位置,默认为None,表示结构元素的中心。  | 
tuple类型,格式为 (x, y) x:水平偏移量,范围 [0, kernel_width-1] y:垂直偏移量,范围 [0, kernel_height-1] kernel_width和kernel_height由kernel参数决定  | 
输入  | 
iterations  | 
膨胀操作的次数,默认为1。增加此值将进一步扩展图像。  | 
非负整数(通常为1或更高)  | 
输入  | 
borderType  | 
边界模式,默认为cv2.BORDER_CONSTANT。可以选择不同的边界处理方式,KPCV只支持 BORDER_CONSTANT处理方式  | 
取值为cv2.BORDER_* 常量,如cv2.BORDER_CONSTANT、cv2.BORDER_REPLICATE、cv2.BORDER_REFLECT等  | 
输入  | 
borderValue  | 
边界填充的常数值,通常为0,但可以指定为其他值,只有在borderType为BORDER_CONSTANT时有效。  | 
可以是任何float或int数字,默认是0  | 
输入  | 
返回值
- 成功:返回KP_CV_SUCCESS;。
 - 失败:返回错误码。
 
错误码
错误码  | 
描述  | 
|---|---|
INVALID_PARAM_MSG  | 
参数“src”存在空指针。  | 
NOT_SUPPORT_MSG  | 
src不是3通道的uint8类型图像,输入的图像错误或不是“borderType”支持的模式或“kernel”输入错误。  | 
示例
1 2 3 4 5 6 7 8 9 10 11 12 13  | import numpy as np import cv2 # 创建一个5x5的简单图像 src = np.array([[0, 0, 0, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 0, 0, 0]], dtype=np.uint8) #膨胀操作的核 kernel = np.ones((3, 3), np.uint8) dst = cv2.dilate(src, kernel, iterations=1) print(dst)  | 
运行结果:
1 2 3 4 5  | [[1 1 1 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1 1 1]]  |