当前位置: 首页 > article >正文

形态学操作—闭运算

  闭运算(Closing)是图像形态学中的一种操作,它结合了膨胀(Dilation)和腐蚀(Erosion)操作。闭运算的原理是先对图像执行腐蚀操作,然后再进行膨胀操作。这个过程能够消除图像中的小孔洞,填充小的断裂,平滑物体的边界,以及连接窄的间隙。
作用:

  • 填补小的空洞或断裂
  • 平滑和关闭物体的边界
  • 连接紧密但不连续的物体部分

适用场景:

  • 图像预处理中的去噪声和平滑
  • 图像分割中的物体连接和边界提取
  • 图像分析中的前景提取和形状识别

数学公式:
  闭运算可以用数学形式表示为: Closing ( A , B ) = ( A ⊖ B ) ⊕ B \text{Closing}(A, B) = (A \ominus B) \oplus B Closing(A,B)=(AB)B
  其中, A A A 是输入图像, B B B 是结构元素, ⊖ \ominus 表示腐蚀操作, ⊕ \oplus 表示膨胀操作。
代码示例:

import cv2
import numpy as np

def show_images(image):
    cv2.namedWindow('image',cv2.WINDOW_KEEPRATIO)
    cv2.imshow('image',image)
    cv2.waitKey()
    cv2.destroyAllWindows()

def Close(image):
    # 定义结构元素(这里使用一个5x5的正方形结构元素)
    kernel = np.ones((5, 5), np.uint8)

    # 执行闭运算
    closing = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)
    return closing

if __name__ == '__main__':
    # 读取图像
    img = cv2.imread('cat-dog.png', flags=0)
    re_img=Close(img)
    # # 将四张图像连接成一个大图像
    # top_row = np.hstack((img, re_img[0]))
    # bottom_row = np.hstack((re_img[1], re_img[2]))
    # combined_img = np.vstack((img, re_img))
    combined_img=np.hstack((img,re_img))
    show_images(combined_img)

http://www.kler.cn/a/146282.html

相关文章:

  • IM聊天学习资源
  • 源码编译安装httpd 2.4,提供系统服务管理脚本并测试
  • 进阶——十六届蓝桥杯嵌入式熟练度练习(按键+LCD)
  • 哪些新兴技术对智能驾驶汽车影响最大?
  • 浅谈云计算19 | OpenStack管理模块 (上)
  • 前端【2】html添加样式、CSS选择器
  • 【算法萌新闯力扣】:合并两个有序链表
  • 3.golang数组以及切片
  • VMware系列:VMware16安装Win11虚拟机(最全步骤+踩坑)
  • 蓝桥杯第四场双周赛(1~6)
  • 搭建SRS视频服务器
  • 机器学习第13天:模型性能评估指标
  • qt pdf 模块简介
  • 15.解释Spring支持的几种bean的作用域
  • 禁用WordPress前台搜索功能
  • 人力资源管理后台 === 登陆+主页鉴权
  • 邮政快递查询单号查询入口,分析筛选出其中的提前签收件
  • 针对Arrays.asList的坑,可以有哪些处理措施
  • C#文件夹基本操作(判断文件夹是否存在、创建文件夹、移动文件夹、删除文件夹以及遍历文件夹中的文件)
  • laya2.13.3添加Button后报错
  • MySQL 批量插入记录报 Error 1390 (HY000)
  • Halcon 5分钟学会9点标定 带图片示例、示例源码
  • 【活动回顾】sCrypt在2023伦敦区块链大会上的精彩表现
  • Mysql使用周期性计划任务定时备份,发现备份的文件都是空的?为什么?如何解决?
  • 播放器开发(二):了解FFmpeg与SDL常用对象和函数
  • Redis面试题:redis做为缓存,数据的持久化是怎么做的?两种持久化方式有什么区别呢?这两种方式,哪种恢复的比较快呢?