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

Opencv实现图像的腐蚀、膨胀及开、闭运算

图像的腐蚀、膨胀及开闭运算

目录

  • 图像的腐蚀、膨胀及开闭运算
    • 图像的腐蚀、膨胀
      • 图像的腐蚀
      • 图像的膨胀
    • 图像的开、闭运算
      • 图像的开运算
      • 图像的闭运算

图像的腐蚀、膨胀

图像的腐蚀

  • 概念:将图像中的高亮区域或白色部分进行缩减细化,其运行结果图比原图的高亮区域更小,甚至无。(暗部增加)

  • 格式:cv2.erode(a,k,iterations=n)
    a:图像变量
    k:腐蚀区域
    iterations:腐蚀次数

代码展示:

a = cv2.imread('at1.png')
kernel = np.ones((3,3),np.uint8)
at1_erode_3 = cv2.erode(a,kernel,iterations=3)
at1_erode_5 = cv2.erode(a,kernel,iterations=1)
cv2.imshow('at1',a)
cv2.imshow('at1',a)
cv2.waitKey(0)
cv2.imshow('at1_erode_3',at1_erode_3)
cv2.waitKey(0)
cv2.waitKey(0)
cv2.imshow('at1_erode_5',at1_erode_5)
cv2.waitKey(0)
s = cv2.imread('sun.png')
kernel = np.ones((3,3),np.uint8)
print(kernel,type(kernel))
s_erode_3 = cv2.erode(s,kernel,iterations=3)
s_erode_5 = cv2.erode(s,kernel,iterations=1)
cv2.imshow('sun',s)
cv2.imshow('sun',s)
cv2.waitKey(0)
cv2.imshow('s_erode_3',s_erode_3)
cv2.waitKey(0)
cv2.imshow('s_erode_5',s_erode_5)
cv2.waitKey(0)

运行结果:
在这里插入图片描述

图像的膨胀

  • 概念:将图像中的高亮区域或白色部分进行膨胀,其运行结果图比原图的高亮区域更大。(暗部减少)

  • 格式:cv2.dilate(a,k,iterations=n)
    a:图像变量
    k:腐蚀区域
    iterations:腐蚀次数

代码展示:

a = cv2.imread('at1.png')
kernel = np.ones((3,3),np.uint8)
cv2.imshow('at1',a)
cv2.waitKey(0)
a_dilate = cv2.dilate(a,kernel,iterations=1)
cv2.imshow('a_dilate',a_dilate)
cv2.waitKey(0)
wenz = cv2.imread('wenz.png')
wenz_dilate = cv2.dilate(wenz,kernel,iterations=1)
cv2.imshow('wenz',wenz)
cv2.waitKey(0)
cv2.imshow('wenz_dilate',wenz_dilate)
cv2.waitKey(0)

运行结果:

在这里插入图片描述

图像的开、闭运算

图像的开运算

  • 概念:先腐蚀再膨胀
  • 格式:cv2.morphologyEx(a,MOPH_OPEN,K)
    a:图像变量
    k:腐蚀区域
    MOPH_OPEN:开运算操作

图像的闭运算

  • 概念:先膨胀在腐蚀
  • 格式:cv2.morphologyEx(a,MORPH_CLOSE,K)
    a:图像变量
    k:腐蚀区域
    MORPH_CLOSE:闭运算操作

代码展示:

a = cv2.imread('at1.png')
kernel = np.ones((3,3),np.uint8)
a_morph_open = cv2.morphologyEx(a,cv2.MORPH_OPEN,kernel)
a_morph_close = cv2.morphologyEx(a,cv2.MORPH_CLOSE,kernel)
zw1 = cv2.imread('zw1.png')
zw1_morph_open = cv2.morphologyEx(zw1,cv2.MORPH_OPEN,kernel)
zw2 = cv2.imread('zw2.png')
kernel = np.ones((4,4),np.uint8)
zw2_morph_close = cv2.morphologyEx(zw2,cv2.MORPH_CLOSE,kernel)
cv2.imshow('a',a)
cv2.waitKey(0)
cv2.imshow('a_morph_open',a_morph_open)
cv2.waitKey(0)
cv2.imshow('a_morph_close',a_morph_close)
cv2.waitKey(0)
cv2.imshow('zw1',zw1)
cv2.waitKey(0)
cv2.imshow('zw1_morph_open',zw1_morph_open)
cv2.waitKey(0)
cv2.imshow('zw2',zw2)
cv2.waitKey(0)
cv2.imshow('zw2_morph_close',zw2_morph_close)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:
在这里插入图片描述


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

相关文章:

  • 【系统架构设计师】真题论文: 论软件测试中缺陷管理及其应用(包括解题思路和素材)
  • Linux文件目录 --- touch命令创建文件
  • 嵌入式单片机中蓝牙模块的详解
  • 【Linux】进程间通信 -> 匿名管道命名管道
  • [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构
  • Next.js 14 性能优化:从首屏加载到运行时优化的最佳实践
  • 舵机原理介绍 简洁讲解面向实战 非阻塞式驱动代码, arduino
  • 重温设计模式--外观模式
  • PromptGIP:Unifying lmage Processing as Visual Prompting Question Answering
  • gesp(二级)(12)洛谷:B3955:[GESP202403 二级] 小杨的日字矩阵
  • QT从入门到精通(三)——实现文件列表遍历的图像浏览器
  • 【Linux编程】TcpServer 类的设计与实现:构建高性能的 TCP 服务器(二)
  • 《实战AI智能体》魔搭多 Agent 模式(一)
  • cannot import name ‘_C‘ from ‘pytorch3d‘
  • Ubuntu环境 nginx.conf详解(二)
  • torch.nn.init 模块介绍
  • CSS基础-长度单位
  • golang LeetCode 热题 100(哈希)
  • 【zookeeper核心源码解析】第二课:俯瞰QuorumPeer启动核心流程,实现选举关键流程
  • UI自动化测试实战实例
  • debian 编译openwrt
  • idea集合git使用
  • 单片机:实现LED亮度等级控制(附带源码)
  • Zookeeper常见面试题解析
  • Docker 快速搭建 GBase 8s数据库服务
  • 重温设计模式--6、享元模式