python 开运算_图像开运算和闭运算
如果您觉得本文不错,帮忙点赞哦!
一. 图像形态学处理 —— 膨胀和腐蚀
图解图像腐蚀和膨胀 ↑
二. 开运算与闭运算:
开运算:先腐蚀后膨胀,能够消除图像区域外的小白点(噪声)。
闭运算:先膨胀后腐蚀,能够消除图像区域内的小黑点(噪声)。
图解图像开运算与闭运算 ↑
为什么有了膨胀、腐蚀还要开运算闭运算呢?其实开闭运算最重要的一点就是,可以保持物体原有大小。然后一个是消除物体外部噪声(开运算)的另一个是增强物体之间连接点(闭运算)的。
三. 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 开运算_图像开运算和闭运算相关推荐
- 【新星计划】Python OpenCV 形态学应用—图像开运算与闭运算
开运算 开运算=先腐蚀运算,再膨胀运算(看上去把细微连在一起的两块目标分开了) 开运算的效果图如下图所示: 开运算总结: (1)开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便. (2)开 ...
- 图像形态学运算之图像开闭运算 含python实现
如果您觉得本文不错,帮忙点赞哦! 一. 图像形态学处理 -- 膨胀和腐蚀 图解图像腐蚀和膨胀 ↑ 二. 开运算与闭运算: 开运算:先腐蚀后膨胀,能够消除图像区域外的小白点(噪声). 闭运算:先膨胀后腐 ...
- python笔记图片_图像 opencv - python笔记
默认 基础变换 模糊 锐化 色彩分层 傅里叶变换 高通低通 图像序列转换为视频 人脸识别 import opencv as cv2 img = cv2.imread('test.jpg') # imw ...
- Canny提取图像边缘后使用闭运算连接断线
实验: # Writer : wojianxinygcl@163.com # Date : 2020.3.22 import cv2 as cv import numpy as np image = ...
- 左移右移位运算_计算机硬件技术基础M2——计算机运算基础(二)
在上一篇中,我们学习到了计算机底层的一些机器码,以及一些行业标准,这一章,我们将接着学习机器码的一些比较与相关计算. 一.浮点数表示和定点数的比较 ① 当字长相同时,浮点数表示的范围要大得多. ②浮点 ...
- python图像开闭区间_自动开闭器不良故障案例分析
问题:怎样才能每天收到这种文章? 答案:点击上方蓝色字体,再点击关注即可! 一.故障概况 某年10月26日13:00分,某站的16/18号道岔在排列进路时,从定位操纵到反位时,反位无表示. 二.监测数 ...
- 加减法叫做什么运算_【课堂实录】加减法运算的本质(四上)
原标题:[课堂实录]加减法运算的本质(四上) A类目标:能用自己的语言描述加法和减法运算: B类目标:1.从集合的合并与拆分,"+1"与"-1",理解加法运算和 ...
- python插值算法实现_图像插值算法Opencv+python实现
1.最近邻插值算法 在待求像素(小数)的四邻像素(整数,上下左右)中,将距离待求像素最近的邻接像素灰度值赋予待求像素.html 2.双线性插值算法 感受这个博客讲的挺详细,能够参考. 博客 双线性就是 ...
- mysql 字段集合运算_如何用SQL进行集合运算
如何用SQL进行集合运算 发布时间:2020-07-15 14:31:43 来源:亿速云 阅读:117 作者:Leah 今天就跟大家聊聊有关如何用SQL进行集合运算 ,可能很多人都不太了解,为了让大家 ...
最新文章
- JVM系列(之ClassLoader)
- 我人生的贵人系列之 - 文深刘
- zabbix mysql 8g优化_Zabbix分区优化
- oracle spm buffer get比较过程,Oracle 11g 新特性 -- SQL Plan Management 示例
- ASP.NET MVC 5 實作 GridView 分頁
- PMCAFF微分享 | 京东首席搜索专家,告诉你电商搜索你不得不知道的秘密
- 牛客21312 神秘餐馆
- 过磅系统_简讯:崇义商砼公司开展无人值守过磅系统业务培训等二则
- linux查看虚拟化版本,4.15. 虚拟化 (机器翻译版本)
- 提交响应后无法调用sendredirect_DDD 指导应用垂直拆分后事务问题
- 如何通过Excel文件批量生成PDF417二维码
- 2021软科中国计算机专业排名
- 做SEO优化第十二步:网站优化推广方案
- 浅谈傅里叶——5. 短时傅里叶的缺点与卷积的基本概念
- Python实现地图四色原理的遗传算法(GA)着色实现
- HTML5面试题目汇总(一)
- python 网络通讯 plc_Python TCP通信网络编程
- Uncaught SyntaxError: Not available in legacy mode
- 全球主流社交媒体算法解析:Facebook、YouTube、Twitter如何利用算法推荐内容?
- aegisub32汉化_Aegisub中文版(aegisub字幕特效)V3.2.3 免费版