如果您觉得本文不错,帮忙点赞哦!

一. 图像形态学处理 —— 膨胀和腐蚀

图解图像腐蚀和膨胀 ↑

二. 开运算与闭运算:

开运算:先腐蚀后膨胀,能够消除图像区域外的小白点(噪声)。

闭运算:先膨胀后腐蚀,能够消除图像区域内的小黑点(噪声)。

图解图像开运算与闭运算 ↑

为什么有了膨胀、腐蚀还要开运算闭运算呢?其实开闭运算最重要的一点就是,可以保持物体原有大小。然后一个是消除物体外部噪声(开运算)的另一个是增强物体之间连接点(闭运算)的。

三. python实现开运算和闭运算:

# Writer : wojianxinygcl@163.com

# Date   : 2020.3.21

import numpy as np

# Morphology Dilate

def Morphology_Dilate(img, Dil_time=1):

H, W = img.shape

# kernel

MF = np.array(((0, 1, 0),

(1, 0, 1),

(0, 1, 0)), dtype=np.int)

# each dilate time

out = img.copy()

for i in range(Dil_time):

tmp = np.pad(out, (1, 1), 'edge')

for y in range(1, H):

for x in range(1, W):

if np.sum(MF * tmp[y-1:y+2, x-1:x+2]) >= 255:

out[y, x] = 255

return out

# Morphology Erode

def Morphology_Erode(img, Erode_time=1):

H, W = img.shape

out = img.copy()

# kernel

MF = np.array(((0, 1, 0),

(1, 0, 1),

(0, 1, 0)), dtype=np.int)

# each erode

for i in range(Erode_time):

tmp = np.pad(out, (1, 1), 'edge')

# erode

for y in range(1, H):

for x in range(1, W):

if np.sum(MF * tmp[y-1:y+2, x-1:x+2]) < 255*4:

out[y, x] = 0

return out

# Morphology Closing

def Morphology_Closing(img, time=1):

out = Morphology_Dilate(img, Dil_time=time)

out = Morphology_Erode(out, Erode_time=time)

return out

# Opening morphology

def Morphology_Opening(img, time=1):

out = Morphology_Erode(img, Erode_time=time)

out = Morphology_Dilate(out, Dil_time=time)

return out

四. 开闭运算的效果:

原图(左)、开运算(中)、闭运算(右) ↑

可以看到,图像开运算,消除了图像外部的噪声,图像闭运算,连通了更多的图像区域。

五. 参考内容:

六. 版权声明:

未经作者允许,请勿随意转载抄袭,抄袭情节严重者,作者将考虑追究其法律责任,创作不易,感谢您的理解和配合!

python 开运算_图像开运算和闭运算相关推荐

  1. 【新星计划】Python OpenCV 形态学应用—图像开运算与闭运算

    开运算  开运算=先腐蚀运算,再膨胀运算(看上去把细微连在一起的两块目标分开了) 开运算的效果图如下图所示: 开运算总结: (1)开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便. (2)开 ...

  2. 图像形态学运算之图像开闭运算 含python实现

    如果您觉得本文不错,帮忙点赞哦! 一. 图像形态学处理 -- 膨胀和腐蚀 图解图像腐蚀和膨胀 ↑ 二. 开运算与闭运算: 开运算:先腐蚀后膨胀,能够消除图像区域外的小白点(噪声). 闭运算:先膨胀后腐 ...

  3. python笔记图片_图像 opencv - python笔记

    默认 基础变换 模糊 锐化 色彩分层 傅里叶变换 高通低通 图像序列转换为视频 人脸识别 import opencv as cv2 img = cv2.imread('test.jpg') # imw ...

  4. Canny提取图像边缘后使用闭运算连接断线

    实验: # Writer : wojianxinygcl@163.com # Date  : 2020.3.22 import cv2 as cv import numpy as np image = ...

  5. 左移右移位运算_计算机硬件技术基础M2——计算机运算基础(二)

    在上一篇中,我们学习到了计算机底层的一些机器码,以及一些行业标准,这一章,我们将接着学习机器码的一些比较与相关计算. 一.浮点数表示和定点数的比较 ① 当字长相同时,浮点数表示的范围要大得多. ②浮点 ...

  6. python图像开闭区间_自动开闭器不良故障案例分析

    问题:怎样才能每天收到这种文章? 答案:点击上方蓝色字体,再点击关注即可! 一.故障概况 某年10月26日13:00分,某站的16/18号道岔在排列进路时,从定位操纵到反位时,反位无表示. 二.监测数 ...

  7. 加减法叫做什么运算_【课堂实录】加减法运算的本质(四上)

    原标题:[课堂实录]加减法运算的本质(四上) A类目标:能用自己的语言描述加法和减法运算: B类目标:1.从集合的合并与拆分,"+1"与"-1",理解加法运算和 ...

  8. python插值算法实现_图像插值算法Opencv+python实现

    1.最近邻插值算法 在待求像素(小数)的四邻像素(整数,上下左右)中,将距离待求像素最近的邻接像素灰度值赋予待求像素.html 2.双线性插值算法 感受这个博客讲的挺详细,能够参考. 博客 双线性就是 ...

  9. mysql 字段集合运算_如何用SQL进行集合运算

    如何用SQL进行集合运算 发布时间:2020-07-15 14:31:43 来源:亿速云 阅读:117 作者:Leah 今天就跟大家聊聊有关如何用SQL进行集合运算 ,可能很多人都不太了解,为了让大家 ...

最新文章

  1. JVM系列(之ClassLoader)
  2. 我人生的贵人系列之 - 文深刘
  3. zabbix mysql 8g优化_Zabbix分区优化
  4. oracle spm buffer get比较过程,Oracle 11g 新特性 -- SQL Plan Management 示例
  5. ASP.NET MVC 5 實作 GridView 分頁
  6. PMCAFF微分享 | 京东首席搜索专家,告诉你电商搜索你不得不知道的秘密
  7. 牛客21312 神秘餐馆
  8. 过磅系统_简讯:崇义商砼公司开展无人值守过磅系统业务培训等二则
  9. linux查看虚拟化版本,4.15. 虚拟化 (机器翻译版本)
  10. 提交响应后无法调用sendredirect_DDD 指导应用垂直拆分后事务问题
  11. 如何通过Excel文件批量生成PDF417二维码
  12. 2021软科中国计算机专业排名
  13. 做SEO优化第十二步:网站优化推广方案
  14. 浅谈傅里叶——5. 短时傅里叶的缺点与卷积的基本概念
  15. Python实现地图四色原理的遗传算法(GA)着色实现
  16. HTML5面试题目汇总(一)
  17. python 网络通讯 plc_Python TCP通信网络编程
  18. Uncaught SyntaxError: Not available in legacy mode
  19. 全球主流社交媒体算法解析:Facebook、YouTube、Twitter如何利用算法推荐内容?
  20. aegisub32汉化_Aegisub中文版(aegisub字幕特效)V3.2.3 免费版

热门文章

  1. 应用之星:最好用的H5制作平台-附H5制作教程
  2. 指纹很安全?发个红包就把你打回原形
  3. 操作系统学习(一):浅析操作系统进程调度算法
  4. wireguard服务器配置
  5. Python导入模块但显示模块中的函数不存在
  6. 用turtle库画新年小老鼠
  7. 三方SDK——mob短信验证
  8. vscode ssh远程连接失败问题及解决
  9. Spinnaker 初探
  10. ARM编程寄存器定义