开运算 

开运算=先腐蚀运算,再膨胀运算(看上去把细微连在一起的两块目标分开了)

开运算的效果图如下图所示:

开运算总结:

(1)开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便。

(2)开运算是一个基于几何运算的滤波器。

(3)结构元素大小的不同将导致滤波效果的不同。

(4)不同的结构元素的选择导致了不同的分割,即提取出不同的特征。

样例

原始图像 

代码实践

# coding:utf-8# 开运算 open_operationimport cv2import numpy as np
# 开运算执行次数iter_times = 5# 读取图像img = cv2.imread("1.png", flags=cv2.IMREAD_GRAYSCALE)
# 定义操作框,在图像上以这个框大小的像素进行遍历开运算operation_kernel = np.ones((3, 3), np.uint8)# 开运算result_image = cv2.morphologyEx(img, cv2.MORPH_OPEN, operation_kernel, iterations=iter_times)
# 显示原始图像cv2.imshow("img", img)# 显示处理完后的图像cv2.imshow("result_image", result_image)cv2.waitKey(0)

代码解读:在上面的代码中,我们可以看到做了实际工作的是cv2.morphologyEx()这个函数,该函数一共四个参数,依次为需要处理的图像,处理图像的方式,处理的核大小,处理的次数,其中我们主要调试的是核的大小和处理的次数,这两个参数需要多次调试才能取得较好的效果,这里分别是3x3和5  当时核的大小也可以取7x7之类的,只要是整数就好了,不然会报错哦。

结果

闭运算 

闭运算 = 先膨胀运算,再腐蚀运算(看上去将两个细微连接的图块封闭在一起)

闭运算的效果图如下图所示:

闭运算总结:

(1)闭运算能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。

(2)闭运算是通过填充图像的凹角来滤波图像的。

(3)结构元素大小的不同将导致滤波效果的不同。

(4)不同结构元素的选择导致了不同的分割。

样例

原始图像 

代码实践

# coding:utf-8import cv2import numpy as np
# 迭代次数iter_time = 1# 读入灰度图image = cv2.imread("2.png", flags=cv2.IMREAD_GRAYSCALE)
# 定义操作框,在图像上以这个框大小的像素进行遍历闭运算operation_kernel = np.ones((3, 3), np.uint8)# 闭运算result_image = cv2.morphologyEx(image, cv2.MORPH_CLOSE, operation_kernel, iterations=iter_time)
# 显示原始图像cv2.imshow("img", image)# 显示处理完后的图像cv2.imshow("result_image", result_image)cv2.waitKey(0)

代码解读:与之前的代码一样,我们主要关注cv2.morphologyEx()函数,不同的是我们的第二个参数换成了cv2.MORPH_CLOSE,也就是闭运算,另外几个参数都是类似的,注意与上一个区分哦。

结果

(可以看到原始图像中笔画中间的黑点消失了一部分,笔画衔接de部分也被连接在了一起)

【新星计划】Python OpenCV 形态学应用—图像开运算与闭运算相关推荐

  1. 《OpenCv视觉之眼》Python图像处理十 :Opencv图像形态学处理之开运算、闭运算和梯度运算原理及方法

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  2. (自己编写函数)Python + Opencv 图像形态学处理(腐蚀、膨胀、开运算、闭运算)

    原理: 形态学运算是结构元素与图像进行逻辑运算,产生新的图像的图像处理方法.二值图像B和结构元素S是定义在笛卡儿网格上的集合,网格中值为1的点是集合的元素. 腐蚀 定义: 算法: a) 用3x3的结构 ...

  3. OpenCV 形态学操作之腐蚀与膨胀,开运算与闭运算,顶帽与黑帽,图像梯度运算相关知识点回顾

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧.本篇博客是这个系列的第 45 篇. 该系列文章导航参考:https://blog.csdn.net/hihell/categ ...

  4. python opencv 腐蚀_opencv 图像的腐蚀(erode)和膨胀(dilate) 开运算以及闭运算

    原文链接:opencv 图像的腐蚀(erode)和膨胀(dilate) 开运算以及闭运算 OpenCV---开闭操作 - 山上有风景 - 博客园 腐蚀 : 腐蚀操作会把前景物体的边缘腐蚀掉.原理是卷积 ...

  5. [Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  6. python --opencv图像处理形态学(开运算、闭运算、梯度运算、顶帽运算、黑帽运算)

    引言 前面介绍了图像形态学的两种基础算法,图像腐蚀和图像膨胀,本篇接着介绍图像形态学中的开运算.闭运算以及梯度运算. 需要了解清楚图像的腐蚀与膨胀基础原理,不然真的没办法理解开运算和闭运算. 第一件事 ...

  7. [Python从零到壹] 四十八.图像增强及运算篇之形态学开运算、闭运算和梯度运算

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. Python OpenCV 形态学 (六)

    形态学的操作包括:腐蚀.膨胀.细化.开运算.闭运算 数字图像处理中的形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量, 比如:边界.骨架.以及凸壳,还包括用于预处理 ...

  9. 图像形态学概要-腐蚀、膨胀、开运算、闭运算、形态学梯度(形态学边缘提取)、顶帽操作、黑帽操作

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 图像形态学中两种最基本的操作就是对图形的腐蚀和膨 ...

最新文章

  1. Ubuntu中APUE 3rd中实例编译时err_sys函数找不到解决方法
  2. C++/C++11中头文件numeric的使用
  3. java开发webservice_Java WebService开发详解
  4. linux学习比较好的网站,推荐一个好的在线学习Linux/Unix的好网站
  5. 滑动窗口/二分 - 尽可能使字符串相等
  6. Struts2之路第一天
  7. 全球服务器系统市场份额,IDC发布2017年第一季度全球融合系统报告 超融合市场最火爆...
  8. Iptables入门教程
  9. jmeter找不到java.dll_Windows下Jmeter安装出现Not able to find Java executable or version问题解决方案...
  10. VMware Workstation网络连接的三种模式
  11. 快安排!QQ更新被吐槽低龄化 但这个功能让微信用户们“羡慕”哭了
  12. VS2005 Extjs智能提示插件
  13. freemarker空格问题
  14. 数学之美_正态分布(详解)
  15. [实变函数]2.2 聚点 (cluster point), 内点 (interior point), 界点 (boundary point)
  16. Docker Redis 安装
  17. char、int、long、float、double等在64位下占多少字节
  18. Excel VBA 函数返回值
  19. ssh 方式git clone 代码仓库
  20. SRIO学习笔记之SRIO简介与Xilinx SRIO ip核例程详解

热门文章

  1. python怎么把程序封装成函数_PYTHON中如何把固定格式代码,封装成一个函数?
  2. 第8天:我用AI算法造了一些“网红”
  3. 利用Keras构建自动编码器
  4. 【机器学习PAI实践三】雾霾成因分析
  5. kafka Windows客户端Linux服务器---转
  6. 基于事件的 NIO 多线程服务器--转载
  7. spring aop实现过程之三Spring AOP中Aspect编织的实现
  8. 限时抢购秒杀系统架构分析与实战
  9. php实现socket编程
  10. 海外投行抢滩大数据 人工智能等领域趋热