使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能

 更新时间:2019年12月12日 10:07:03   作者:有一种黑暗来自光  
这篇文章主要介绍了使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

import cv2
from matplotlib import pyplot as plt
import numpy as np
img= cv2.imread('39.jpg')#加载图片
cv2.namedWindow('Canny edge detect')#设置窗口,cv2.WINDOW_NORMAL表示窗口大小可自动调节
cv2.namedWindow('Original Image',cv2.WINDOW_NORMAL)
cv2.namedWindow('Canny edgeImage',cv2.WINDOW_NORMAL)
def nothing(x):#回调函数
  pass
#创建两个滑动条,分别控制minVal(最小阈值)、maxVal(最大阈值).
# minVal:滑动条名称; 'Canny edge detect':窗口名; 60:滑动条默认滑动位置; 300:最大值 ; nothing:回调函数
cv2.createTrackbar('minVal','Canny edge detect',60,300,nothing)
cv2.createTrackbar('maxVal','Canny edge detect',100,400,nothing)
while(1):
  #获得滑动条所在的位置
  #cv2.getTrackbarPos(滑动条名称,窗口名);
  minVal = cv2.getTrackbarPos('minVal','Canny edge detect')
  maxVal = cv2.getTrackbarPos('maxVal','Canny edge detect')
  #Canny边缘检测
  #cv2.Canny函数参数解析:
  # img:原图像名
  # minVal:最小梯度
  # maxVal:最大梯度
  # 5 :5*5大小的高斯滤波器(卷积核),用来消除噪声影响
  # L2gradient :求图像梯度,从而进行去除非边界上的点(非极大值抑制)
  edgeImage = cv2.Canny(img,minVal,maxVal,5,L2gradient=True)

L2gradient,它可以用来设定 求梯度大小的方程。如果设为 True,就会使用方程,

否则 False ,使用方程:

在这里插入图片描述

其中Gx,Gy为使用 Sobel 算子的计算水平方向和竖直方向的一阶导数。

 #显示图片
  cv2.imshow('Original Image',img) #原图
  cv2.imshow('Canny edgeImage',edgeImage) # Canny检测后的图

  k = cv2.waitKey(1)
  if k ==ord('w')& 0xFF: # 按 w 退出
    break
cv2.destroyAllWindows()#销毁窗口

效果图如下。

在这里插入图片描述

总结

以上所述是小编给大家介绍的使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • python selenium实现发送带附件的邮件代码实例

    python selenium实现发送带附件的邮件代码实例

    这篇文章主要介绍了python selenium实现发送带附件的邮件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Python实现类似jQuery使用中的链式调用的示例

    Python实现类似jQuery使用中的链式调用的示例

    chained calls链式调用其实多是指一种方法链的程序写法,这里我们来看一下Python实现类似jQuery使用中的链式调用的示例,首先说明一下什么是链式调用:
    2016-06-06
  • python解包概念及实例

    python解包概念及实例

    在本篇文章里小编给大家分享的是一篇关于python解包知识点总结,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • 详解Python3的TFTP文件传输

    详解Python3的TFTP文件传输

    本篇内容给大家详细讲述了Python3的TFTP文件传输的相关知识点,有需要的朋友可以参考下。
    2018-06-06
  • Django框架搭建的简易图书信息网站案例

    Django框架搭建的简易图书信息网站案例

    这篇文章主要介绍了Django框架搭建的简易图书信息网站案例,结合具体实例形式分析了基于Django框架实现图书信息管理网站的具体步骤、相关实现技巧与操作注意事项,需要的朋友可以参考下
    2019-05-05
  • Python程序控制语句用法实例分析

    Python程序控制语句用法实例分析

    这篇文章主要介绍了Python程序控制语句用法,结合实例形式分析了Python流程控制语句的条件、循环以及函数、类、文件、异常处理等相关操作使用技巧,需要的朋友可以参考下
    2020-01-01
  • python利用后缀表达式实现计算器功能

    python利用后缀表达式实现计算器功能

    这篇文章主要为大家详细介绍了python利用后缀表达式实现计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • selenium.webdriver中add_argument方法常用参数表

    selenium.webdriver中add_argument方法常用参数表

    这篇文章主要介绍了selenium.webdriver中add_argument方法常用参数表,需要的朋友可以参考下
    2021-04-04
  • tensorflow实现简单的卷积神经网络

    tensorflow实现简单的卷积神经网络

    这篇文章主要为大家详细介绍了tensorflow实现简单的卷积神经网络,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Python面向对象魔法方法和单例模块代码实例

    Python面向对象魔法方法和单例模块代码实例

    这篇文章主要介绍了Python面向对象魔法方法和单例模块代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论