iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python+OpenCV图像边缘检测四种实现方法
  • 864
分享到

Python+OpenCV图像边缘检测四种实现方法

2024-04-02 19:04:59 864人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1.Sobel算子2.Schaar算子(更能体现细节)3.Laplacian算子(基于零穿越的,二阶导数的0值点)4.Canny边缘检测(被认为是最优的边缘检测算法)总结 im


import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 设置兼容中文
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

D:\Anaconda\AZWZ\lib\site-packages\numpy\_distributor_init.py:30: UserWarning: loaded more than 1 DLL from .libs:
D:\Anaconda\AZWZ\lib\site-packages\numpy\.libs\libopenblas.NOIJJG62EMASZI6NYURL6JBKM4EVBGM7.gfortran-win_amd64.dll
D:\Anaconda\AZWZ\lib\site-packages\numpy\.libs\libopenblas.WCDJNK7YVMPZQ2ME2ZZHJJRJ3JIKNDB7.gfortran-win_amd64.dll
  warnings.warn("loaded more than 1 DLL from .libs:\n%s" %

horse = cv.imread('img/horse.jpg',0)

plt.imshow(horse,cmap=plt.cm.gray)

plt.imshow(horse,cmap=plt.cm.gray)

1.Sobel算子


# 1,0 代表沿x方向做sobel算子
x = cv.Sobel(horse,cv.CV_16S,1,0)
# 0,1 代表沿y方向做sobel算子
y = cv.Sobel(horse,cv.CV_16S,0,1)

# 格式转换
absx = cv.convertScaleAbs(x)
absy = cv.convertScaleAbs(y)

# 边缘检测结果
res = cv.addWeighted(absx,0.5,absy,0.5,0)

plt.figure(figsize=(20,20))
plt.subplot(1,2,1)
m1 = plt.imshow(horse,cmap=plt.cm.gray)
plt.title("原图")
plt.subplot(1,2,2)
m2 = plt.imshow(res,cmap=plt.cm.gray)
plt.title("Sobel算子边缘检测")

Text(0.5, 1.0, 'Sobel算子边缘检测')

2.Schaar算子(更能体现细节)


# 1,0 代表沿x方向做sobel算子
x = cv.Sobel(horse,cv.CV_16S,1,0,ksize=-1)
# 0,1 代表沿y方向做sobel算子
y = cv.Sobel(horse,cv.CV_16S,0,1,ksize=-1)

# 格式转换
absx = cv.convertScaleAbs(x)
absy = cv.convertScaleAbs(y)

# 边缘检测结果
res = cv.addWeighted(absx,0.5,absy,0.5,0)

plt.figure(figsize=(20,20))
plt.subplot(1,2,1)
m1 = plt.imshow(horse,cmap=plt.cm.gray)
plt.title("原图")
plt.subplot(1,2,2)
m2 = plt.imshow(res,cmap=plt.cm.gray)
plt.title("Schaar算子边缘检测")

Text(0.5, 1.0, 'Schaar算子边缘检测')

3.Laplacian算子(基于零穿越的,二阶导数的0值点)


res = cv.Laplacian(horse,cv.CV_16S)

res = cv.convertScaleAbs(res)

plt.figure(figsize=(20,20))
plt.subplot(1,2,1)
m1 = plt.imshow(horse,cmap=plt.cm.gray)
plt.title("原图")
plt.subplot(1,2,2)
m2 = plt.imshow(res,cmap=plt.cm.gray)
plt.title("Laplacian算子边缘检测")

Text(0.5, 1.0, 'Laplacian算子边缘检测')

4.Canny边缘检测(被认为是最优的边缘检测算法)


res = cv.Canny(horse,0,100)

# res = cv.convertScaleAbs(res) Canny边缘检测是一种二值检测,不需要转换格式这一个步骤

plt.figure(figsize=(20,20))
plt.subplot(1,2,1)
m1 = plt.imshow(horse,cmap=plt.cm.gray)
plt.title("原图")
plt.subplot(1,2,2)
m2 = plt.imshow(res,cmap=plt.cm.gray)
plt.title("Canny边缘检测")

Text(0.5, 1.0, 'Canny边缘检测')

总结

以上就是python+OpenCV 图像边缘检测四种实现方法的详细内容,更多关于Python OpenCV图像边缘检测的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python+OpenCV图像边缘检测四种实现方法

本文链接: https://www.lsjlt.com/news/158459.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python+OpenCV图像边缘检测四种实现方法
    目录1.Sobel算子2.Schaar算子(更能体现细节)3.Laplacian算子(基于零穿越的,二阶导数的0值点)4.Canny边缘检测(被认为是最优的边缘检测算法)总结 im...
    99+
    2024-04-02
  • python实现图像边缘检测
    本文实例为大家分享了python实现图像边缘检测的具体代码,供大家参考,具体内容如下 任务描述 背景 边缘检测是数字图像处理领域的一个常用技术,被广泛应用于图像特征提取、目标识别、计...
    99+
    2024-04-02
  • Python利用OpenCV和skimage实现图像边缘检测
    目录一、简介二、opencv 实践三、skimage 实践一、简介 提取图片的边缘信息是底层数字图像处理的基本任务之一。边缘信息对进一步提取高层语义信息有很大的影响。大部分边缘检测算...
    99+
    2022-12-28
    Python OpenCV 图像边缘检测 Python skimage图像边缘检测 Python图像边缘检测
  • Matlab实现图像边缘检测
    为了在一幅图像 f 的(x,y)位置寻找边缘的强度和方向,所选择的工具就是梯度,梯度使用向量来表示: 该向量指出了图像 f 在位置(x,y)处的最大变化率的方向,梯度向量的大小表示...
    99+
    2024-04-02
  • Python实现Opencv cv2.Canny()边缘检测
    目录1. 效果图2. 源码补充:OpenCV-Python 中 Canny() 参数这篇博客将介绍Canny边缘检测的概念,并利用cv2.Canny()实现边缘检测; Ca...
    99+
    2024-04-02
  • C++ opencv图像处理实现图片边缘检测示例
    目录边缘检测简介一、边缘检测步骤二、Canny1.函数2.代码二、Sobel1.函数2.代码三、Scharr1.函数2.代码四、Laplacian1.函数2.代码总结边缘检测简介 边...
    99+
    2024-04-02
  • Python中图像边缘检测算法如何实现
    这篇“Python中图像边缘检测算法如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中图像边缘检测算法如何...
    99+
    2023-06-30
  • 详解Python中图像边缘检测算法的实现
    目录写在前面1.一阶微分算子1.1 Prewitt算子1.2 Sobel算子2.二阶微分算子2.1 Laplace算子2.2 LoG算子3.Canny边缘检测写在前面 从本节开始,计...
    99+
    2024-04-02
  • Python OpenCV Canny边缘检测算法如何实现
    本文小编为大家详细介绍“Python OpenCV Canny边缘检测算法如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python OpenCV Canny边缘检测算法如何实现”文章能帮助...
    99+
    2023-07-02
  • 怎么利用Python+OpenCV实现简易图像边缘轮廓检测
    本篇内容主要讲解“怎么利用Python+OpenCV实现简易图像边缘轮廓检测”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用Python+OpenCV实现简易图像边缘轮廓检测”吧!函数基础...
    99+
    2023-06-30
  • Python+OpenCV实现边缘检测与角点检测详解
    目录一、边缘检测1.1、读取图像1.2、图像转换成灰度图像1.3、Sobel算子1.4、Canny算子1.5、显示正常中文的标签1.6、边缘检测结果二、角点检测2.1、读取图像2.2...
    99+
    2023-02-03
    Python OpenCV边缘检测 Python OpenCV角点检测 Python OpenCV 检测
  • OpenCV中Canny边缘检测的实现
    目录1. Canny 边缘检测理论1.1、高斯滤波1.2、Sobel算子计算梯度和方向1.3、非极大值抑制(定位准确的边缘同时可缩小边缘线宽)1.4、双阈值检测2. OpenCV 之...
    99+
    2024-04-02
  • OpenCV实现Sobel边缘检测的示例
    目录一、Sobel算法1、算法概述2、主要函数二、C++代码三、python代码四、结果展示五、相关链接一、Sobel算法 1、算法概述 Sobel边缘检测算法比较简单,实际应用中效...
    99+
    2022-11-13
    OpenCV Sobel边缘检测 OpenCV 边缘检测
  • 如何利用Python+OpenCV实现简易图像边缘轮廓检测(零基础)
    目录前言函数基础与三方库cv.threshold(pic,thresh,maxvalue,model)cv.findContours(待处理图片,model(提取模式),method...
    99+
    2024-04-02
  • Python中怎么实现Opencv cv2.Canny()边缘检测
    这期内容当中小编将会给大家带来有关Python中怎么实现Opencv cv2.Canny()边缘检测,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 效果图原始图 VS Canny检测效果图如下:2. ...
    99+
    2023-06-20
  • Python OpenCV Canny边缘检测算法的原理实现详解
    目录Gaussian smoothingComputing the gradient magnitude and orientationNon-maxima suppressionH...
    99+
    2024-04-02
  • C语言实现BMP图像边缘检测处理
    本文实例为大家分享了C语言实现BMP图像边缘检测处理的具体代码,供大家参考,具体内容如下 以Sobel算子为例,其余模板算子卷积代码部分同Sobel算子。如:高斯算子、拉普拉斯算子等...
    99+
    2024-04-02
  • Android+OpenCv4实现边缘检测及轮廓绘制出图像最大边缘
    实现步骤: 图像灰度化 边缘检测 根据Canny检测得出来的Mat寻找轮廓 算出最大轮廓周长or面积 根据获取到的最大轮廓下标进行轮廓绘制 ...
    99+
    2024-04-02
  • 使用OpenCV怎么实现Canny边缘检测
    今天就跟大家聊聊有关使用OpenCV怎么实现Canny边缘检测,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. Canny 边缘检测理论Canny 是一种常用的边缘检测算法. 其是...
    99+
    2023-06-20
  • 怎么使用python进行图像边缘检测
    本篇内容主要讲解“怎么使用python进行图像边缘检测”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python进行图像边缘检测”吧!边缘检测图像边缘是指图像中表达物体的周围像素灰度发生...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作