- 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 - 图像金字塔
- OpenCV Python - 图像加法
- OpenCV Python - 图像混合
- OpenCV Python - 傅里叶变换
- OpenCV Python - 捕获视频
- OpenCV Python - 播放视频
- OpenCV Python - 从视频中提取图像
- OpenCV Python - 从图像生成视频
- OpenCV Python - 人脸检测
- OpenCV Python - 均值漂移/CamShift
- OpenCV Python - 特征检测
- OpenCV Python - 特征匹配
- OpenCV Python - 数字识别
- OpenCV Python 资源
- OpenCV Python - 快速指南
- OpenCV Python - 资源
- OpenCV Python - 讨论
OpenCV Python - 形态学变换
基于图像形状的简单操作称为形态学变换。两种最常见的变换是 **腐蚀和膨胀**。
腐蚀
腐蚀去除前景对象的边界。类似于二维卷积,一个核在图像 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)
输出
原始图像
腐蚀
膨胀
广告