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()
相关推荐
用户83562907805116 分钟前
用 Python 轻松在 Excel 工作表中应用条件格式
后端·python
red1giant_star20 分钟前
Python根据文件后缀统计文件大小、找出文件位置(仿Everything)
后端·python
雷欧力32 分钟前
如何使用 Claude API?3 种接入方案实测,附完整代码(2026)
python·claude
神仙别闹37 分钟前
基于 Python 实现 BERT 的情感分析模型
开发语言·python·bert
NQBJT44 分钟前
VS Code配置Python人工智能开发环境
开发语言·人工智能·vscode·python
浮游本尊1 小时前
一文讲透巡检链路:采集程序 → 上传数据包 → 后端解析入库 → 分析出报告
python
zhihuishuxia__1 小时前
Multiplex通讯(多路复用通讯)
网络·图像处理·数码相机·计算机视觉·自动化
_李小白1 小时前
【android opencv学习笔记】Day 8: remap(像素位置重映射)
android·opencv·学习
a1117761 小时前
MonoGS 在 Jetson Orin Nano 上的部署与性能测试
python·开源·torch·cv
偶尔微微一笑1 小时前
智能体四大核心模块揭秘
python