Python OpenCV获取卷积核方法详解

认真发呆
认真发呆
发布时间:2026-10-15| 2人浏览过
原创

本文介绍OpenCV中获取卷积核的核心函数getStructuringElement,解析shape、ksize及anchor参数含义,并通过矩形、椭圆及十字形卷积核的腐蚀操作代码示例,展示具体实现步骤与参数配置。

1. cv2.getStructuringElement(shape, ksize, anchor=(-1, -1))

该函数用于构建并返回一个结构元素,此元素可直接传递给createMorphologyFilter()、erode()、dilate()或morphologyEx()等形态学处理函数。此外,开发者也可以手动构建任意二进制掩码,并将其作为结构元素使用。

2. 函数参数说明

getStructuringElement(shape, ksize, anchor=None):

Shape:指定结构单元的类型; Ksize:定义卷积核的尺寸,例如(3, 3)、(5, 5)等; Anchor:设定卷积核的锚点位置,默认值为(-1, -1),即位于中心位置;

3. 代码实战

import os
import cv2
import numpy as np
def ErodeFilterRect(img_path='images/lenna.png'):
    img_src=cv2.imread(img_path)
    img=cv2.resize(src=img_src,dsize=(500,500))
    img=cv2.cvtColor(src=img,code=cv2.COLOR_BGR2GRAY)
    # kernel=np.ones((7,7),dtype=np.uint8)
    kernel=cv2.getStructuringElement(shape=cv2.MORPH_RECT,ksize=(3,3))
    print(kernel)
    img=cv2.erode(src=img,kernel=kernel,iterations=1)
    cv2.imshow('img_src',img_src)
    cv2.imshow('img',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
def ErodeFilterELLIPSE(img_path='images/lenna.png'):
    img_src=cv2.imread(img_path)
    img=cv2.resize(src=img_src,dsize=(500,500))
    img=cv2.cvtColor(src=img,code=cv2.COLOR_BGR2GRAY)
    # kernel=np.ones((7,7),dtype=np.uint8)
    kernel=cv2.getStructuringElement(shape=cv2.MORPH_ELLIPSE,ksize=(3,3))
    print(kernel)
    img=cv2.erode(src=img,kernel=kernel,iterations=1)
    cv2.imshow('img_src',img_src)
    cv2.imshow('img',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
def ErodeFilterCROSS(img_path='images/lenna.png'):
    img_src=cv2.imread(img_path)
    img=cv2.resize(src=img_src,dsize=(500,500))
    img=cv2.cvtColor(src=img,code=cv2.COLOR_BGR2GRAY)
    # kernel=np.ones((7,7),dtype=np.uint8)
    kernel=cv2.getStructuringElement(shape=cv2.MORPH_CROSS,ksize=(3,3))
    print(kernel)
    img=cv2.erode(src=img,kernel=kernel,iterations=1)
    cv2.imshow('img_src',img_src)
    cv2.imshow('img',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
if __name__ == '__main__':
    print('Pycharm')
    # ErodeFilterRect()
    # ErodeFilterELLIPSE()
    ErodeFilterCROSS()

至此,关于Python OpenCV中获取卷积核的实现方法介绍完毕,更多相关Python OpenCV卷积核内容可搜索本站历史文章或继续浏览后续文章,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。