[opencv]图像处理-腐蚀操作与膨胀操作

Posted zlc364624

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[opencv]图像处理-腐蚀操作与膨胀操作相关的知识,希望对你有一定的参考价值。

1.腐蚀操作:

  类似于化学反应,用酸腐蚀金属等等效果类似,因而被称为腐蚀操作。

import cv2
import matplotlib.pyplot as plt
import numpy as np

# 载入汉字 展示原图
img = cv2.imread(E:/img/6.jpg)

cv2.imshow(img,img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 腐蚀范围2x2
kernel = np.ones((2,2),np.uint8)
# 迭代次数 iterations=1
erosion = cv2.erode(img,kernel,iterations = 1)

cv2.imshow(erosion,erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

原图如下,带有许多不需要的细线,可以利用腐蚀操作去除细线:

技术图片

 

 腐蚀操作后

技术图片

 

 2.膨胀操作

  与名称同义,进行一个膨胀。上图明显腐蚀后,线条与原来相比变细了。这时可以采取一个膨胀操作来增宽线条。

  代码为先腐蚀后膨胀的操作:

import cv2
import matplotlib.pyplot as plt
import numpy as np

# 载入汉字 展示原图
img = cv2.imread(E:/img/6.jpg)

cv2.imshow(img,img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 腐蚀范围2x2
kernel = np.ones((2,2),np.uint8)
# 迭代次数 iterations=1
erosion = cv2.erode(img,kernel,iterations = 1)

cv2.imshow(erosion,erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 膨胀范围
kernel = np.ones((3,3),np.uint8)
# 迭代次数
img_dilate = cv2.dilate(erosion,kernel,iterations = 1)

cv2.imshow(dilate, img_dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()

膨胀操作后,线条明显变粗。

技术图片

 

以上是关于[opencv]图像处理-腐蚀操作与膨胀操作的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 形态学操作:膨胀与腐蚀

[opencv]图像处理-腐蚀操作与膨胀操作

图像的膨胀与腐蚀——OpenCV与C++的具体实现

OpenCV2:大学篇 形态学技术-腐蚀与膨胀操作

OpenCV膨胀腐蚀等操作

Python视觉识别--OpenCV开闭操作\分水岭算法(九)