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


Posted in Python onDecember 12, 2019
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,就会使用方程,

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

否则 False ,使用方程:

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

其中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边缘检测功能

总结

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

Python 相关文章推荐
Python的Twisted框架中使用Deferred对象来管理回调函数
May 25 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
Python_LDA实现方法详解
Oct 25 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
详解基于django实现的webssh简单例子
Jul 17 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 Python
python如何将多个PDF进行合并
Aug 13 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
python支持多继承吗
Jun 19 Python
Python基础之进程详解
May 21 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 #Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 #Python
python 使用opencv 把视频分割成图片示例
Dec 12 #Python
Python2与Python3的区别点整理
Dec 12 #Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 #Python
opencv3/C++实现视频读取、视频写入
Dec 11 #Python
django框架两个使用模板实例
Dec 11 #Python
You might like
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python标准库之Sys模块使用详解
2015/05/23 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
python执行使用shell命令方法分享
2017/11/08 Python
python实现媒体播放器功能
2018/02/11 Python
Python 函数基础知识汇总
2018/03/09 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Python生成词云的实现代码
2020/01/14 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
Django 实现图片上传和下载功能
2020/12/31 Python
学校门卫工作职责
2013/12/07 职场文书
自主招生自荐信
2013/12/08 职场文书
借款担保书范文
2014/05/13 职场文书
小学运动会演讲稿
2014/08/25 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL