膨胀
膨胀操作与腐蚀操作相反,膨胀操作可以让图像沿着自己的边界向内扩张。同样是通过核来计算,当核在图像的边缘移动时,核会将图像边缘填补新的像素。
dilate
OpenCV将膨胀操作封装成dilate()方法,该方法的语法如下:
dst = cv2.dilate(src, kernel, anchor, iterations, borderType,
borderValue)
参数说明:
src:原始图像。
kernel:膨胀使用的核。
anchor:可选参数,核的锚点位置。
iterations:可选参数,腐蚀操作的迭代次数,默认值为1。
borderType:可选参数,边界样式,建议默认。
borderValue:可选参数,边界值,建议默认。
返回值说明:
dst:经过膨胀之后的图像。
效果
左边是原图,右边是经过膨胀操作的图
代码
import cv2
import numpy as np
# 定义图像路径
image_path = "sunset.jpg"
# 读取图像
img = cv2.imread(image_path)
# 检查图像是否成功读取
if img is None:
print(f"Error: Unable to load image at {image_path}")
exit()
# 创建9x9的结构元素作为膨胀操作的核
kernel = np.ones((9, 9), np.uint8)
# 显示原图
cv2.imshow("Original Image", img)
# 膨胀操作
dilated_img = cv2.dilate(img, kernel)
# 显示膨胀后的图像
cv2.imshow("Dilated Image", dilated_img)
# 等待按键,0表示无限等待
cv2.waitKey(0)
# 销毁所有OpenCV窗口
cv2.destroyAllWindows()