OpenCV中如何使用Sobel、Laplacian、Canny进行边缘检测
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,OpenCV中如何使用Sobel、Laplacian、Canny进行边缘检测,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获
千家信息网最后更新 2026年11月04日OpenCV中如何使用Sobel、Laplacian、Canny进行边缘检测
OpenCV中如何使用Sobel、Laplacian、Canny进行边缘检测,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
简述
OpenCV边缘检测的一般步骤为:
滤波
增强
检测
常用的边缘检测的算子和滤波器有:
Sobel算子
Laplacian算子
Canny算子
Scharr滤波器
以下使用Sobel、Laplacian和Canny算子进行边缘检测。图片是从网上随意下载的一张。
代码
import cv2#********************Sobel边缘检测*****************************def edge_sobel( src ): kernelSize = (3, 3) gausBlurImg = cv2.GaussianBlur( src, kernelSize, 0 ) #转换为灰度图 channels = src.shape[2] if channels > 1: src_gray = cv2.cvtColor( gausBlurImg, cv2.COLOR_RGB2GRAY ) else: src_gray = src.clone() scale = 1 delta = 0 depth = cv2.CV_16S #求X方向梯度(创建grad_x, grad_y矩阵) grad_x = cv2.Sobel( src_gray, depth, 1, 0 ) abs_grad_x = cv2.convertScaleAbs( grad_x ) #求Y方向梯度 grad_y = cv2.Sobel( src_gray, depth, 0, 1 ) abs_grad_y = cv2.convertScaleAbs( grad_y ) #合并梯度(近似) edgeImg = cv2.addWeighted( abs_grad_x, 0.5, abs_grad_y, 0.5, 0 ) return edgeImg#********************Laplacian边缘检测*****************************def edge_laplacian( src ): scale = 1 delta = 0 depth = cv2.CV_16S if src.shape[2] > 1: src_gray = cv2.cvtColor( src, cv2.COLOR_RGB2GRAY ) else: src_gray = src.clone() kernelSize = (3, 3) gausBlurImg = cv2.GaussianBlur( src_gray, kernelSize, 0 ) laplacianImg = cv2.Laplacian( gausBlurImg, depth, kernelSize ) edgeImg = cv2.convertScaleAbs( laplacianImg ) return edgeImg#********************Canny边缘检测*****************************def edge_canny( src, threshold1, threshold2 ): kernelSize = (3, 3) gausBlurImg = cv2.GaussianBlur( src, kernelSize, 0 ) edgeImg = cv2.Canny( gausBlurImg, threshold1, threshold2 ) return edgeImg#********************主函数*****************************imgSrc = cv2.imread( "1.jpg" )sobelImg = edge_sobel( imgSrc )laplacianImg = edge_laplacian( imgSrc )cannyImg = edge_canny( imgSrc, 20, 60 )cv2.imshow( "Origin", imgSrc )cv2.imshow( "Sobel", sobelImg )cv2.imshow( "Laplacian", laplacianImg )cv2.imshow( "Canny", cannyImg )cv2.waitKey( 0 )cv2.destroyAllWindows()
效果
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
检测
边缘
算子
梯度
方向
滤波器
帮助
清楚
代码
内容
函数
图片
对此
常用
效果
文章
新手
更多
步骤
灰度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司经营范围
互联网科技深圳
盈实互联网科技
互联网 科技
互联网未来科技
睿民互联网科技
齐家互联网科技有限公司
互联网养老 桔豆科技
科技赋能互联网健康
互联网科技博主是什么意思
顶级互联网科技成果有哪些
互联网5g黑科技有哪些
互联网科技股为什么大涨
新氧科技和美国互联网有关系吗
互联网硬科技公司
世界互联网科技成果奖
杭州融税互联网科技有限公司
河南商务圈互联网科技有限公司
互联网领先科技成果宣传视频
科技发展第三阶段互联网时代
科技互联网公司装修
互联网公司 科技公司
互联网科技排名
广西互联网科技公司
上海卓越科技 互联网
互联网科技公司招聘
上海电发互联网科技有限公司
爱医互联网络科技
深圳互联网科技的发展
互联网企业和网络科技有限公司