opencv边缘检测canny

本文介绍了如何使用OpenCV进行图像处理,包括将RGB图像转为灰度、应用高斯滤波,并详细解读了Canny边缘检测算法的原理和参数选择。通过实例展示了Canny函数的使用及其在实际图像处理中的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opencv边缘检测canny

边缘检测时需要先将图像处理成灰度图像。
下一步是高斯滤波,后续会讲解。

import cv2
import numpy as np
import random

img0 = cv2.imread(r"C:\Users\lenovo\Desktop\python\python_vision\image.jpg",1)

imgInfo = img0.shape
height = imgInfo[0]
weight = imgInfo[1]

# 转换灰度图像   2.高斯滤波    3.canny算法
gray = cv2.cvtColor(img0,cv2.COLOR_RGB2GRAY)
imgG = cv2.GaussianBlur(gray,(3,3),0)
dst = cv2.Canny(imgG,50,50)

cv2.imshow("dst",dst)
cv2.waitKey(0)

在这里插入图片描述
在这里插入图片描述
OpenCV-Python中Canny函数的原型为:

edge = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]]) 

必要参数:
第一个参数是需要处理的原图像,该图像必须为单通道的灰度图;
第二个参数是阈值1;
第三个参数是阈值2。
其中较大的阈值2用于检测图像中明显的边缘,但一般情况下检测的效果不会那么完美,边缘检测出来是断断续续的。所以这时候用较小的第一个阈值用于将这些间断的边缘连接起来。
可选参数中apertureSize就是Sobel算子的大小。而L2gradient参数是一个布尔值,如果为真,则使用更精确的L2范数进行计算(即两个方向的倒数的平方和再开放),否则使用L1范数(直接将两个方向导数的绝对值相加)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

求知小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值