可以将内核看成一个小矩阵,内核在图像上滑动以进行卷积操作,例如模糊,锐化,边缘检测或其他图像处理操作 kernel = np.ones((5, 5), np.uint8) 两个形态学操作是腐蚀和膨胀。他们的变体变成了开运算和闭运算 根据卷积核的大小,前景的所有像素会被腐蚀掉变为0, 所以前景物体会变小,整幅图像 的白色区域会被减少 对于去除白噪声很有用,也可以用来断开两个连在一起的物体 erosion = cv2.erode(img, kernel, iterations=1)
膨胀操作会增加图像的白色前景区域,一般在去除噪声时先用腐蚀再用膨胀 因为腐蚀在去除白噪声的同时也会使前景变小,所以需要在进行膨胀操作 噪声已经去除不会再回来,但是前景会增加,膨胀也可以用来连接两个分开的物体 dilation = cv2.dilate(img, kernel, iterations=1)
开运算:先腐蚀再膨胀,它可以用来去除噪声
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
闭运算:先膨胀再腐蚀,用来填充前景物体中的小洞,或者前景物体上的小黑点
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)