- OpenCV Python 教程
- OpenCV Python - 主页
- OpenCV Python - 概述
- OpenCV Python - 环境
- OpenCV Python - 读取图像
- OpenCV Python - 写入图像
- OpenCV Python - 使用 Matplotlib
- OpenCV Python - 图像属性
- OpenCV Python - 位运算
- OpenCV Python - 形状和文本
- OpenCV Python - 鼠标事件
- OpenCV Python - 添加轨迹栏
- OpenCV Python - 调整大小和旋转
- OpenCV Python - 图像阈值
- OpenCV Python - 图像过滤
- OpenCV Python - 边缘检测
- OpenCV Python - 直方图
- OpenCV Python - 颜色空间
- OpenCV Python - 转换
- OpenCV Python - 图像轮廓
- OpenCV Python - 模板匹配
- OpenCV Python - 图像Pyramid
- OpenCV Python - 图像相加
- OpenCV Python - 图像混合
- OpenCV Python - 傅里叶变换
- OpenCV Python - 捕获视频
- OpenCV Python - 播放视频
- OpenCV Python - 视频图像
- OpenCV Python - 来自图像的视频
- OpenCV Python - 人脸检测
- OpenCV Python - Meanshift/Camshift
- OpenCV Python - 特征检测
- OpenCV Python - 特征匹配
- OpenCV Python - 数字识别
- OpenCV Python 资源
- OpenCV Python - 快速指南
- OpenCV Python - 资源
- OpenCV Python - 讨论
OpenCV Python - 形态转换
基于图像形状对图像进行的简单操作称为形态变换。两种最常见的变换是腐蚀和膨胀。
侵蚀
侵蚀消除了前景对象的边界。与 2D 卷积类似,核在图像 A 上滑动。如果核下的所有像素均为 1,则保留原始图像中的像素。
否则,它被设为 0,从而导致腐蚀。边界附近的所有像素都被丢弃。此过程对于消除白噪声很有用。
OpenCV 中erode()函数的命令如下 -
cv.erode(src, kernel, dst, anchor, iterations)
参数
OpenCV 中的 erode() 函数使用以下参数-
src 和 dst 参数是相同大小的输入和输出图像数组。内核是用于侵蚀的结构元素的矩阵。例如,3X3 或 5X5。
锚点参数默认为-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)
输出
原始图像
侵蚀
扩张