Python-OpenCV中的图像处理-边缘检测

Python-OpenCV中的图像处理-边缘检测

边缘检测Canny算子

  • Canny 边缘检测是一种非常流行的边缘检测算法,是 John F.Canny 在

    1986 年提出的。它是一个有很多步构成的算法:噪声去除、计算图像梯度、非极大值抑制、滞后阀值等。

  • Canny(image: Mat, threshold1, threshold2, edges=..., apertureSize=..., L2gradient=...)

  • 在 OpenCV 中只需要一个函数: cv2.Canny(),就可以实现边缘检测。第一个参数是输入图像。第二和第三个分别是 minVal 和 maxVal。第三个参数设置用来计算图像梯度的 Sobel卷积核的大小,默认值为 3。最后一个参数是 L2gradient,它可以用来设定求梯度大小的方程。如果设为 True,就会使用我们上面提到过的方程,否则使用方程: Edge−Gradient (G) = jG2 xj + jG2 yj 代替,默认值为 False。

python 复制代码
import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('./resource/opencv/image/messi5.jpg', cv2.IMREAD_GRAYSCALE)

edges = cv2.Canny(img, 100, 200) # 边缘检测

plt.subplot(121), plt.imshow(img, 'gray'), plt.title('origin'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(edges, 'gray'), plt.title('edges'), plt.xticks([]), plt.yticks([])
plt.show()
相关推荐
亓才孓9 分钟前
[Properties]写配置文件前,必须初始化Properties(引用变量没执行有效对象,调用方法会报空指针错误)
开发语言·python
Bruk.Liu14 分钟前
(LangChain 实战14):基于 ChatMessageHistory 自定义实现对话记忆功能
人工智能·python·langchain·agent
大江东去浪淘尽千古风流人物29 分钟前
【VLN】VLN(Vision-and-Language Navigation视觉语言导航)算法本质,范式难点及解决方向(1)
人工智能·python·算法
Swift社区31 分钟前
Gunicorn 与 Uvicorn 部署 Python 后端详解
开发语言·python·gunicorn
Coinsheep35 分钟前
SSTI-flask靶场搭建及通关
python·flask·ssti
IT实战课堂小元酱35 分钟前
大数据深度学习|计算机毕设项目|计算机毕设答辩|flask露天矿爆破效果分析系统开发及应用
人工智能·python·flask
码农阿豪36 分钟前
Flask应用上下文问题解析与解决方案:从错误日志到完美修复
后端·python·flask
wqq631085538 分钟前
Python基于Vue的实验室管理系统 django flask pycharm
vue.js·python·django
Q_Q196328847540 分钟前
python大学生爱心校园互助代购网站_nyvlx_django Flask vue pycharm项目
python·django·flask
码农阿豪43 分钟前
Python Flask应用中文件处理与异常处理的实践指南
开发语言·python·flask