OpenCV Python 形态变换

OpenCV Python 形态变换

基于图像形状的简单操作被称为形态变换。最常见的两种变换是 腐蚀和膨胀

腐蚀

腐蚀消除了前景对象的边界。类似于2D卷积,一个核在图像A上滑动。如果核下的所有像素都是1,则原始图像中的像素保持不变。

否则,它被设为0,因此导致腐蚀。靠近边界的所有像素都被丢弃。这个过程用于去除白色噪声。

OpenCV中 erode() 函数的命令如下:

cv.erode(src, kernel, dst, anchor, iterations)

参数

OpenCV中的 erode() 函数使用以下参数:

src和dst参数是相同大小的输入和输出图像数组。Kernel是用于侵蚀的结构元素矩阵。例如,3X3或5X5。

anchor参数默认为-1,表示锚元素位于中心。迭代指的是应用侵蚀的次数。

膨胀

膨胀与侵蚀正好相反。在这里,如果核下的至少一个像素为1,像素元素就是1。因此,它增加了图像中的白色区域。

dilate()函数的命令如下:

cv.dilate(src, kernel, dst, anchor, iterations)

参数

函数 dilate() 与erode()函数具有相同的参数。这两个函数都可以有额外的可选参数,如BorderType和borderValue。

BorderType是图像边界的枚举类型(CONSTANT, REPLICATE, TRANSPERANT等)。

borderValue用于常数边界。默认值为0。

示例

下面是一个示例程序,展示了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)

输出

原始图片

OpenCV Python 形态变换

侵蚀

OpenCV Python 形态变换

扩张

OpenCV Python 形态变换

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程