opencv实现图片的膨胀腐蚀

opencv实现图片的膨胀腐蚀

在OpenCV中,膨胀和腐蚀是两种基本的图像处理操作,通常用于二值图像中以提取特定的特征。它们是基于图像的形态学操作,使用一个称为结构元素或核的模板来改变图像的形状。

下面是如何使用OpenCV实现图片的膨胀和腐蚀的示例代码:

python 复制代码
import cv2
import numpy as np

# 读取一张已经二值化的图片
# 确保将 'path_to_your_binary_image.jpg' 替换为你的图片路径
image = cv2.imread('path_to_your_binary_image.jpg', cv2.IMREAD_GRAYSCALE)

# 检查图片是否成功读取
if image is None:
    print("图片读取失败")
else:
    # 定义结构元素(核),这里我们使用一个5x5的矩形核
    kernel = np.ones((5, 5), np.uint8)

    # 进行膨胀操作
    # cv2.dilate(src, kernel, dst, anchor, iterations, borderType, borderValue)
    # src: 输入图像, kernel: 结构元素, iterations: 膨胀次数
    dilated_image = cv2.dilate(image, kernel, iterations=1)

    # 进行腐蚀操作
    # cv2.erode(src, kernel, dst, anchor, iterations, borderType, borderValue)
    # src: 输入图像, kernel: 结构元素, iterations: 腐蚀次数
    eroded_image = cv2.erode(image, kernel, iterations=1)

    # 显示原图像、膨胀后的图像和腐蚀后的图像
    cv2.imshow('Original Image', image)
    cv2.imshow('Dilated Image', dilated_image)
    cv2.imshow('Eroded Image', eroded_image)

    # 等待用户按键,若用户按下'q'键,则退出
    if cv2.waitKey(0) & 0xFF == ord('q'):
        cv2.destroyAllWindows()

    # 保存膨胀和腐蚀后的图像
    cv2.imwrite('dilated_image.jpg', dilated_image)
    cv2.imwrite('eroded_image.jpg', eroded_image)

在这段代码中,我们首先读取了一张已经二值化的图像。然后我们定义了一个5x5的结构元素(核),这是一个常用的选择,实际上可以根据需要选择任何大小的核。

使用cv2.dilate函数进行膨胀操作,通过迭代次数参数来指定膨胀的次数。cv2.erode函数则用于进行腐蚀操作,同样通过迭代次数参数来指定腐蚀的次数。

膨胀后的图像将使图像中的白色区域(前景)扩张,而腐蚀后的图像将使图像中的白色区域缩小。这两个操作通常用于去除图像中的噪声或连接断开的部分。

处理后的图像将被显示,并可以通过按下'q'键来关闭图像窗口。最后,我们将膨胀和腐蚀后的图像保存到文件中。

相关推荐
小二·27 分钟前
Python Web 开发进阶实战 :AI 原生数字孪生 —— 在 Flask + Three.js 中构建物理世界实时仿真与优化平台
前端·人工智能·python
chinesegf1 小时前
文本嵌入模型的比较(一)
人工智能·算法·机器学习
珠海西格电力1 小时前
零碳园区的能源结构优化需要哪些技术支持?
大数据·人工智能·物联网·架构·能源
Black蜡笔小新1 小时前
视频汇聚平台EasyCVR打造校园消防智能监管新防线
网络·人工智能·音视频
珠海西格电力科技1 小时前
双碳目标下,微电网为何成为能源转型核心载体?
网络·人工智能·物联网·云计算·智慧城市·能源
2501_941837261 小时前
【计算机视觉】基于YOLOv26的交通事故检测与交通状况分析系统详解_1
人工智能·yolo·计算机视觉
HyperAI超神经1 小时前
加州大学构建基于全连接神经网络的片上光谱仪,在芯片级尺寸上实现8纳米的光谱分辨率
人工智能·深度学习·神经网络·机器学习·ai编程
badfl2 小时前
AI漫剧技术方案拆解:NanoBanana+Sora视频生成全流程
人工智能·ai·ai作画
杭州杭州杭州2 小时前
李沐动手学深度学习笔记(4)---物体检测基础
人工智能·笔记·深度学习
小二·2 小时前
Python Web 开发进阶实战(终章):从单体应用到 AI 原生生态 —— 45 篇技术演进全景与未来开发者生存指南
前端·人工智能·python