OpenCV中图像的开、闭运算讲解与实战应用(附Python源码)

简介: OpenCV中图像的开、闭运算讲解与实战应用(附Python源码)

需要源码和图片请点赞关注收藏后评论区留言私信~~~

一、开运算

开运算是将图像先进行腐蚀操作,再进行膨胀操作,开运算可以用来抹除图像外部的细节

如下图所示是一个简单的二叉树,父子节点之间都有线连接,如果对此图像进行腐蚀操作,可以得出第二张图,此时再执行膨胀操作,让缩小的节点恢复到原来的大小,可以得到第三张图的效果

这三幅图就是开运算的过程,从结果中可以明显的看出,经过开运算之后,二叉树中的连接线消失了,只剩下光秃秃的节点,因为连接线被核当成细节抹除了,所以利用检测轮廓的方法可以统计二叉树节点数量,也就是说在某些情况下,开运算的结果还可以用来做数量统计

下面实战抹除黑种草图像中的针状叶子

黑种草如下图所示,花呈蓝色,叶子像针一样又细又长,呈羽毛状,要抹除黑种草图像中的叶子,可以使用5×5的核对图像进行开运算

部分代码如下

import cv2
import numpas np
img = cv2.imad("nigella.png")  # 读取原图
k = np.ones(5, 5), np.uint8)  # 创建5*5的数组作为核
cv2.imshow("img", img)  # 显示原图
dst = cv2.eroe(img, k  # 腐蚀操作
dst = cv2.dilae(dst, k)  # 膨胀操作
cv2.imshow("dst", dst)  # 显示开运算结果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

二、闭运算

闭运算是将图像先进行膨胀操作,再进行腐蚀操作,闭运算可以抹除图像内部的细节,如下图身上布满斑点的小蜘蛛,先将图像进行膨胀操作,小蜘蛛身上的斑点被抹除,然后再将图像进行腐蚀操作

下面对汉字图片进行闭运算,使用15×15的核做闭运算,因为使用的核比较大,很容易导致一些间隔较近的区域合并到一起 可以观察闭运算对汉字图片造成了哪些影响

部分代码如下

import cv2
import numpy as np
img = cv2imreadtianye.png")  # 读取原图
k = np.es(( 15), np.uint8)  # 创建15*15的数组作为核
cv2.imsow("img", img)  # 显示原图
dst = cv2.dile(img, k)  # 膨胀操作
dst = cv2.erodst, k)  # 腐蚀操作
cv2.imshow("dst2", dst)  # 显示闭运算结果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destrAllWindows()  # 释放所有窗体

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
2天前
|
数据采集 机器学习/深度学习 存储
Python编程入门:从基础到实战
【9月更文挑战第6天】本文将引导你走进Python的世界,从零基础开始,逐步掌握Python的基础语法和常用库。我们将通过实例讲解,让你在轻松愉快的氛围中学习Python编程。最后,我们还将分享一些实用的技巧和资源,帮助你在学习过程中不断进步。让我们一起开启Python编程之旅吧!
20 4
|
3天前
|
数据采集 Python
探索Python中的异步编程:从基础到实战
【9月更文挑战第4天】在Python的海洋中,异步编程犹如一艘快艇,让你的代码在执行效率和响应速度上破浪前行。本文将带你从理解“异步”这一概念出发,深入到Python的asyncio库的使用,再到构建一个实际的异步Web爬虫项目,体验异步编程的魅力。我们将避开枯燥的理论,通过生动的比喻和直观的代码示例,让异步编程的知识活灵活现。
|
2天前
|
机器学习/深度学习 算法 Python
决策树下的智慧果实:Python机器学习实战,轻松摘取数据洞察的果实
【9月更文挑战第7天】当我们身处数据海洋,如何提炼出有价值的洞察?决策树作为一种直观且强大的机器学习算法,宛如智慧之树,引领我们在繁复的数据中找到答案。通过Python的scikit-learn库,我们可以轻松实现决策树模型,对数据进行分类或回归分析。本教程将带领大家从零开始,通过实际案例掌握决策树的原理与应用,探索数据中的秘密。
9 1
|
3天前
|
测试技术 Apache 数据库
从慢如蜗牛到飞一般的感觉!Python性能测试实战,JMeter&Locust助你加速🏃‍♂️
【9月更文挑战第6天】你的Python应用是否曾因响应缓慢而让用户望而却步?借助JMeter与Locust,这一切将迎刃而解。JMeter作为Apache基金会的明星项目,以其强大的跨平台和多协议支持能力,成为性能测试领域的魔法师;而Locust则以Python的简洁与高效,让性能测试更加灵活。通过实战演练,你可以利用这两款工具轻松识别并解决性能瓶颈,优化数据库查询、网络配置等,最终使应用变得敏捷高效,轻松应对高并发挑战。
8 1
|
11天前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
|
1天前
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
12 4
WK
|
9天前
|
编解码 计算机视觉 Python
如何在OpenCV中进行图像转换
在OpenCV中,图像转换涉及颜色空间变换、大小调整及类型转换等操作。常用函数如`cvtColor`可实现BGR到RGB、灰度图或HSV的转换;`resize`则用于调整图像分辨率。此外,通过`astype`或`convertScaleAbs`可改变图像数据类型。对于复杂的几何变换,如仿射或透视变换,则可利用`warpAffine`和`warpPerspective`函数实现。这些技术为图像处理提供了强大的工具。
WK
35 1
|
27天前
|
机器人 计算机视觉
巧用 OpenCV solvePnP() 函数完成由图像坐标系到机器人坐标系的转换(二维坐标系之间的转换)
巧用 OpenCV solvePnP() 函数完成由图像坐标系到机器人坐标系的转换(二维坐标系之间的转换)
35 2
|
2月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
|
3月前
|
算法 计算机视觉
【Qt&OpenCV 图像的感兴趣区域ROI】
【Qt&OpenCV 图像的感兴趣区域ROI】
71 1