Opencv Python 简明教程
OpenCV Python - Morphological Transformations
基于形状图像上的简单操作称为形态变换。最常见的两种转换是 erosion and dilation 。
Erosion
腐蚀会消除前景对象的边界。类似于 2D 卷积,内核滑过图像 A。如果内核下的所有像素均为 1,则保留原始图像中的像素。
否则将其变为 0,从而导致腐蚀。丢弃所有边界附近的像素。此过程对去除白噪声很有用。
OpenCV 中 erode() 函数的命令如下 −
cv.erode(src, kernel, dst, anchor, iterations)
Dilation
它与腐蚀正好相反。此处,如果内核下的至少一个像素为 1,则像素元素为 1。因此,它增加了图像中的白色区域。
dilate() 函数的命令如下 −
cv.dilate(src, kernel, dst, anchor, iterations)
Parameters
dilate() 函数具有与 erode() 函数相同参数。这两个函数可以有 BorderType 和 borderValue 这两个其他可选参数。
BorderType 是图像边界的一种枚举类型(CONSTANT、REPLICATE、TRANSPERANT 等)
borderValue 用于恒定边界的情况。默认情况下,它为 0。
Example
下面给出了一个示例程序显示 erode() 和 dilate() 函数的使用 −
import cv2 as cv
import numpy as np
img = cv.imread('LinuxLogo.jpg',0)
kernel = np.ones((5,5),np.uint8)
erosion = cv.erode(img,kernel,iterations = 1)
dilation = cv.dilate(img,kernel,iterations = 1)
cv.imshow('Original', img)
cv.imshow('Erosion', erosion)
cv.imshow('Dialation', dilation)