首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python OpenCV 形态学应用—图像开运算与闭运算

Python OpenCV 形态学应用—图像开运算与闭运算

作者头像
用户9925864
发布于 2022-07-27 01:05:40
发布于 2022-07-27 01:05:40
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

开运算

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

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

开运算总结:

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

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

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

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

样例

原始图像

代码实践

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8
# 开运算 open_operation
import cv2
import 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)不同结构元素的选择导致了不同的分割。

样例

原始图像

代码实践

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8
import cv2
import 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部分也被连接在了一起)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类、目标检测应用。
Eastmount
2021/12/02
2.3K0
[Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算
二值形态学之开运算和闭运算
开闭运算是二值形态学的重要部分,是对腐蚀和膨胀算法的扩展应用,在图像的去噪方面也是十分的常用。
mythsman
2022/11/14
1.3K0
二值形态学之开运算和闭运算
opencv 2 -- 形态学处理
一、 图像腐蚀 图像腐蚀: 卷积核沿着图像滑动,如果与卷积核对应的原图 像的所有像素值都是 1,那么中心元素就保持原来的像素值,否则就变为零。
wust小吴
2019/07/08
6160
opencv滤波、图像形运算、Sober算子
## 2.opencv中形态处理: 1. 腐蚀操作:被操作的对象必须是二值图像;两个操作对象:一个是原始图像,另一个是卷积核;操作过程:被扫描到的原始图像中的像素点,只有当卷积核扫描图像中所有元素值均为1时,其值才为1,否则值为0;函数:result=cv2.erode(src,kernerl,iternation)
全栈程序员站长
2022/09/14
3910
opencv滤波、图像形运算、Sober算子
OpenCV 入门教程:开运算和闭运算
开运算和闭运算是形态学图像处理中常用的操作,用于改变图像的形状和结构。它们是基于膨胀和腐蚀操作的组合,可以用于图像去噪、边缘保留、图像分割等多个领域。本文将以开运算和闭运算为中心,为你介绍使用 OpenCV 进行形态学操作的基本步骤和实例。
小蓝枣
2023/07/10
1K0
[Python图像处理] 十.形态学之图像顶帽运算和黑帽运算
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类、目标检测应用。
Eastmount
2021/12/02
1.2K0
[Python图像处理] 十.形态学之图像顶帽运算和黑帽运算
【OpenCV】Chapter8.形态学图像处理
形态学的基本思想是利用结构元素测量或提取输入图像中的形状或特征,以便进行图像分析和目标识别。
zstar
2022/09/27
1.3K0
【OpenCV】Chapter8.形态学图像处理
OpenCV这么简单为啥不学——1.7、实现OpenCV自带的七种形态学转换操作
计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:
红目香薰
2023/02/10
4560
OpenCV这么简单为啥不学——1.7、实现OpenCV自带的七种形态学转换操作
opencv: 形态学 转换(图示+源码)
OpenCV中的形态学转换操作有七种:腐蚀,膨胀,开运算,闭运算,形态学梯度,礼帽,黑帽。
JNingWei
2018/09/28
1.3K0
opencv: 形态学 转换(图示+源码)
开闭运算
算法:开运算是先将图像腐蚀,再对腐蚀的结果进行膨胀,与腐蚀相似,但与腐蚀相比,具有基本保持原始图像大小不变的优点。开运算可以用于去噪、计数等,比如在纤细处分离物体、平滑较大物体的边界的同时并不明显改变其面积。闭运算是先将图像膨胀、后腐蚀的运算,可以关闭前景物体内部的小孔,也去除物体上的小黑点,还将不同的前景图像进行连接。闭运算平滑边界的同时不明显改变其面积。
裴来凡
2022/05/28
2530
开闭运算
OpenCV与图像处理(三)
以下代码均在python3.6,opencv4.2.0环境下试了跑一遍,可直接运行。
Must
2020/07/28
8030
OpenCV与图像处理(三)
OpenCV Python 系列教程 4 - OpenCV 图像处理(上)
HSV 的色相范围为 [0,179],饱和度范围为 [0,255],值范围为 [0,255]。不同的软件使用不同的规模。
机器视觉CV
2019/07/15
3.2K0
OpenCV Python 系列教程 4 - OpenCV 图像处理(上)
Halcon转OpenCV实例--复杂背景下缺陷检测(附源码)
导读 本文主要介绍一个复杂背景下缺陷检测的实例,并将Halcon实现转为OpenCV。 实例来源 实例来源于51Halcon论坛的讨论贴: https://www.51halcon.com/foru
Color Space
2021/07/01
2.3K0
常见的图像变换二值化与形态学操作-python-opencv版
1.变为rgb通道: img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 2.变为灰度图: gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 3.直方图均衡化(一般需化为灰度图): eq = cv2.equalizeHist(gray)#灰度图像直方图均衡化
微风、掠过
2018/08/02
7410
[Python图像处理] 十三.基于灰度三维图的图像顶帽运算和黑帽运算
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~
Eastmount
2022/11/25
9090
使用Python+OpenCV进行图像处理(二)| 视觉入门
【前言】图像预处理对于整个图像处理任务来讲特别重要。如果我们没有进行恰当的预处理,无论我们有多么好的数据也很难得到理想的结果。
磐创AI
2019/05/05
2.8K0
使用Python+OpenCV进行图像处理(二)| 视觉入门
形态学运算与仿真:图像处理中形态学操作的简单解释
形态学是图像处理领域的一个分支,主要用于描述和处理图像中的形状和结构。形态学可以用于提取图像中的特征、消除噪声、改变图像的形状等。其中形态学的核心操作是形态学运算。
deephub
2023/08/28
7870
形态学运算与仿真:图像处理中形态学操作的简单解释
Halcon转OpenCV实例--利用颜色信息提取与背景相似字符
有时候遇到待提取的目标与背景颜色很接近,我们无法直接用阈值处理将其分割,只能尝试其他方法,今天介绍的实例就是如此。
Color Space
2020/10/29
2.1K0
Halcon转OpenCV实例--利用颜色信息提取与背景相似字符
基于OpenCV的条形码区域分割
本期,我们将一起学习如何从图像中提取出含有条形码的区域。下面的代码,我们将在Anaconda中采用Python 2.7 完成,当然OpenCV中的图像处理库也是必不可少的。
AI算法与图像处理
2020/10/23
1K0
Python OpenCV给证件照换底色
投简历、找工作这些事都需要证件照,有些还要求证件照背景颜色、尺寸大小,本文分享一下如果通过Python OpenCV来实现照片裁剪和更换背景色
用户9925864
2022/07/27
1.4K0
Python OpenCV给证件照换底色
推荐阅读
相关推荐
[Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档