OpenCV-Python学习<五> 形态学操作

形态学----数学形态学(MathematicalMorphology), 是图像处理过程中一个非常重要的研究方向。形态学主要从图像内提取分量信息,该分量信息通常对于表达和描述图像的形状具有重要意义。

形态学操作主要包含:腐蚀,膨胀,开运算,闭运算,形态学梯度计算,顶帽运算,黑帽运算等。

其中,腐蚀和膨胀操作时形态学运算的基础。其它形态学操作,就是腐蚀和膨胀操作的各种结合。

注意:形态学操作的对象都是针对二值化图像的

1. 腐蚀:

腐蚀是最基本的形态学操作之一,它能够将图像的边缘点消除,使图像沿着边界向内收缩,也可以将小于指定结构体元素的部分去除。

腐蚀用来“收缩”或者“细化”二值图像中的前景。借此实现去除噪音,元素分割等功能。

在腐蚀过程中,通常使用一个结构元来逐个像素的扫描要被腐蚀的图像,并根据结构元和被腐蚀图像的关系来确定腐蚀结果(即判定结构元中心点所对应点的像素值)。

import cv2
import numpy as np
import sys

#data_src = cv2.imread("images/Morphology_Success_3.png", cv2.IMREAD_COLOR)
data_src = cv2.imread("images/Morphology_Success_4.png", cv2.IMREAD_COLOR)
data_gray = cv2.cvtColor(data_src, cv2.COLOR_BGR2GRAY)

t, rst = cv2.threshold(data_gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
print("thresh:", t)

kernel = np.ones((15,15), np.uint8)
kernel1 = np.ones((3, 3), np.uint8)
iter = 100
#iter = 5
dst = cv2.erode(rst, kernel1, iterations = iter)


cv2.imshow("Orz", data_src)
cv2.imshow("gray", data_gray)
cv2.imshow("thr", rst)
cv2.imshow("erode", dst)

cv2.waitKey()
cv2.destroyAllWindows()

你可能感兴趣的:(Python,OpenCV,python,算法)