使用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写的Discuz7.2版faq.php注入漏洞工具
Aug 06 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
六个窍门助你提高Python运行效率
Jun 09 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
Python中super函数的用法
Nov 17 Python
python自动化生成IOS的图标
Nov 13 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
django模板结构优化的方法
Feb 28 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
python判断all函数输出结果是否为true的方法
Dec 03 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访问查询mysql数据的三种方法
2006/10/09 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
深入理解vue Render函数
2017/07/19 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
python中while循环语句用法简单实例
2015/05/07 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
python中PIL安装简单教程
2016/04/21 Python
python使用KNN算法识别手写数字
2019/04/25 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
机电专业求职信
2014/06/14 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
流动人口婚育证明
2014/10/19 职场文书
人事专员岗位职责
2015/02/03 职场文书
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL