需要源码和图片请点赞关注收藏后评论区留言私信~~~
一、开运算
开运算是将图像先进行腐蚀操作,再进行膨胀操作,开运算可以用来抹除图像外部的细节
如下图所示是一个简单的二叉树,父子节点之间都有线连接,如果对此图像进行腐蚀操作,可以得出第二张图,此时再执行膨胀操作,让缩小的节点恢复到原来的大小,可以得到第三张图的效果
这三幅图就是开运算的过程,从结果中可以明显的看出,经过开运算之后,二叉树中的连接线消失了,只剩下光秃秃的节点,因为连接线被核当成细节抹除了,所以利用检测轮廓的方法可以统计二叉树节点数量,也就是说在某些情况下,开运算的结果还可以用来做数量统计
下面实战抹除黑种草图像中的针状叶子
黑种草如下图所示,花呈蓝色,叶子像针一样又细又长,呈羽毛状,要抹除黑种草图像中的叶子,可以使用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() # 释放所有窗体
创作不易 觉得有帮助请点赞关注收藏~~~